Skip to content
Agentmart
Submit a tool

setup-claude-devcontainer

Install Claude Code into an existing shared devcontainer generated by the setup-devcontainer skill — its own install step, optional YOLO alias, and optional…

Skill by ken-guru

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ken-guru-setup-claude-devcontainer

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Install Claude Code into an existing shared devcontainer generated by the setup-devcontainer skill — its own install step, optional YOLO alias, and optional automatic skill sync, added idempotently without touching anything else in the container. Use when the user wants to add Claude Code to a devcontainer, or re-run this after the container definition already exists.

Use cases: agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Shell scripts

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/setup-claude-devcontainer

What's inside

Skill name
setup-claude-devcontainer
Description
Install Claude Code into an existing shared devcontainer generated by the setup-devcontainer skill — its own install step, optional YOLO alias, and optional automatic skill sync, added idempotently without touching anything else in the container. Use when the user wants to add Claude Code to a devcontainer, or re-run this after the container definition already exists.
License
MIT
Instructions
123 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Agent Skills spec issues

  • files: referenced but missing: scripts/patch-if-absent.sh

Files (6)

  • SKILL.md
  • install-block.sh · templates/
  • network-manifest-entries.json · templates/
  • post-start-block.sh · templates/
  • readme-bullet.md · templates/
  • yolo-alias-block.sh · templates/

SKILL.md (first lines)

# Setup Claude Code Devcontainer

Adds Claude Code to a devcontainer already generated by the
[setup-devcontainer](../setup-devcontainer/SKILL.md) skill. This skill never
touches `devcontainer.json` or the `Dockerfile` — it appends its own
marker-keyed content to `post-create.sh`, `post-start.sh` (if skill sync is
opted into), and `README.md`, and idempotently ensures its own Network
Manifest entry exists in `.devcontainer/network-manifest.json`.

## 0. Security & Trust

This skill's generated automation touches three areas an external audit may flag. Each is
opt-in, scoped to this container, and exists for a specific reason — none of it runs on the
host, only inside the generated devcontainer.

- **Installer Provenance**: installs Claude Code via Anthropic's own official installer
  (`https://claude.ai/install.sh`, documented at code.claude.com/docs/en/quickstart). Runs
  once, at container creation (`postCreateCommand`), not on every start — and only if
  `~/.local/bin/claude` doesn't already exist.
- **Agent Authority**: the optional `claude-yolo` alias uses `--permission-mode auto
  --worktree --remote-control`, deliberately not `--dangerously-skip-permissions` — that flag
  triggers Claude Code's own bwrap sandbox, whose mount-namespace view of the repo conflicts
  with git's worktree identity check and breaks worktree creation. Off by default; only added
  if accepted during setup.
- **Skill Source Trust**: if skill sync is accepted, `~/.claude/skills` is wiped and
  repopulated from the source(s) you name, on every container start. The wipe is scoped to
  that one fixed directory inside this container — it can't reach anything else. The real
  trust decision is the source itself: naming one means trusting its skills unattended, with
  no per-skill review step, every time the container starts. Off by default.

See [ADR-0007](../setup-devcontainer/docs/adr/0007-agent-trust-hub-audit-response.md) for the
full reasoning and the alternatives rejected.

## 1. Detect the base devcontainer

```bash
test -f .devcontainer/devcontainer.json && test -f .devcontainer/post-create.sh && echo ok
```

If either file is missing, **refuse** — tell the user to run
`setup-devcontainer` first, and stop. Do not generate or patch anything.

## 2. Ask this tool's options

- **YOLO alias**: add `claude-yolo` for fast, unattended iteration? Uses
  classifier-based auto permission mode, not `--dangerously-skip-permissions`
  (which breaks `--worktree` — see the template's own comment for why).
- **Automatic skill sync**: sync AI-agent skills into `~/.claude/skills`
  automatically on every container start? Two ready-made suites are
  available — `mattpocock/skills` and `ken-guru/skills` — plus any
  individually named skill in `owner/repo/skill-name` form. Validate each
  individually-named pick live before rendering anything:
  `npx -y skills add <source> --list`; re-ask on a typo or unresolved source
  rather than rendering a broken command. **Only naming a source you trust
  matters here** — this installs and re-syncs that source's skills
  unattended, with no per-skill review step, and an installed skill's
  instructions can influence what the agent does inside the container.

## 3. Patch `post-create.sh`

Append [templates/install-block.sh](templates/install-block.sh) verbatim,
keyed on its own first line as the idempotency marker:

```bash
scripts/patch-if-absent.sh append .devcontainer/post-create.sh "# --- Claude Code ---" templates/install-block.sh
```

(`scripts/patch-if-absent.sh` is the base skill's shared, base-owned
primitive — reference it from `setup-devcontainer/scripts/`, don't copy it.)

If YOLO alias was accepted, also append
[templates/yolo-alias-block.sh](templates/yolo-alias-block.sh), under its own
independent marker so declining now and adding it later never re-triggers
the install:

```bash
scripts/patch-if-absent.sh append .devcontainer/post-create.sh "# --- Claude Code yolo-alias ---" templates/yolo-alias-block.sh
```

## 4. Patch the Network Manifest — unconditional, every run

Ensure Claude Code's own `.claude.networkAllowlist` entry exists in
`.devcontainer/network-manifest.json`, regardless of any answer above — this
is what lets an opted-in network firewall (a separate, base-owned layer)
allow the hosts Claude Code itself needs:

```bash
scripts/patch-json-array-if-absent.sh .devcontainer/network-manifest.json .claude.networkAllowlist templates/network-manifest-entries.json
```

## 5. Patch `post-start.sh` (only if skill sync was accepted)

Render [templates/post-start-block.sh](templates/post-start-block.sh) with
`{{SKILLS_SOURCES_COMMANDS}}` substituted to one `npx -y skills add <source>
--skill '*' -a claude-code -y --copy -g` line per whole-suite source (or
`--skill '<name>'` per individual pick), then append it:

```bash
scripts/patch-if-absent.sh append .devcontainer/post-start.sh "# --- Claude Code skill-sync ---" <rendered-block>
```

## 6. Patch `README.md`

Append [templates/readme-bullet.md](templates/readme-bullet.md) to the end of
the file — the base skill positions `## Installed CLI Tools` as `README.md`'s
last section, so a plain append always lands in the right place:

```bash
scripts/patch-if-absent.sh append .devcontainer/README.md "- Claude Code" templates/readme-bullet.md
```

## 7. Verify

Re-run every `patch-if-absent.sh`/`patch-json-array-if-absent.sh` command
from steps 3–6 a second time — each should produce zero diff. No dedicated
verify script exists for this skill; this re-run *is* the verification.

## 8. Report next steps

From ken-guru/skills, MIT.

More from ken-guru/skills

Signals

Stars
1
Forks
1
Open issues
6
Last commit (this folder)
Sep 18, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ken-guru

Cite this page

setup-claude-devcontainer skill. Agent Mart. https://agentmart.dev/skills/ken-guru-setup-claude-devcontainer (last updated 2026-10-24)