← All skills
docker-customize
47 / 100 · High risk
Only if you trust the author. 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
Route a request to install a tool, binary, package, env var, persistent directory, side service, or personal/third-party skill in the hermit Docker container to the first channel that can carry it. Apt packages go in the Dockerfile operator block; boot-time shell work goes in docker-entrypoint.hermit-local.sh; compose and Dockerfile only when nothing else fits. Activates on messages like "install skills in the container", "install gog in the container", "add an apt package", "download a binary …
Works with any agent that supports SKILL.md skills.
What this skill can do
Downloads and installs other software
The author does not mention this.
Found in 8 places.
Show 5 more
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 56 places.
Show 17 more
- 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 - plugins/hermitd/scripts/evolve-plan.ts, line 431
const proc = Bun.spawnSync(['claude', 'plugin', 'list', '--json'], { - plugins/hermitd/scripts/evolve-plan.ts, line 807
const result = Bun.spawnSync(['git', 'merge-file', '-p', dest, entry.base_path, entry.theirs_path], { stdout: 'pipe', stderr: 'pipe' }); - plugins/hermitd/scripts/hermitd-start.ts, line 17
import { spawnSync } from 'node:child_process'; - plugins/hermitd/scripts/hermitd-start.ts, line 616
const result = spawnSync('claude', ['plugin', 'marketplace', 'list', '--json'], { - plugins/hermitd/scripts/hermitd-start.ts, line 1097
const r = spawnSync('bun', [script, target, op], { stdio: 'pipe', encoding: 'utf-8' }); - plugins/hermitd/scripts/hermitd-start.ts, line 1135
const r = spawnSync('bun', [script, '.claude/settings.local.json', 'voice-render'], { stdio: 'pipe', encoding: 'utf-8' }); - plugins/hermitd/scripts/hermitd-start.ts, line 1317
const res = spawnSync(cmd[0], cmd.slice(1), { stdio: 'inherit' }); - plugins/hermitd/scripts/hermitd-start.ts, line 1360
const r = spawnSync( - plugins/hermitd/scripts/hermitd-start.ts, line 1715
const result = spawnSync('tmux', ['new-session', '-d', '-s', sessionName, shellCmd], { - plugins/hermitd/scripts/lib/backup.ts, line 11
import { spawnSync } from 'node:child_process'; - plugins/hermitd/scripts/lib/backup.ts, line 187
const res = spawnSync('git', ['-C', repoDir, '-c', `safe.directory=${repoDir}`, ...args], { - plugins/hermitd/scripts/lib/browser-runtime.ts, line 123
const result = Bun.spawnSync(['ldd', chrome], { timeout: 5000, stdout: 'pipe', stderr: 'pipe' }); - plugins/hermitd/scripts/lib/cc-compat.ts, line 23
import { spawnSync } from 'node:child_process';
and 36 more places
Sends data to these websites: bun.sh, storage.googleapis.com
The author does not mention this.
Found in 8 places.
Show 5 more
- 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 && \\`,
Reads your saved credentials, such as SSH keys or .env files
The author does not mention this.
Found in 1 place.
Changes files outside its own folder
The author does not mention this.
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-customize' ] || [ -L ~/.agents/skills/'docker-customize' ]; then echo 'A skill folder named docker-customize 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-customize' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/hermitd/skills/docker-customize' ~/.agents/skills/'docker-customize' && 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-customize' ~/.claude/skills/'docker-customize' (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 | 47 |
| 2026-11-09 | e69a48c | 47 |
| 2026-11-07 | 84942b7 | 47 |