Sap Hana Cloud Data Intelligence
secondsky/sap-skills
Develops data processing pipelines, integrations, and machine learning scenarios in SAP Data Intelligence Cloud.
Work with Elodin-DB, the time-series telemetry database. An agent skill from elodin-sys/elodin.
$ npx skills add elodin-sys/elodin --skill elodin-db -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install elodin-sys/elodin elodin-db --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-db .claude/skills/elodin-db && 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-db" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-db into .claude/skills/elodin-db/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-db", 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-dbType 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-db -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install elodin-sys/elodin elodin-db --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-db .agents/skills/elodin-db && 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-db" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-db into .agents/skills/elodin-db/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-db", 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-db -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install elodin-sys/elodin elodin-db --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-db .cursor/skills/elodin-db && 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-db" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-db into .cursor/skills/elodin-db/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-db", 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-db--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-db -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install elodin-sys/elodin elodin-db --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-db .gemini/skills/elodin-db && 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-db" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-db into .gemini/skills/elodin-db/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-db", 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-dbInstalls 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-db -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-db .github/skills/elodin-db && 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-db" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-db into .github/skills/elodin-db/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-db", 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-db -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-db --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-db .opencode/skills/elodin-db && 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-db" agent skill from https://github.com/elodin-sys/elodin/tree/main/.cursor/skills/elodin-db into .opencode/skills/elodin-db/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "elodin-db", 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-dbWork with Elodin-DB, the time-series telemetry database. An agent skill from elodin-sys/elodin.
Elodin DB is an agent skill from elodin-sys/elodin. Work with Elodin-DB, the time-series telemetry database. Use when running elodin-db, writing client integrations (C, C++, Rust, Python), configuring replication/follow mode, the DB Asset Server / assets ingest, querying data via the Lua REPL, or connecting the Elodin Editor to a database.
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Forecasting and time series and Database administration. It works with Lua, Rust, Python and C++. The repository describes itself as: Elodin simulation and flight software monorepo. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 784483e. 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:
justcurlcargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
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 DB loads about 2.9k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 903 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 784483e, republished under its Apache-2.0 licence (© elodin-sys). 903 words, ~2,924 tokens.
.claude/skills/elodin-db/SKILL.md (or your agent's skills folder).Elodin-DB is a high-performance time-series database for telemetry data. It stores components, messages, and metadata using the Impeller protocol, and serves as the central data bus between simulations, flight software, and the Elodin Editor.
# Install (from source)
just install
# Run the database
elodin-db run [::]:2240 $HOME/.local/share/elodin/db --config libs/db/examples/db-config.lua --log-level warn
# Connect the Elodin Editor
elodin editor 127.0.0.1:2240
# Launch the Lua REPL
elodin-db luaelodin-db run <bind_addr> <data_dir> [--config <lua_file>] [--assets <dir>] [--log-level <level>]| Parameter | Example | Purpose |
|---|---|---|
bind_addr | [::]:2240 | Listen address (IPv4/IPv6 + port) |
data_dir | $HOME/.local/share/elodin/db | Storage directory |
--config | libs/db/examples/db-config.lua | Lua configuration script |
--assets | /var/lib/elodin/assets | Source assets/ tree to ingest on fresh DB create (overrides ELODIN_ASSETS) |
--log-level | warn | Log verbosity: error, warn, info, debug, trace |
Impeller TCP listens on port N (e.g. 2240). The DB Asset Server always binds N+1 (e.g. 2241) and serves {data_dir}/assets/ over HTTP. Do not put a follower Impeller listener on N+1.
Visual files for schematics live under {db}/assets/{relative_key} and are served at http://host:(tcp_port+1)/{relative_key} while the DB runs. Record once, copy the DB directory, replay anywhere — no separate assets/ tree required on the consumer.
On first create of an empty DB, elodin-db run (and Python world.run(..., db_path=…)) copies a source tree into {db}/assets/ once, then writes a .elodin-ingested marker. Later opens skip ingest so recorded/editor assets are never wiped.
Source resolution (CLI --assets wins when set; otherwise):
$ELODIN_ASSETS<sim_entry>/assets (simulations only)<cwd>/assetsassets/ (simulations only)# Seed a fresh DB from an explicit tree (Aleph / HITL pattern)
elodin-db run [::]:2240 ./my-db --assets /var/lib/elodin/assets{db}/assets/Same layout as the simulation asset root (see elodin-simulation skill):
| Key prefix | Contents |
|---|---|
*.glb, meshes/…, models/… | Meshes referenced by glb path= (rewritten to db:… in stored KDL) |
schematics/*.kdl | Active schematic (default schematics/main.kdl) and window sub-schematics |
skyboxes/manifest.ron + *.cubemap.ktx2 | Named skyboxes |
terrains/… | Terrain atlases for world_mesh |
color_schemes/… | Optional theme JSON (local editor; not required for replay of built-in names) |
schematic.active metadata points at the active KDL asset key (usually schematics/main.kdl). Consumers fetch that KDL over HTTP — there is no inline KDL mirror in DB metadata.
db: schemeAt record/ingest, local paths like models/jet.glb become db:models/jet.glb in stored schematics. Already-db: / http(s): / icon builtin=… paths are left alone. Keys must not contain ...
Telemetry replicates over Impeller TCP. Assets do not — the follower GETs http://source:(N+1)/__index__ and mirrors missing/changed keys into its own {db}/assets/, then serves them on (follower_port+1).
elodin-db run 127.0.0.1:2240 ./source-db
elodin-db run 127.0.0.1:2242 ./follower-db --follows 127.0.0.1:2240 # assets on 2243
elodin editor 127.0.0.1:2242Point --follows at the source Impeller port (N), not the asset port.
curl -sf -o /dev/null -w "%{http_code}\n" http://127.0.0.1:2241/schematics/main.kdl
ls -lh "$DB_PATH/assets/"Empty assets/ after a sim usually means a temp DB (world.run without db_path / ELODIN_DB_PATH). Mesh 404s mean the source tree was never ingested — re-run against a fresh DB with the correct --assets / ELODIN_ASSETS.
Full reference: docs/public/content/reference/db-asset-server.md
Interactive database shell for debugging and exploration:
elodin-db luadb> client = connect("127.0.0.1:2240")
db> client:dump_metadata()
db> :helpcc examples/client.c -lm -o /tmp/client && /tmp/clientSee libs/db/examples/client.c for streaming fake sensor data.
c++ -std=c++23 examples/client.cpp -o /tmp/client-cpp && /tmp/client-cppThe C++ library is C++20 compatible. See libs/db/examples/client.cpp for subscription example.
See libs/db/examples/rust_client/ for a complete Rust client using Impeller.
Generate the single-header C++20 library with message definitions:
cargo run --bin elodin-db gen-cpp > libs/db/examples/db.hppSimulations automatically create an embedded database, or connect to an external one:
# Embedded (temporary)
w.run(system)
# Explicit path
w.run(system, db_path="./my_data")
# Connect to external DB
w.run(system, db_addr="127.0.0.1:2240")Replicate data from one database to another over TCP:
# Source database
elodin-db run [::]:2240 $HOME/.local/share/elodin/source-db
# Follower database (replicates from source)
elodin-db run [::]:2241 $HOME/.local/share/elodin/follower-db --follows 127.0.0.1:2240The follower:
N+1 (see Assets above)Default batches outgoing data into ~1500-byte TCP writes (standard Ethernet MTU):
elodin-db run [::]:2241 ./follower-db --follows 127.0.0.1:2240 --follow-packet-size 9000Run a simulation on source, follow on target, and add local streams:
# Source machine
elodin editor examples/video-stream/main.py
# Target — follow source
elodin-db run [::]:2241 ./follower-db --follows SOURCE_IP:2240
# Target — connect editor
elodin editor 127.0.0.1:2241
# Target — add local video stream
examples/video-stream/stream-video.shCombine two databases (e.g. SITL and real telemetry) with optional time alignment and component prefixes.
# Basic merge with prefixes
elodin-db merge -o merged --prefix1 sitl --prefix2 real ./sitl-db ./real-db
# Align using elapsed offsets from each recording start, in microseconds
elodin-db merge -o merged --prefix1 sitl --prefix2 real \
--align1 15000000 --align2 14000000 --from-playback-start ./sitl-db ./real-dbUse --from-playback-start only for elapsed offsets from each recording's playback start (recorded start metadata, falling back to the first data timestamp), expressed in microseconds. Values copied with the Editor µs button are raw timestamps: pass them to --align1 / --align2 without this flag. Seconds must be multiplied by 1,000,000 for the CLI; a seconds display is not necessarily relative to recording start.
Copy alignment values from the editor TIME field: click to select, µs copies raw microseconds, Enter seeks to a pasted value (seconds with s, UTC, or plain µs).
Offline export to analysis formats or a Foxglove-ready MCAP recording:
# Parquet / arrow-ipc / csv (one file per component)
elodin-db export --format parquet --output ./out ./my-db
# Foxglove-compatible MCAP + generated Foxglove layout JSON
elodin-db export --format mcap --output ./out ./my-db
# Pre-1970 epochs (e.g. Apollo 1969) auto-rebase to t=0 (also if --epoch-offset-us
# would leave samples pre-epoch — MCAP log_time is unsigned)
# Large GLBs (moon.glb) stay attached; model primitive omitted above --max-embed-mb (default 32)
# Follow-entity mesh always embeds. Dynamic arrows go to /scene_dynamic.
elodin-db export --format mcap --max-embed-mb 32 --output ./out ./apollo-dbThe MCAP export maps components to JSON channels (/drone/world_pos.q0 message
paths), emits /tf from *.world_pos poses (with world→NED/ENU anchors from a
schematic coordinate node), publishes foxglove.SceneUpdate one topic per
entity (/scene/<id>: GLBs, literal-pose objects with composed
translate/rotate, pixel-width line_3d trails, static arrows,
world_mesh "globe" → earth.glb) plus ≤30 Hz dynamic arrows on
/scene_dynamic/<name> (Foxglove backfills latest-per-topic on panel remount,
so shared scene topics silently drop entities), encodes sensor-camera RGBA to
H.264 CompressedVideo when video-export is enabled, attaches schematic
KDLs/assets, and generates {db}.foxglove-layout.json (per-viewport followTf
from look_at, camera offsets incl. translate_world(...), far ≥ 4× distance).
Upload with scripts/foxglove-upload.sh
or manually via POST /v1/data/upload + PUT then POST /v1/layouts. See
elodin-cli.md Foxglove MCAP Export
and foxglove-mcap-export-design.md.
Remove data from the beginning or end of a recording. Values are in microseconds. Without --output, modifies in place.
# Remove the first 3 minutes from a recording
elodin-db trim --from-start 180000000 ./my-db
# Remove the last 2 minutes from a recording
elodin-db trim --from-end 120000000 --output ./trimmed ./my-db
# Trim 1 minute from the start and 2 minutes from the end
elodin-db trim --from-start 60000000 --from-end 120000000 --output ./window ./my-db
# Preview without modifying
elodin-db trim --from-start 180000000 --dry-run ./my-dbThe Elodin Editor connects to any running database:
elodin editor 127.0.0.1:2240From a simulation, the editor connects automatically when launched via elodin editor sim.py.
Elodin-DB uses the Impeller protocol internally:
Storage is append-only with configurable retention. The database supports concurrent readers and writers with lock-free data structures.
© 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-db of elodin-sys/elodin.
Open the folder on GitHubat commit 784483e
Elodin DB 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 DB this skillelodin-sys/elodin | 547 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Sap Hana Cloud Data Intelligencesecondsky/sap-skills | 462 | — | ~3.2k | Automated safety check: Pass | GPL-3.0 | |
| Smooth Cpp Sharedopenforecast-org/smooth | 107 | — | ~1.1k | Automated safety check: Pass | LGPL-2.1 | |
| GeomasterLeonChaoX/qinyan-academic-skills | 943 | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| GeomasterK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Smooth Translationopenforecast-org/smooth | 107 | — | ~2.2k | Automated safety check: Pass | LGPL-2.1 |
secondsky/sap-skills
Develops data processing pipelines, integrations, and machine learning scenarios in SAP Data Intelligence Cloud.
openforecast-org/smooth
Work on the C++ layer that the R package and the Python port share — the headers under src/headers/, the Rcpp bindings in src/, the pybind11 bindings in src/python/, and the two build systems that…
LeonChaoX/qinyan-academic-skills
Comprehensive geospatial science skill covering remote sensing, GIS, spatial analysis, machine learning for earth observation, and 30+ scientific domains.
K-Dense-AI/scientific-agent-skills
Supports geospatial research workflows for remote sensing, vector and raster GIS, spatial statistics, terrain and network analysis, and machine learning for Earth observation.
openforecast-org/smooth
Port a feature from the R smooth package to the Python port, or check how an R name maps to Python.
ArabelaTso/Skills-4-SE
Automatically generate TLA+ specifications from source code (C/C++, Python) for formal verification of distributed systems.
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
Develop and contribute to the Elodin codebase. An agent skill from elodin-sys/elodin.
elodin-sys/elodin
Contribute to the Elodin Editor, the 3D viewer and graphing tool.
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.
Categories
Work with Elodin-DB, the time-series telemetry database. An agent skill from elodin-sys/elodin. Elodin DB is an agent skill from elodin-sys/elodin. Work with Elodin-DB, the time-series telemetry database.
Elodin DB fits situations like: running elodin-db; writing client integrations (C; configuring replication/follow mode; the DB Asset Server / assets ingest.
Run `npx skills add elodin-sys/elodin --skill elodin-db -a claude-code`. Or copy the skill folder (.cursor/skills/elodin-db in elodin-sys/elodin) into .claude/skills/elodin-db in your project. Claude Code loads it when a task matches its description.
Run `npx skills add elodin-sys/elodin --skill elodin-db -a codex`. Or copy the skill folder (.cursor/skills/elodin-db in elodin-sys/elodin) into .agents/skills/elodin-db 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-db -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-db, .gemini/skills/elodin-db, .github/skills/elodin-db and .opencode/skills/elodin-db in your project.
Going by SKILL.md and its folder, Elodin DB needs the command-line tools its instructions call (just, curl and cargo). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. 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 DB 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 2.9k tokens (SKILL.md is roughly 12k 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 DB: Sap Hana Cloud Data Intelligence (secondsky/sap-skills, 462 stars), Smooth Cpp Shared (openforecast-org/smooth, 107 stars), Geomaster (LeonChaoX/qinyan-academic-skills, 943 stars) and Geomaster (K-Dense-AI/scientific-agent-skills, 48k 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 9, 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.