Plugins from the claude-devcontainer project
npx claudepluginhub zookanalytics/claude-devcontainerGit workflow skills with enforcement hooks for commits, PRs, and code review
BMAD workflow orchestration for AI-driven development
Multi-instance management with session purpose tracking
Claude Code marketplace entries for the plugin-safe Antigravity Awesome Skills library and its compatible editorial bundles.
Production-ready workflow orchestration with 79 focused plugins, 184 specialized agents, and 150 skills - optimized for granular installation and minimal token usage
Directory of popular Claude Code extensions including development tools, productivity plugins, and MCP integrations
A secure, AI-agent-ready development container base image for Claude Code and Gemini CLI.
Run this in your project root to initialize:
curl -fsSL https://raw.githubusercontent.com/zookanalytics/claude-devcontainer/main/scripts/init-project.sh | bash
This creates:
.devcontainer/devcontainer.json - configured for the base image.devcontainer/allowed-domains.txt - template for project-specific domains.devcontainer/post-create-project.sh - template for project setupThen open in VS Code and "Reopen in Container".
Alternatively, add to your project's .devcontainer/devcontainer.json:
{
"name": "${localEnv:PROJECT_NAME}-${localWorkspaceFolderBasename}",
"image": "ghcr.io/zookanalytics/claude-devcontainer:latest",
"runArgs": [
"--cap-add=NET_ADMIN",
"--cap-add=NET_RAW",
"--cap-add=SYSLOG"
],
"remoteUser": "node",
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=delegated",
"workspaceFolder": "/workspace",
"mounts": [
"source=${localEnv:PROJECT_NAME}-node-modules-${localWorkspaceFolderBasename},target=/workspace/node_modules,type=volume",
"source=${localEnv:PROJECT_NAME}-claude-config,target=/home/node/.claude,type=volume",
"source=${localEnv:PROJECT_NAME}-gemini-config,target=/home/node/.gemini,type=volume",
"source=pnpm-store,target=/workspace/.pnpm-store,type=volume"
],
"postCreateCommand": "/usr/local/bin/post-create.sh"
}
The base image includes common domains (npm, GitHub, Anthropic, Google, etc.). Add project-specific domains in .devcontainer/allowed-domains.txt:
# Project-specific domains
api.your-service.com
your-backend.example.com
Create .devcontainer/post-create-project.sh for project-specific initialization:
#!/bin/bash
set -e
# Install project dependencies
pnpm install
# Install Playwright browsers
pnpm exec playwright install
# Any other project-specific setup
echo "Project setup complete!"
The base post-create.sh will automatically call this script if it exists.
Both Claude Code and Gemini CLI are configured with security hooks that prevent:
--no-verify to bypass pre-commit hooks--admin to bypass GitHub branch protectionHooks are installed at:
/etc/claude-code/hooks/ - Claude Code hooks/etc/gemini-code/hooks/ - Gemini CLI hooks (symlinks to Claude hooks)The base image includes Gemini CLI and security hooks. For project-level Gemini config, create .gemini/settings.json:
{
"tools": {
"enableHooks": true
},
"hooks": {
"BeforeTool": [
{
"matcher": "run_shell_command",
"hooks": [
{
"name": "prevent-main-push",
"type": "command",
"command": "/etc/gemini-code/hooks/prevent-main-push.sh",
"timeout": 10000
}
]
}
]
}
}
See /etc/gemini-code/settings.json for the full template.
See the examples/ directory for:
devcontainer.json - Full consumer configuration templateallowed-domains.txt - Example project-specific domain allowlistMIT