Trail of Bits Claude Code Config provides opinionated defaults, docs, and workflows for Claude Code, covering sandboxing, permissions, hooks, skills, MCP servers, and usage patterns. It includes setup steps and extensive configuration references in the README.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
Trail of Bits Claude Code Config provides opinionated defaults, documentation, and workflows for Claude Code at Trail of Bits. It covers sandboxing, permissions, hooks, skills, MCP servers, and usage patterns. First-time setup includes cloning the repo, then running claude.
How it works
The project combines configuration templates (settings.json and CLAUDE.md), shell hooks, and sample usage patterns to govern Claude Code behavior, including sandboxing, permissions, and hook-driven prompts. It documents multiple components such as sandboxing, devcontainer, and remote droplets, plus a statusline script and global CLAUDE.md.
Getting started
git clone https://github.com/trailofbits/claude-code-config.git
cd claude-code-config
claude
Then within the session, run /trailofbits:config. It walks you through installing each component, detects what you already have, and self-installs the command so future runs work from any directory. Run /trailofbits:config again after updates.
Prerequisites
Terminal: Ghostty
brew install --cask ghostty
Tools
brew install jq ripgrep fd ast-grep shellcheck shfmt \
actionlint zizmor macos-trash node@22 pnpm uv
Python tools (via uv):
uv tool install ruff
uv tool install ty
uv tool install pip-audit
Rust toolchain:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo install prek worktrunk cargo-deny cargo-careful
Node tools:
pm install -g oxlint agent-browser
LM Studio (for local models):
curl -fsSL https://lmstudio.ai/install.sh | bash
Shell Setup
alias claude-yolo="claude --dangerously-skip-permissions"
claude-local() {
ANTHROPIC_BASE_URL=http://localhost:1234 \
ANTHROPIC_AUTH_TOKEN=lmstudio \
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
claude --model qwen/qwen3-coder-next "$@"
}
Settings
{ JSON settings example with env, enableAllProjectMcpServers, alwaysThinkingEnabled, permissions, cleanupPeriodDays, hooks, statusLine }
Copy settings.json to ~/.claude/settings.json and customize.
Global CLAUDE.md
cp claude-md-template.md ~/.claude/CLAUDE.md
Review and customize it for your preferences.
Configuration
Sandboxing
/sandbox
Hardening reads and deny rules are described, including supported paths and examples. See sandboxing docs for full reference.
Devcontainer
Link to trailofbits/claude-code-devcontainer for containerized usage.
Remote droplets
Link to trailofbits/dropkit for cloud-based isolation.
Hooks
Hooks described as PreToolUse, PostToolUse, and Stop, with examples and a note that they are not security boundaries.
Hook events
Table of events such as PreToolUse, PostToolUse, UserPromptSubmit, Stop, etc.
Exit codes
0 Action allowed, 1 Error non-blocking, 2 Blocking error
Examples
Blocking patterns in PreToolUse, audit logging, Bash command logging, and notifications are demonstrated in snippets and references to hook scripts.
Enforce package manager
References to enforcement script for package manager usage.






