Update V8 Version
openinterpreter/openinterpreter
Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.
Contribute to the Elodin Editor, the 3D viewer and graphing tool.
$ npx skills add elodin-sys/elodin --skill elodin-editor-dev -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install elodin-sys/elodin elodin-editor-dev --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/elodin-sys/elodin.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/elodin-editor-dev .claude/skills/elodin-editor-dev && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "elodin-editor-dev" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-editor-dev into .claude/skills/elodin-editor-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-editor-dev", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-editor-devType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add elodin-sys/elodin --skill elodin-editor-dev -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install elodin-sys/elodin elodin-editor-dev --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elodin-sys/elodin.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/elodin-editor-dev .agents/skills/elodin-editor-dev && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "elodin-editor-dev" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-editor-dev into .agents/skills/elodin-editor-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-editor-dev", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add elodin-sys/elodin --skill elodin-editor-dev -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install elodin-sys/elodin elodin-editor-dev --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elodin-sys/elodin.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/elodin-editor-dev .cursor/skills/elodin-editor-dev && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "elodin-editor-dev" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-editor-dev into .cursor/skills/elodin-editor-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-editor-dev", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/elodin-sys/elodin.git --path .cursor/skills/elodin-editor-dev--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add elodin-sys/elodin --skill elodin-editor-dev -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install elodin-sys/elodin elodin-editor-dev --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elodin-sys/elodin.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/elodin-editor-dev .gemini/skills/elodin-editor-dev && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "elodin-editor-dev" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-editor-dev into .gemini/skills/elodin-editor-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-editor-dev", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install elodin-sys/elodin elodin-editor-devInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add elodin-sys/elodin --skill elodin-editor-dev -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/elodin-sys/elodin.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/elodin-editor-dev .github/skills/elodin-editor-dev && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "elodin-editor-dev" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-editor-dev into .github/skills/elodin-editor-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-editor-dev", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add elodin-sys/elodin --skill elodin-editor-dev -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install elodin-sys/elodin elodin-editor-dev --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/elodin-sys/elodin.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/elodin-editor-dev .opencode/skills/elodin-editor-dev && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "elodin-editor-dev" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-editor-dev into .opencode/skills/elodin-editor-dev/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-editor-dev", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
elodin-editor-devContribute to the Elodin Editor, the 3D viewer and graphing tool.
Elodin Editor Dev is an agent skill from elodin-sys/elodin. Contribute to the Elodin Editor, the 3D viewer and graphing tool. Use when editing files in libs/elodin-editor/ or apps/elodin/, working on the Bevy/Egui UI, modifying viewport rendering, telemetry graphs, video streaming, KDL schematics, or the command palette.
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Rust. The repository describes itself as: Elodin simulation and flight software monorepo. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3bc1d99. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargonixFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Elodin Editor Dev loads about 3.4k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 1,162 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from elodin-sys/elodin at commit 3bc1d99, republished under its Apache-2.0 licence (© elodin-sys). 1,162 words, ~3,400 tokens.
.claude/skills/elodin-editor-dev/SKILL.md (or your agent's skills folder).The Elodin Editor is a 3D visualization and telemetry graphing tool built with Bevy (ECS game engine) and Egui (immediate-mode UI). It connects to Elodin-DB via Impeller for real-time data.
# Standard
cargo run --bin elodin editor examples/three-body/main.py
# With hot-reload on editor code changes (requires cargo-watch)
cargo watch --watch libs/elodin-editor \
-x 'run --bin elodin editor examples/three-body/main.py'
# Connect to a running database instead of a simulation
cargo run --bin elodin editor 127.0.0.1:2240| Variable | Default | Purpose |
|---|---|---|
ELODIN_ASSETS | ./assets | Directory for meshes, images, GLB files |
ELODIN_KDL_DIR | . (cwd) | Directory for .kdl schematic files |
ELODIN_GPU | auto | Nix shell GPU path (nvidia / mesa / nvk). Set before nix develop. |
ELODIN_GPU_PANIC | unset | Set to true to force the GPU-not-found panic and print the ELODIN_GPU=… nix develop help. |
ELODIN_H264_ENCODER | auto | Live sensor_camera format="h264": auto tries NVENC / VideoToolbox then OpenH264; cpu forces OpenH264; any other value is an FFmpeg encoder name (h264_nvenc, …). h264_vaapi is not supported. |
Optional features declared in libs/elodin-editor/Cargo.toml (re-exported by apps/elodin/Cargo.toml):
big_space (default): upstream big_space 0.13 floating-origin layer.inspector: adds the bevy-inspector-egui runtime entity inspector.debug: enables big_space's debug diagnostics.tracy: enables Tracy profiling (see .cursor/skills/elodin-tracy/SKILL.md).Enable with cargo run -p elodin --features "<list>" -- editor ....
The editor is split across two crates:
libs/elodin-editor/ — Core librarysrc/
├── lib.rs # Plugin registration, app setup
├── run.rs # Main run loop and Bevy app builder
├── object_3d.rs # 3D object spawning from KDL schematics
├── vector_arrow.rs # Vector visualization (force/velocity arrows)
├── offset_parse.rs # EQL viewport formula parsing
├── icon_rasterizer.rs # Icon rendering
├── iter.rs # Iterator utilities
├── ui/ # Egui UI layer
│ ├── mod.rs # Top-level UI orchestration
│ ├── tiles.rs # Tiled panel layout system
│ ├── tiles/sidebar.rs
│ ├── inspector/ # Component inspector panels
│ │ ├── mod.rs
│ │ ├── entity.rs # Entity property inspector
│ │ ├── viewport.rs # Viewport panel
│ │ ├── graph.rs # Graph panel configuration
│ │ ├── dashboard.rs
│ │ ├── monitor.rs
│ │ ├── object3d.rs # 3D object inspector
│ │ └── ...
│ ├── plot/ # Telemetry graph rendering
│ │ ├── mod.rs
│ │ ├── data.rs # Data fetching and buffering
│ │ ├── gpu.rs # GPU-accelerated plot rendering
│ │ ├── widget.rs # Egui plot widget
│ │ └── state.rs # Plot state management
│ ├── plot_3d/ # 3D plot visualization
│ ├── schematic/ # KDL schematic loading and rendering
│ │ ├── mod.rs
│ │ ├── load.rs # KDL file parsing
│ │ └── tree.rs # Schematic tree view
│ ├── timeline/ # Playback timeline
│ │ ├── mod.rs
│ │ ├── timeline_controls.rs
│ │ └── timeline_slider.rs
│ ├── command_palette/ # Command palette (Ctrl+P)
│ ├── video_stream.rs # Live video rendering
│ ├── theme.rs # Color theme
│ ├── colors/ # Color system and presets
│ └── ...
└── plugins/ # Bevy plugins
├── mod.rs
├── view_cube/ # 3D orientation cube
├── camera_anchor/ # Camera tracking and anchoring
├── gizmos/ # Transform gizmos
├── navigation_gizmo/
├── editor_cam_touch/ # Touch input for camera
├── asset_cache/ # Asset caching
├── env_asset_source/ # ELODIN_ASSETS integration
├── web_asset/ # Web asset loading
└── logical_key/ # Keyboard input handlingapps/elodin/ — CLI binaryThe main entry point that ties together the editor with nox-py, s10, and Impeller. Handles CLI argument parsing (elodin editor, elodin run, etc.).
The editor registers as a set of Bevy plugins. Each feature area (view cube, camera, gizmos) is a self-contained plugin with its own components, systems, and resources. New features should follow this pattern.
The ui/ module contains all immediate-mode UI rendering. Egui runs inside Bevy via bevy_egui. The tile-based layout system (ui/tiles.rs) manages panel arrangement (viewports, graphs, inspectors).
Strategy: cache only what the UI uses. Full history per subscribed ID (no time-based SeriesStore GC). Menus use metadata/EqlContext, not store keys. Playback/scrub never wait on backfill — project whatever is already in RAM.
DB ──► allowlisted GetTimeSeries backfill + live ──► TelemetryCache (SeriesStore)
├─► project SelectedTimeRange → LineTree → GPU
└─► apply_cached_data @ playhead → 3D / inspectors
Metadata ──► EqlContext ──► ADD COMPONENT / palettes (full list)| Piece | Where |
|---|---|
| Allowlist + reclaim | ui/plot/data.rs → update_series_fetch_priority |
| Backfill / live filter | impeller_bevy → backfill_cache, SeriesFetchPriority |
| Schedule | editor + headless: priority then backfill_cache (lib.rs, headless.rs) |
Allowlist (SeriesFetchPriority.high): enabled graph lines; Line3d / object_3d EQL (including thruster intensity EQL for particle plumes); monitors; viewport pos/look_at/up EQL; vector_arrow EQL; path-registry adapter pairs (*.world_pos, …); sensor-camera {entity}.world_pos. Empty ⇒ no SeriesStore I/O. Leaving an ID drops it from RAM. Any new live consumer must extend this allowlist or it will be blank/stale. Adapter leaf match is case-sensitive (WORLD_POS ≠ world_pos).
Plots: LineTree is a visible-window projection only (sliding GC here ≠ SeriesStore). Tip/LAST_* fetches quantized (~100 ms) + prefetch margin; also immediate visible-window prefetch so tip fills before begin→end backfill. Do not clear a LineTree when the store has zero samples in-window (unless camera range moved). ≤30 s (SHORT_WINDOW_ACCURACY_MICROS): GPU step = 1, skip Hamann–Chen (INDEX_BUFFER_LEN = 131072 in ui/plot/gpu.rs, sized for ~4 kHz × 30 s). Longer windows: GPU stride on clip; CPU project stride only for >10 min.
Headless: separate process, separate store — same priority + backfill or sensor_view poses freeze while effects still animate.
Do not: gate menus on SeriesStore keys; wait on SeriesStoreLoadState.complete for scrub; reintroduce full-metadata backfill; time-GC SeriesStore without fixing jump-to-start/scrub holes first.
KDL files define 3D objects and viewport configurations. The loading pipeline:
ui/schematic/load.rs — Parses .kdl filesobject_3d.rs — Spawns Bevy entities (meshes, GLB models, shapes)offset_parse.rs — Evaluates EQL viewport formulas (rotate, translate)ui/video_stream.rs handles live H.264/AV1 video decoding and rendering as textures in the 3D viewport. Uses the video-toolbox crate on macOS for hardware acceleration.
Key crates used in the editor:
| Crate | Purpose |
|---|---|
bevy | ECS game engine, 3D rendering, windowing |
bevy_egui | Egui integration for Bevy |
egui | Immediate-mode UI framework |
impeller-bevy | Bevy plugin for Impeller telemetry |
arrow | Arrow data format for time-series |
eql | Elodin Query Language parser |
nox | Spatial math types |
cargo watch for fast iteration on UI changesexamples/three-body/main.py for a lightweight simulationui/plot/gpu.rs — changes here affect all telemetry graphsui/command_palette/) is the entry point for user actionsPrefer Bevy's native window screenshot path over OS screen capture. It captures the full editor window (3D viewports and egui chrome) without macOS Screen Recording permissions, and works the same in local iteration and CI-style scripts.
| Piece | Path / env |
|---|---|
| Plugin | libs/elodin-editor/src/plugins/screenshot.rs (EnvScreenshotPlugin) |
| Batch script | scripts/ci/screenshot_examples.sh <out-dir> [example …] |
| Activate | ELODIN_SCREENSHOT=/abs/path/out.png |
| Delay before capture | ELODIN_SCREENSHOT_DELAY (seconds; default 8; use 12–20 for heavy examples) |
| Exit after write | ELODIN_SCREENSHOT_EXIT=1 (required for bounded runs) |
The plugin queues Screenshot::primary_window(), waits until the PNG is non-empty on disk (async GPU readback), then sends AppExit::Success when exit is requested. Do not kill the process on a timer alone — that tears down the render thread mid-readback and yields a missing/empty PNG.
# Release binary is much faster for visual loops
cargo build -p elodin --release
rm -f /tmp/editor-shot.png
ELODIN_SCREENSHOT=/tmp/editor-shot.png \
ELODIN_SCREENSHOT_DELAY=12 \
ELODIN_SCREENSHOT_EXIT=1 \
./target/release/elodin editor examples/ball/main.pyThen Read the PNG in the agent (vision) and check concrete UI/scene facts — e.g. status-bar RAM Usage: X.Y GB (not N/A / not stuck at 0.0), trajectory line present, view cube visible, graph panels populated. OCR (tesseract) is optional backup for status-bar text.
# Default set: ball three-body drone rc-jet apollo-lander video-stream
# sensor-camera cube-sat voyager geo-frames
scripts/ci/screenshot_examples.sh /tmp/elodin-shots ball three-body droneEnv overrides: ELODIN_BIN, ELODIN_SCREENSHOT_DELAY (script default 20), SCREENSHOT_WATCHDOG (default 180). One editor at a time; each run has a watchdog so a hung capture cannot block forever.
/tmp/elodin-shots-baseline/.elodin (release for visual checks)./tmp/elodin-shots-after/ and Read both PNGs. Assert the intended delta and that unrelated chrome (timeline, status bar, view cube) still looks healthy.rc-jet, sensor-camera, …), not only ball.rm -rf examples/voyager/dbs/voyager, rm -rf video-stream-db) and retry. Do not dig into GStreamer until a clean DB still fails.elodin editor / elodin run binds the sim DB; do not parallelize with monte-carlo or another editor. Group-kill leftovers before the next case.ui/status_bar.rs (not Bevy SystemInformationDiagnosticsPlugin). On macOS Bevy's sysinfo is built with apple-app-store and always reports 0 GiB for the current process../video-stream-db if the editor hangs or video never appears. elodinsink / x264enc / srtsrc come from nix develop or nix develop .#run (GST_PLUGIN_PATH). Do not prepend cargo target/release (libelodin makes gst-plugin-scanner abort the scan on GStreamer 1.26).examples/voyager/nasa_spice_data/ and a clean DB dir after interrupted runs.cargo build -p elodin --release outside a full env rebuild is fine once the toolchain is already installed.| Goal | Example |
|---|---|
| Lightest viewport + trail + vector label | ball |
| Multi-body + graph panels | three-body |
| GLB + joint animation | drone |
| FPV / plot_3d / aero | rc-jet |
| SITL + thrusters / descent | apollo-lander |
| H.264 tile in UI | video-stream |
| GPU sensor cameras / frusta | sensor-camera |
| Terrain / geo frames | geo-frames |
| Spacecraft + MEKF graphs | cube-sat |
© elodin-sys, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .cursor/skills/elodin-editor-dev of elodin-sys/elodin.
Open the folder on GitHubat commit 3bc1d99
Elodin Editor Dev next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Elodin Editor Dev this skillelodin-sys/elodin | 547 | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Update V8 Versionopeninterpreter/openinterpreter | 69k | 2 repos | ~845 | Automated safety check: Pass | Apache-2.0 | |
| Firecrawl Page Scrape Integrationfirecrawl/firecrawl | 190k | 1 repos | ~944 | Automated safety check: Pass | ISC | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Rust TDD Workflowrtk-ai/rtk | 83k | — | ~753 | Automated safety check: Notes | Apache-2.0 | |
| Rust Best Practicesfarm-fe/farm | 5.6k | 3 repos | ~1.1k | Automated safety check: Pass | MIT |
openinterpreter/openinterpreter
Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.
firecrawl/firecrawl
Adds Firecrawl's /scrape endpoint to application code to pull markdown, HTML, links, screenshots or structured data from a single known URL.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
rtk-ai/rtk
Enforces red-green-refactor for Rust work, with idiomatic test patterns, a naming convention and a pre-commit gate of cargo fmt, clippy and test.
farm-fe/farm
Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.
AprilNEA/OpenLogi
Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.
elodin-sys/elodin
Compare two git branches (usually the current branch vs main) by running every example on each, capturing exit codes, logs, and editor screenshots, then diffing the results.
elodin-sys/elodin
Work with the Cranelift JIT MLIR backend. An agent skill from elodin-sys/elodin.
elodin-sys/elodin
Work with Elodin-DB, the time-series telemetry database. An agent skill from elodin-sys/elodin.
elodin-sys/elodin
Develop and contribute to the Elodin codebase. An agent skill from elodin-sys/elodin.
elodin-sys/elodin
Run the Elodin Editor without a physical display in Gamescope, take screenshots, and record video through PipeWire and GStreamer.
elodin-sys/elodin
Develop and calibrate simulations against experimental truth data using elodin monte-carlo.
Works with
Contribute to the Elodin Editor, the 3D viewer and graphing tool. Elodin Editor Dev is an agent skill from elodin-sys/elodin. Contribute to the Elodin Editor, the 3D viewer and graphing tool.
Elodin Editor Dev fits situations like: editing files in libs/elodin-editor/; working on the Bevy/Egui UI; modifying viewport rendering; telemetry graphs.
Run `npx skills add elodin-sys/elodin --skill elodin-editor-dev -a claude-code`. Or copy the skill folder (.cursor/skills/elodin-editor-dev in elodin-sys/elodin) into .claude/skills/elodin-editor-dev in your project. Claude Code loads it when a task matches its description.
Run `npx skills add elodin-sys/elodin --skill elodin-editor-dev -a codex`. Or copy the skill folder (.cursor/skills/elodin-editor-dev in elodin-sys/elodin) into .agents/skills/elodin-editor-dev in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add elodin-sys/elodin --skill elodin-editor-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/elodin-editor-dev, .gemini/skills/elodin-editor-dev, .github/skills/elodin-editor-dev and .opencode/skills/elodin-editor-dev in your project.
Going by SKILL.md and its folder, Elodin Editor Dev needs the command-line tools its instructions call (cargo and nix).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Elodin Editor Dev is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Elodin Editor Dev: Update V8 Version (openinterpreter/openinterpreter, 69k stars), Firecrawl Page Scrape Integration (firecrawl/firecrawl, 190k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars) and Rust TDD Workflow (rtk-ai/rtk, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
elodin-sys (a GitHub organization) maintains it in elodin-sys/elodin, which has 547 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: elodin-sys/elodin on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.