← All skills
docker-setup
54 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a coding skill usually runs build and test commands.
By gtapps/hermitd (GitHub) · coding · 84 stars · scanned at commit c2d971a
Host-only, operator-invoked. Generates Docker scaffolding and walks the operator through token setup, build, start, MCP plugin configuration, workspace trust, and verification. Offers to back up and overwrite existing Docker files. Run after /hatch.
Works with any agent that supports SKILL.md skills.
What this skill can do
Sends data to these websites: github.com, bun.sh, storage.googleapis.com
This is disclosed by the author in the skill's SKILL.md or README.
Found in 9 places.
Show 6 more
- plugins/hermitd/scripts/hermitd-start.ts, line 415
'bun: required runtime not on PATH. Install with `curl -fsSL https://bun.sh/install | bash`, ' + - plugins/hermitd/scripts/lib/channel-chats.ts, line 65
const response = await fetch(`${base}${route}`, { - plugins/hermitd/scripts/lib/channel-chats.ts, line 152
const response = await fetch(`${base}${route}`, { - plugins/hermitd/scripts/lib/channel-send.ts, line 107
const resp = await fetch(url, { ...request, signal }); - plugins/hermitd/scripts/render-docker-templates.ts, line 97
` curl -fsSL "https://storage.googleapis.com/chrome-for-testing-public/${BROWSER_PINS.chrome.version}/\${platform}/chrome-\${platform}.zip" -o /tmp/chrome.zi - plugins/hermitd/scripts/render-docker-templates.ts, line 102
` curl -fsSL ${BROWSER_PINS.novnc.url} -o /tmp/novnc.tgz && \\`,
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README. Expected for a coding skill.
Found in 69 places.
Show 17 more
- plugins/hermitd/skills/docker-setup/SKILL.md, line 490
bun ${CLAUDE_PLUGIN_ROOT}/scripts/channel-access.ts "<project_path>/.hermit" pair <plugin> <code> - plugins/hermitd/skills/docker-setup/SKILL.md, line 495
bun ${CLAUDE_PLUGIN_ROOT}/scripts/channel-access.ts "<project_path>/.hermit" policy <plugin> allowlist - plugins/hermitd/skills/docker-setup/SKILL.md, line 502
bun ${CLAUDE_PLUGIN_ROOT}/scripts/channel-access.ts "<project_path>/.hermit" ensure-defaults <plugin> - plugins/hermitd/skills/docker-setup/SKILL.md, line 509
bun ${CLAUDE_PLUGIN_ROOT}/scripts/channel-bot-id.ts <project_path>/.hermit <plugin> --write - plugins/hermitd/docs/always-on.md, line 160
`hermitd-docker bash` opens a shell inside the container. Use `hermitd-docker bash -c "cmd"` for one-off commands. - plugins/hermitd/docs/creating-your-own-hermit.md, line 189
- `expiry_probe` (required) — a shell command run via `bash -c` with a 5s timeout. It **must print exactly one line** to stdout: - plugins/hermitd/docs/docker-security.md, line 64
hermitd docker bash -c 'sh -s' <<'VERIFY_EOF' - plugins/hermitd/docs/docker-security.md, line 145
Verify with `hermitd-docker bash -c 'gh auth status'`. - plugins/hermitd/docs/security.md, line 229
- **The sealed exception.** The overlay carries a declarative `autoMode.allow` entry plus `autoMode.environment` context pre-authorizing the hermit's own `apply - plugins/hermitd/docs/security.md, line 249
Routine prechecks retain their separate rule: direct `routines.<index>.precheck` and `precheck_timeout_s` mutations ask, including unset. A routine-container re - plugins/hermitd/docs/security.md, line 251
A target spelled through a shell variable and direct Edit/Write, redirect, `cp`/`mv`/`tee`, or `sed -i` onto `config.json` still ask. The hook also retains prot - plugins/hermitd/scripts/apply-settings.ts, line 241
"Bash(bash -c 'AGENT_DIR=\".hermit\"*)", - plugins/hermitd/scripts/browser-display.ts, line 4
import { spawnSync } from 'node:child_process'; - plugins/hermitd/scripts/browser-display.ts, line 126
const children: ReturnType<typeof Bun.spawn>[] = []; - plugins/hermitd/scripts/browser-display.ts, line 142
const xvnc = Bun.spawn(['Xvnc', owned.display, '-geometry', '500x1082', '-depth', '24', '-rfbport', '-1', '-rfbunixpath', vncSocket, '-rfbunixmode', '0600', '-S - plugins/hermitd/scripts/browser-display.ts, line 151
children.push(Bun.spawn(['openbox'], { env, stdin: 'ignore', stdout: 'ignore', stderr: 'inherit' })); - plugins/hermitd/scripts/browser-display.ts, line 160
const child = Bun.spawn([process.execPath, path.join(import.meta.dir, 'browser-viewer.ts')], { env: { ...env, HERMIT_BROWSER_VIEWER_BIND: browserDisplaySettings
and 49 more places
Downloads and installs other software
The author does not mention this.
Found in 9 places.
Show 6 more
- plugins/hermitd/docs/security.md, line 44
"Bash(wget * | bash*)", - plugins/hermitd/scripts/hermitd-start.ts, line 415
'bun: required runtime not on PATH. Install with `curl -fsSL https://bun.sh/install | bash`, ' + - plugins/hermitd/scripts/render-docker-templates.ts, line 80
'RUN apt-get update && apt-get install -y --no-install-recommends \\', - plugins/hermitd/scripts/render-docker-templates.ts, line 89
'RUN apt-get update && apt-get install -y --no-install-recommends \\', - plugins/hermitd/scripts/render-docker-templates.ts, line 92
` npm install -g --allow-scripts=agent-browser agent-browser@${BROWSER_PINS.agent.version} && \\`, - plugins/hermitd/scripts/render-docker-templates.ts, line 165
'# --- transcription ---\nARG HERMIT_TRANSCRIPTION=1\nRUN if [ "$HERMIT_TRANSCRIPTION" = 1 ]; then apt-get update && apt-get install -y --no-install-recommends
Can call paid AI services billed to you
The author does not mention this.
Found in 3 places.
Reads your saved credentials, such as SSH keys or .env files
This is disclosed by the author in the skill's SKILL.md or README.
Found in 3 places.
Changes files outside its own folder
This is disclosed by the author in the skill's SKILL.md or README.
Found in 4 places.
Show 1 more
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'docker-setup' ] || [ -L ~/.agents/skills/'docker-setup' ]; then echo 'A skill folder named docker-setup already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/gtapps/hermitd' "$d" && git -C "$d" checkout --quiet 'c2d971ab801daa0725f1554f92e405e62f76a3e8' -- 'plugins/hermitd/skills/docker-setup' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/hermitd/skills/docker-setup' ~/.agents/skills/'docker-setup' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'docker-setup' ~/.claude/skills/'docker-setup' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for gtapps/hermitd shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/gtapps/hermitd/)
Score history
| Date | Version | Score |
|---|
| 2026-11-13 | c2d971a | 54 |
| 2026-11-09 | e69a48c | 54 |
| 2026-11-07 | 84942b7 | 54 |