Recording
codewhale-hq/Codewhale
Capture screenshots on registered computers, record on macOS or HarmonyOS, and manage saved captures.
Capture a Genie Sim RT Engine episode while a scene runs — record the canonical ROS 2 topics (/jointstates, /jointcommand, /tf, /clock, cameras) with ros2 bag, or pair the recording with the teleop…
$ npx skills add AgibotTech/genie_sim --skill record-episode -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install AgibotTech/genie_sim record-episode --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/AgibotTech/genie_sim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/source/geniesim_ros/skills/record-episode .claude/skills/record-episode && 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 "record-episode" agent skill from https://github.com/AgibotTech/genie_sim/tree/main/source/geniesim_ros/skills/record-episode into .claude/skills/record-episode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-episode", 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/AgibotTech/genie_sim/tree/main/source/geniesim_ros/skills/record-episodeType 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 AgibotTech/genie_sim --skill record-episode -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install AgibotTech/genie_sim record-episode --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgibotTech/genie_sim.git skills-src && mkdir -p .agents/skills && cp -r skills-src/source/geniesim_ros/skills/record-episode .agents/skills/record-episode && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "record-episode" agent skill from https://github.com/AgibotTech/genie_sim/tree/main/source/geniesim_ros/skills/record-episode into .agents/skills/record-episode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-episode", 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 AgibotTech/genie_sim --skill record-episode -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install AgibotTech/genie_sim record-episode --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgibotTech/genie_sim.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/source/geniesim_ros/skills/record-episode .cursor/skills/record-episode && 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 "record-episode" agent skill from https://github.com/AgibotTech/genie_sim/tree/main/source/geniesim_ros/skills/record-episode into .cursor/skills/record-episode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-episode", 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/AgibotTech/genie_sim.git --path source/geniesim_ros/skills/record-episode--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 AgibotTech/genie_sim --skill record-episode -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install AgibotTech/genie_sim record-episode --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgibotTech/genie_sim.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/source/geniesim_ros/skills/record-episode .gemini/skills/record-episode && 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 "record-episode" agent skill from https://github.com/AgibotTech/genie_sim/tree/main/source/geniesim_ros/skills/record-episode into .gemini/skills/record-episode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-episode", 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 AgibotTech/genie_sim record-episodeInstalls 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 AgibotTech/genie_sim --skill record-episode -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/AgibotTech/genie_sim.git skills-src && mkdir -p .github/skills && cp -r skills-src/source/geniesim_ros/skills/record-episode .github/skills/record-episode && 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 "record-episode" agent skill from https://github.com/AgibotTech/genie_sim/tree/main/source/geniesim_ros/skills/record-episode into .github/skills/record-episode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-episode", 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 AgibotTech/genie_sim --skill record-episode -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install AgibotTech/genie_sim record-episode --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/AgibotTech/genie_sim.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/source/geniesim_ros/skills/record-episode .opencode/skills/record-episode && 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 "record-episode" agent skill from https://github.com/AgibotTech/genie_sim/tree/main/source/geniesim_ros/skills/record-episode into .opencode/skills/record-episode/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "record-episode", 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.
record-episodeCapture a Genie Sim RT Engine episode while a scene runs — record the canonical ROS 2 topics (/jointstates, /jointcommand, /tf, /clock, cameras) with ros2 bag, or pair the recording with the teleop…
Record Episode is an agent skill from AgibotTech/genie_sim. Capture a Genie Sim RT Engine episode while a scene runs — record the canonical ROS 2 topics (/jointstates, /jointcommand, /tf, /clock, cameras) with ros2 bag, or pair the recording with the teleop / benchmark loops that have their own per-episode output hooks. Trigger: When the user asks to "record an episode", "录制一段数据", "save the run", "dump rosbags", "capture trajectories", or wants to persist the world state during a launch-scene / teleop / benchmark run for later replay or training.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Simulation Platform from AgiBot. The licence is MPL-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6ca11c7. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.ros.orgFrom 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.
Record Episode loads about 1.4k tokens when it runs. Until then it costs about 130 tokens; SKILL.md has 429 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 AgibotTech/genie_sim at commit 6ca11c7, republished under its MPL-2.0 licence (© AgibotTech). 429 words, ~1,408 tokens.
.claude/skills/record-episode/SKILL.md (or your agent's skills folder).launch-scene skill) and the user wants to persist
topic streams for later replay or dataset assembly.run-teleop skill in geniesim_teleop) and the
user wants ROS-side recording on top of the teleop loop's own
per-episode artifacts.--benchmark.record=true writes.Do not use for:
ros2 bag play.ros2 bag needs live publishers.use_sim_time:=true is set engine-side, so every bag captures
/clock and replays cleanly at simulation rate. Don't override
the topic with wall-clock./clock in addition to your topic list — replay
without it falls back to wall-clock pacing and timing breaks for
downstream learners.--max-bag-size to roll over bags.init_* blocks run only at startup, and a fresh
reset is the only way to guarantee a deterministic t0.ros2 bag is the canonical path. There is no dedicated
"recorder" distribution in the stack — the teleop and benchmark
loops have their own per-episode writers (see below), and
everything else goes through ros2 bag.| Topic | Why |
|---|---|
/clock | Sim time — required for deterministic replay |
/tf, /tf_static | World pose tree (robot links, free objects) |
/joint_states | Robot state from the engine |
/joint_command | Whatever a teleop / planner pushed in |
/odom | Mobile base (if applicable) |
/camera/* | RGB / depth / fisheye streams (heavy, narrow if you can) |
/tf_render | OVRtx render-layer transforms (only if you'll replay rendering) |
ros2 topic list | grep -E "joint_states|tf|clock"
ros2 topic hz /clock # sim-time pacing should be liveFor a typical G2 manipulation run:
TOPICS=(
/clock
/tf /tf_static
/joint_states
/joint_command
/odom
)
# add cameras if you want pixels:
TOPICS+=(/camera/head/rgb /camera/head/depth)# inside the container, in a second shell:
source devel/setup.bash
ros2 bag record \
--output ./runs/$(date +%Y%m%d_%H%M%S)_${USER}_pnp \
--max-bag-size 1073741824 \
--storage mcap \
"${TOPICS[@]}"Stop with Ctrl-C. The bag dir contains metadata.yaml + chunked
.mcap files.
ros2 bag info ./runs/<dir>
ros2 bag play ./runs/<dir> --clock # replay sim-timeFor teleop:
geniesim teleop run --device_type=pico --record-dir ./runs
# writes per-episode artifacts under ./runs/<episode>/For benchmark:
geniesim benchmark run <CONFIG> --infer-host=<IP>:<PORT> \
--benchmark.record=true
# output_dir comes from the config; check the run banner# Inside the container, alongside a running scene:
source devel/setup.bash
ros2 bag record \
--output ./runs/$(date +%Y%m%d_%H%M%S)_demo \
--storage mcap \
/clock /tf /tf_static /joint_states /joint_command /odom
# Replay:
ros2 bag play ./runs/<dir> --clock--storage mcap is preferred over the legacy sqlite3 storage —
faster random access, smaller files, and the standard for ROS 2
Jazzy.manifest.json (under assets/scenes/<scene>/) alongside the
bag — it records the exact USD + robot variant the bag was
captured against.geniesim_generator skills
(generate-scene, search-assets) plus the benchmark
record=true flag are the closer fit — they write
episode-indexed artifacts, not raw bags.© AgibotTech, MPL-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 source/geniesim_ros/skills/record-episode of AgibotTech/genie_sim.
Open the folder on GitHubat commit 6ca11c7
Record Episode 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 |
|---|---|---|---|---|---|---|
| Record Episode this skillAgibotTech/genie_sim | 1.4k | — | ~1.4k | Automated safety check: Pass | MPL-2.0 | |
| Recordingcodewhale-hq/Codewhale | 41k | — | ~540 | Automated safety check: Pass | MIT | |
| Architecture Decision Recordsaffaan-m/ECC | 276k | 4 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Capturealirezarezvani/claude-skills | 28k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Architecture Decision Recordsdavila7/claude-code-templates | 32k | 12 repos | ~3.2k | Automated safety check: Pass | MIT | |
| macOS Screen Recordersickn33/agentic-awesome-skills | 47k | 1 repos | ~727 | Automated safety check: Pass | MIT |
codewhale-hq/Codewhale
Capture screenshots on registered computers, record on macOS or HarmonyOS, and manage saved captures.
affaan-m/ECC
Capture architectural decisions as numbered ADR markdown files in docs/adr/ with context, alternatives considered, consequences, and an index README.
alirezarezvani/claude-skills
Captures and organizes chaotic brain dumps into a structured, actionable system with zero information loss.
davila7/claude-code-templates
Comprehensive patterns for creating, maintaining, and managing Architecture Decision Records (ADRs) that capture the context and rationale behind significant technical decisions.
sickn33/agentic-awesome-skills
macOS screen recorder that captures the main display PLUS system audio via ScreenCaptureKit — no BlackHole/loopback driver, no sudo, just the standard Screen Recording permission.
affaan-m/ECC
在Claude Code会话期间,将做出的架构决策捕获为结构化的架构决策记录(ADR)。自动检测决策时刻,记录上下文、考虑的替代方案和理由。维护一个ADR日志,以便未来的开发人员理解代码库为何以当前方式构建。
AgibotTech/genie_sim
Provision and launch the Simulation Challenge baseline inference model end to end: clone the inference code from a given git repo/branch, download the checkpoints from ModelScope into the repo's…
AgibotTech/genie_sim
Download the Simulation Challenge LeRobot v2.1 training datasets from ModelScope using ./scripts/downloaddataset.sh.
AgibotTech/genie_sim
Bring a custom robot into the Genie Sim RT Engine — author / fix a xacro / URDF in geniesimrobotmodel, prep meshes with the offline tools (normalizeobjnames.py, diagnoseurdf.py, recomputeinertia.py…
AgibotTech/genie_sim
Build the geniesimros colcon workspace inside the Genie Sim Docker container using the geniesim ros build CLI verb.
AgibotTech/genie_sim
Reference for the Simulation Challenge inference wire protocol — the exact obs (input) and action (output) message format exchanged between the gateway/genie-sim simulator and the contestant's…
AgibotTech/genie_sim
A skill your agent uses when the contestant needs to obtain or refresh their Simulation Challenge JWT (CHALLENGETOKEN), or wants to inspect the current logged-in user.
Capture a Genie Sim RT Engine episode while a scene runs — record the canonical ROS 2 topics (/jointstates, /jointcommand, /tf, /clock, cameras) with ros2 bag, or pair the recording with the teleop…. Record Episode is an agent skill from AgibotTech/genie_sim. Capture a Genie Sim RT Engine episode while a scene runs — record the canonical ROS 2 topics (/jointstates, /jointcommand, /tf, /clock, cameras) with ros2 bag, or pair the recording with the teleop / benchmark loops that have their own per-episode output hooks.
Record Episode fits situations like: asks to record an episode; capture trajectories; wants to persist the world state during a launch-scene / teleop / benchmark run for later replay.
Run `npx skills add AgibotTech/genie_sim --skill record-episode -a claude-code`. Or copy the skill folder (source/geniesim_ros/skills/record-episode in AgibotTech/genie_sim) into .claude/skills/record-episode in your project. Claude Code loads it when a task matches its description.
Run `npx skills add AgibotTech/genie_sim --skill record-episode -a codex`. Or copy the skill folder (source/geniesim_ros/skills/record-episode in AgibotTech/genie_sim) into .agents/skills/record-episode 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 AgibotTech/genie_sim --skill record-episode -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/record-episode, .gemini/skills/record-episode, .github/skills/record-episode and .opencode/skills/record-episode in your project.
SKILL.md names no scripts, command-line tools or credentials: Record Episode is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: docs.ros.org. 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.
Record Episode is published under the MPL-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.6k 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 Record Episode: Recording (codewhale-hq/Codewhale, 41k stars), Architecture Decision Records (affaan-m/ECC, 276k stars), Capture (alirezarezvani/claude-skills, 28k stars) and Architecture Decision Records (davila7/claude-code-templates, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
AgibotTech (a GitHub organization) maintains it in AgibotTech/genie_sim, which has 1,415 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on September 7, 2026.
Source: AgibotTech/genie_sim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.