Lab
hashgraph-online/awesome-codex-plugins
Build a Game Lab for one mechanic of a studio's game (the jump, a hit, a dash, a drift, a landing) and iterate on how it FEELS with the creator, side by side.
Restart the microduck dev stack — the duck-lab backend (farm, :8788) and the duck-viewer dev server (:63317).
$ npx skills add jonathanhawkins/microduck-lab --skill restart-servers -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jonathanhawkins/microduck-lab restart-servers --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/jonathanhawkins/microduck-lab.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/restart-servers .claude/skills/restart-servers && 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 "restart-servers" agent skill from https://github.com/jonathanhawkins/microduck-lab/tree/main/.claude/skills/restart-servers into .claude/skills/restart-servers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "restart-servers", 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/jonathanhawkins/microduck-lab/tree/main/.claude/skills/restart-serversType 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 jonathanhawkins/microduck-lab --skill restart-servers -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jonathanhawkins/microduck-lab restart-servers --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jonathanhawkins/microduck-lab.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/restart-servers .agents/skills/restart-servers && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "restart-servers" agent skill from https://github.com/jonathanhawkins/microduck-lab/tree/main/.claude/skills/restart-servers into .agents/skills/restart-servers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "restart-servers", 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 jonathanhawkins/microduck-lab --skill restart-servers -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jonathanhawkins/microduck-lab restart-servers --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jonathanhawkins/microduck-lab.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/restart-servers .cursor/skills/restart-servers && 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 "restart-servers" agent skill from https://github.com/jonathanhawkins/microduck-lab/tree/main/.claude/skills/restart-servers into .cursor/skills/restart-servers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "restart-servers", 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/jonathanhawkins/microduck-lab.git --path .claude/skills/restart-servers--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 jonathanhawkins/microduck-lab --skill restart-servers -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jonathanhawkins/microduck-lab restart-servers --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jonathanhawkins/microduck-lab.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/restart-servers .gemini/skills/restart-servers && 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 "restart-servers" agent skill from https://github.com/jonathanhawkins/microduck-lab/tree/main/.claude/skills/restart-servers into .gemini/skills/restart-servers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "restart-servers", 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 jonathanhawkins/microduck-lab restart-serversInstalls 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 jonathanhawkins/microduck-lab --skill restart-servers -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jonathanhawkins/microduck-lab.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/restart-servers .github/skills/restart-servers && 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 "restart-servers" agent skill from https://github.com/jonathanhawkins/microduck-lab/tree/main/.claude/skills/restart-servers into .github/skills/restart-servers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "restart-servers", 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 jonathanhawkins/microduck-lab --skill restart-servers -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jonathanhawkins/microduck-lab restart-servers --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jonathanhawkins/microduck-lab.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/restart-servers .opencode/skills/restart-servers && 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 "restart-servers" agent skill from https://github.com/jonathanhawkins/microduck-lab/tree/main/.claude/skills/restart-servers into .opencode/skills/restart-servers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "restart-servers", 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.
restart-serversRestart the microduck dev stack — the duck-lab backend (farm, :8788) and the duck-viewer dev server (:63317).
Restart Servers is an agent skill from jonathanhawkins/microduck-lab. Restart the microduck dev stack — the duck-lab backend (farm, :8788) and the duck-viewer dev server (:63317). Use when the viewer shows "offline", after editing vizserver/behaviors (the farm holds stale code), or whenever the user asks to restart the dev/backend servers.
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `restart.sh`, `teach.sh` and `viewer.sh`).
The repository describes itself as: Train RL policies for the Pollen Microduck 🦆 on an ordinary Mac, no CUDA GPU, and watch them learn live in the browser. 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 bbf0326. 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.
Ships script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
bashcurluvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl and uv, 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.
Restart Servers loads about 1.1k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 555 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 jonathanhawkins/microduck-lab at commit bbf0326, republished under its Apache-2.0 licence (© jonathanhawkins). 555 words, ~1,089 tokens.
.claude/skills/restart-servers/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Restart both microduck servers, in this order:
WARNING — training dies with the farm. A farm restart kills any live
teach job. Its checkpoint survives; resume after with
POST /teach {"text": ..., "initFrom": "<run>"}. The script refuses on
its own when a trainer is up — a train_behavior (duck) or a
microduck_local.train (G1 task) python process, or the lab's own
GET /teach/status saying "running": true — but check first anyway,
as a separate command, never combined with the restart:
curl -s -m 2 http://127.0.0.1:8788/teach/statusOnly MICRODUCK_RESTART_FORCE=1 overrides the refusal.
Run the script (stops the lab, restarts it cwd-proof and entry-point-rename-proof, verifies :8788 health, then bounces the viewer):
bash .claude/skills/restart-servers/restart.shAfter a lab-only code change (viz_server, behaviors, world, brain…) leave the viewer dev server alone — it hot-reloads on its own:
bash .claude/skills/restart-servers/restart.sh --backend-onlyPass --fresh plus .onnx paths to reseed the duck roster; with no args
the saved roster (lab-state.json) is kept.
Only the process LISTENING on :8788 is stopped (lsof … -sTCP:LISTEN,
TERM, then KILL by pid after 10 s). It used to pkill -f duck-lab, which
matched every lab on the machine: on 2026-09-17 another session had a
scratch lab on :8799 (--world pitch-3v3) that the old script would have
killed along with the real one. A scratch lab on another port — with its
own LAB_STATE_PATH=… so it never rewrites the real lab-state.json —
survives a restart of :8788 now.
The script now starts the viewer too, detached, by calling viewer.sh.
Nothing more to do. To (re)start only the viewer:
bash .claude/skills/restart-servers/viewer.sh # no-op if already up
bash .claude/skills/restart-servers/viewer.sh --force # restart regardlessDo NOT use preview_start for the viewer. The managed preview makes the
dev server a child of the session's tool runtime, so it is reaped on a
session or model switch — that killed it on 2026-09-02 and looked like a
crash. viewer.sh reparents it to launchd (PPID 1), like the backend, so it
survives. Open the viewer with navigate to a normal browser tab instead.
Use localhost, not 127.0.0.1, for the viewer. Next 16 serves the
HTML to either host but 403s its own /_next dev resources when the host is
not in allowedDevOrigins, so 127.0.0.1:63317 renders a blank page with
an empty <body> and console 403s — it looks like the app is broken when
only the origin is wrong. http://localhost:63317/sim renders fine. (The
backend is the opposite: curl it at 127.0.0.1:8788, and note / is a 404
there because it has no root route — use /joints for a health check.)
Confirm frames flow: one WS read from ws://127.0.0.1:8788/ws should return
a frame with a non-empty ducks list. Tell the user to refresh the page.
Logs: backend microduck_local/lab-server.log, viewer
duck-viewer/viewer-server.log (both gitignored).
Known gotchas these scripts already handle: the shell cwd resets to the parent
repo (breaks bare uv run); the backend entry point was renamed
(duck-farm → duck-lab) and may churn again; a stale Next lock file can block
viewer spawns (viewer.sh kills the port holder with lsof first); a managed
preview would not survive a session restart (hence the detached launch). And — since 2026-09-10 — each
server starts in its own session (detach in both scripts: Python's
start_new_session, because macOS has no setsid). nohup … & alone left
the server in the tool call's process group, and when the Claude harness
reaped a tool call it had backgrounded, the lab went down with it hours after
"backend UP". The sim-smoke bring-up delegates every launch here for that
reason; from an agent shell, never start these servers any other way.
© jonathanhawkins, 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
SKILL.md and 3 other files in .claude/skills/restart-servers of jonathanhawkins/microduck-lab.
Open the folder on GitHubat commit bbf0326
Restart Servers 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 |
|---|---|---|---|---|---|---|
| Restart Servers this skilljonathanhawkins/microduck-lab | 132 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Labhashgraph-online/awesome-codex-plugins | 1.3k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Farm Ready Gatefarm-fe/farm | 5.6k | — | ~875 | Automated safety check: Pass | MIT | |
| Ginkgo Cloud LabK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Superpowers Labsickn33/agentic-awesome-skills | 47k | 1 repos | ~245 | Automated safety check: Pass | MIT | |
| Bambu Lab Print Handoffearthtojake/text-to-cad | 19k | — | ~861 | Automated safety check: Pass | MIT |
hashgraph-online/awesome-codex-plugins
Build a Game Lab for one mechanic of a studio's game (the jump, a hit, a dash, a drift, a landing) and iterate on how it FEELS with the creator, side by side.
farm-fe/farm
Run Farm verification with build-first constraints. An agent skill from farm-fe/farm.
K-Dense-AI/scientific-agent-skills
Guides protocol selection, input preparation, pricing checks, and browser ordering on Ginkgo Bioworks Cloud Lab (cloud.ginkgo.bio).
sickn33/agentic-awesome-skills
Lab environment for Claude superpowers
earthtojake/text-to-cad
Opens a sliced file in Bambu Connect, or an unsliced model in Bambu Studio, so you can pick a Bambu Lab printer and start the print yourself.
permissionlesstech/bitchat-android
Run, diagnose, and extend bitchat Android Mesh Lab physical-device tests.
jonathanhawkins/microduck-lab
Record a /sim WORLD scenario — the living room, the playroom tidy loop, a soccer pitch, any scenario JSON — to an mp4, a captioned contact sheet and an events log, headless and under a seed, then…
jonathanhawkins/microduck-lab
Render a microduck policy rollout to video AND to a frame contact sheet with per-frame diagnostics burned in, then READ the sheet to see what the policy actually does.
jonathanhawkins/microduck-lab
Debug the playroom tidy loop (Track 12) — trace one run state by state, see every release, landing and fall with context, and re-measure the walker facts the brain's constants rest on.
jonathanhawkins/microduck-lab
Run the CLOSED training loop on a MOSS/duck policy without a human having to ask "is it done yet": launch through the lab, block until the run finishes, print the standard report and the per-term…
jonathanhawkins/microduck-lab
Look at the /sim world page the way a user would — bring up the lab in world mode and the viewer, open the page in headless Chromium, press keys, screenshot it, and READ the screenshot and console.
jonathanhawkins/microduck-lab
Look at what the ACTIVE teach run is practicing right now: renders the live checkpoint under the trainer's own env knobs (actuator, spawn mix, reward gates — read from the live trainer process) and…
Restart the microduck dev stack — the duck-lab backend (farm, :8788) and the duck-viewer dev server (:63317). Restart Servers is an agent skill from jonathanhawkins/microduck-lab. Restart the microduck dev stack — the duck-lab backend (farm, :8788) and the duck-viewer dev server (:63317).
Restart Servers fits situations like: the viewer shows offline; after editing vizserver/behaviors (the farm holds stale code); whenever the user asks to restart the dev/backend servers.
Run `npx skills add jonathanhawkins/microduck-lab --skill restart-servers -a claude-code`. Or copy the skill folder (.claude/skills/restart-servers in jonathanhawkins/microduck-lab) into .claude/skills/restart-servers in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jonathanhawkins/microduck-lab --skill restart-servers -a codex`. Or copy the skill folder (.claude/skills/restart-servers in jonathanhawkins/microduck-lab) into .agents/skills/restart-servers 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 jonathanhawkins/microduck-lab --skill restart-servers -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/restart-servers, .gemini/skills/restart-servers, .github/skills/restart-servers and .opencode/skills/restart-servers in your project.
Going by SKILL.md and its folder, Restart Servers needs a shell for the scripts in its folder and the command-line tools its instructions call (bash, curl and uv). Our summary lists: Python 3; A Bash shell.
SKILL.md contains no URLs. Its commands use curl and uv, 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.
Restart Servers 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 1.1k tokens (SKILL.md is roughly 4.4k 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 Restart Servers: Lab (hashgraph-online/awesome-codex-plugins, 1.3k stars), Farm Ready Gate (farm-fe/farm, 5.6k stars), Ginkgo Cloud Lab (K-Dense-AI/scientific-agent-skills, 48k stars) and Superpowers Lab (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jonathanhawkins (a GitHub user) maintains it in jonathanhawkins/microduck-lab, which has 132 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 1, 2026.
Source: jonathanhawkins/microduck-lab on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.