setup

setup is a skill for Claude Code, Codex from stefanoginella/aicontainer. It costs 29 tokens per session (10,325 once invoked), scanned C, original, MIT.

A setup skill for aicontainer, a sandboxed development container where coding agents can run with reduced permission prompts.

In plain words
What is it for?
Use it to configure a project-specific container, including language tools, writable environments, database access, and the agent’s personal settings.
Why use it?
It keeps an agent’s work separated from sensitive files such as home-directory data, environment secrets, SSH keys, and GitHub credentials, while configuring the container for the project’s tools and services.

Skill for Claude CodeCodex

Written for Claude Code and Codex: disable-model-invocation in frontmatter, but also reads ~/.codex or $CODEX_HOME. Also seen: reads .claude/ paths; names the AskUserQuestion tool; mentions Claude Code.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /home/vscode/.cache/….

Part of the aicontainer plugin — 1 skill shipped together

Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add stefanoginella/aicontainer
Claude Code
/plugin install aicontainer

Made for: Claude Code, Codex.

Or install aicontainer, the plugin that ships this one along with the rest of its 1 skill.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for setup

README.md
[![agentmods](https://agentmods.dev/badge/skills/stefanoginella/aicontainer/setup.svg)](https://agentmods.dev/skills/stefanoginella/aicontainer/setup)
Your own site
<a href="https://agentmods.dev/skills/stefanoginella/aicontainer/setup"><img src="https://agentmods.dev/badge/skills/stefanoginella/aicontainer/setup.svg" alt="Measured on agentmods" height="20"></a>
Per session 29 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 10,325 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 3 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00029 $0.10325
Opus 5 $0.00015 $0.05163
Sonnet 5 $0.00006 $0.02065
Haiku 4.5 $0.00003 $0.01033

Measured 6d ago against content hash 005efe6ccce0, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade C, and why

setup scanned grade C with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

boot verb.** Image builds run as root, so aic treats every project Dockerfile

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

| `~/.claude/settings.json` | model, effort, editor mode, theme, plugins/marketplaces, MCP servers, verbosity… |

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- Host service reachable: `aic run curl -sS host.docker.internal:5432` (or
tools/claude-plugin/skills/setup/SKILL.md · 645 lines

How it starts

The opening of the file, as written. The whole thing — 645 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Set up aicontainer in a project

Your job is to take a project from "no sandbox" to "the AI agent runs behind the aicontainer devcontainer boundary, configured for this project's stack." You detect the stack, sanity-check that a Linux devcontainer is even the right tool, propose a concrete customization plan, and — once the user approves — apply it.

aicontainer's whole point is letting Claude Code / Codex / OpenCode run with permissions skipped without handing a prompt-injected dependency your real $HOME, .env, SSH keys, or gh token. Good setup is what makes that sandbox actually usable for the project — a Python repo needs a writable .venv, an agent that uses go-to-definition needs a language server on PATH, a Postgres app needs the DB reachable. That per-project wiring is the work here.

The other half is the person: their tool settings, prompt, aliases, and statusline. Some of that is seeded automatically, some is deliberately dropped, and some needs an explicit opt-in they'd never guess at. Step 6 walks them through it — a sandbox the user can't stand working in doesn't get used.

Golden rules (read first — they shape everything below)

These come straight from how aicontainer is designed; violating them creates work that silently gets wiped or breaks aic sync.

  • Run aic from the host, never from inside the container. Setup happens before (or outside) the sandbox. If you detect you're inside an aicontainer already (see Step 0), stop and tell the user to run this from a host terminal — .devcontainer/ is mounted read-only in the sandbox by design.
  • Never hand-edit .devcontainer/devcontainer.json or .devcontainer/docker-compose.yml. They are template-managed: aic init writes them and aic sync overwrites them (only the AIC_TOOLS / AIC_SHELL choices survive). All per-project customization goes in the project-owned files instead (listed in Step 5). Edits to the managed files get reset on the next sync.
  • All customization lives in project-owned files that aic sync never touches: Dockerfile.project, docker-compose.override.yml, chown-paths, post-create.project.sh, vscode-extensions, vscode-settings.json, firewall-allowlist, shell-rc.zsh, p10k.zsh, statusline.{sh,mjs,js,py}. These are opt-in by presence.
  • aic rebuild is the verb that builds — aic up is not. aic up runs a plain devcontainer up, and the managed pull-mode Compose sets pull_policy: missing: when the resolved image tag is already cached, Compose reuses it and never runs your Dockerfile.project. The stack comes up looking healthy on the plain base image, with every baked tool missing and every named volume still root:root. aic rebuild adds --remove-existing-container --build-no-cache, which is what actually builds. So: if the plan writes a Dockerfile.project, the first boot is aic rebuild, and so is every boot after you edit it.
  • Host-boundary trust is the user's to grant — you can't, and shouldn't. A Dockerfile.project (or an added mount, a protected env key, Docker socket exposure) makes aic validate / up / rebuild fail closed until the human runs aic trust, which requires a TTY and so cannot run from your Bash tool. Hand it to them; never route around it with --allow-unsafe. Trust binds to an exact config hash, so any later edit to docker-compose.override.yml or Dockerfile.project revokes it — settle the config completely before you ask (Step 8).
  • Show the plan, then apply. Detect and confirm first, present the full plan, get a yes, then write files and run aic init / aic sync. Confirm before the first boot — it pulls or builds a multi-gigabyte image and can take minutes — but once the user says go, drive it yourself: verify the container actually boots and fix what's broken (Step 9). Don't just hand back a command and hope.

Read the full file on GitHub · 645 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 645 lines · 29 tokens per session scan C 005efe6ccce0

Subscribe to this mod's changes

setup is a skill published in the GitHub repository stefanoginella/aicontainer (20 stars, last pushed today), licensed MIT. It adds 29 tokens to every session and 10,325 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it C with 3 findings (asks for root, reads agent configuration directories, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

agentbox-info

Spin up isolated sandboxes ("boxes") for coding agents, run them in parallel, queue background runs with -i, and push commits safely through the host relay. Use when the user wants to run Claude Code / Codex / OpenCode in a sandbox, start more boxes, attach to a running box, or otherwise operate the agentbox CLI on…

madarco/agentbox · 79 tokens

agentbox-setup

Generate an agentbox.yaml for the current AgentBox workspace. Invoke when the user opens a sandbox without an agentbox.yaml or asks to (re)configure one.

madarco/agentbox · 38 tokens

agentbox

Fork the current agent session into a new VM or local Docker container with all the project files, agent settings and session teleported into.

madarco/agentbox · 30 tokens

docker-sandbox

Create, manage, and execute agent tools (claude, codex) inside Docker sandboxes for isolated code execution. Use when running agent loops, spawning tool subprocesses, or any task requiring process isolation. Triggers on "sandbox", "isolated execution", "docker sandbox", "safe agent execution", or when working on agent…

joelhooks/joelclaw · 74 tokens

04-security

本 SKILL 提供 Dify 平台的安全实践和部署运维完整指南,帮助开发者和运维人员构建安全、稳定、高性能的生产环境。.

SystemTce/dify-skills · 36 tokens

changelog-entry

Add a new entry to CHANGELOG.yml under the current unreleased version (or create the version block if needed), then regenerate documentation. Use when the user says things like "add a changelog entry", "log this fix in the changelog", or "/changelog-entry".

telepresenceio/telepresence · 60 tokens