agentic-actions-audito…
Audits GitHub Actions workflows for security vulnerabilities in AI agent integrations including Claude Code Action, Gemini CLI,…
Creates devcontainers with Claude Code, language-specific tooling (Python/Node/Rust/Go), and persistent volumes. Use when adding devcontainer support to a project, setting up isolated development environments, or configuring sandboxed Claude Code workspaces.
Claude Code
$ npx -y skills add trailofbits/skills --skill devcontainer-setup --agent claude-code
Codex
$ npx skills add trailofbits/skills --skill devcontainer-setup -a codex -y
Cursor
$ npx skills add trailofbits/skills --skill devcontainer-setup -a cursor -y
Gemini CLI
$ npx skills add trailofbits/skills --skill devcontainer-setup -a gemini-cli -y
GitHub Copilot
$ npx skills add trailofbits/skills --skill devcontainer-setup -a github-copilot -y
OpenCode
$ npx skills add trailofbits/skills --skill devcontainer-setup -a opencode -y
Windsurf
$ npx skills add trailofbits/skills --skill devcontainer-setup -a windsurf -y
name: devcontainer-setup description: Creates devcontainers with Claude Code, language-specific tooling (Python/Node/Rust/Go), and persistent volumes. Use when adding devcontainer support to a project, setting up isolated development environments, or configuring sandboxed Claude Code workspaces.
Creates a pre-configured devcontainer with Claude Code and language-specific tooling.
flowchart TB
start([User requests devcontainer])
recon[1. Project Reconnaissance]
detect[2. Detect Languages]
generate[3. Generate Configuration]
write[4. Write files to .devcontainer/]
done([Done])
start --> recon
recon --> detect
detect --> generate
generate --> write
write --> doneCheck in order (use first match):
1. `package.json` → `name` field 2. `pyproject.toml` → `project.name` 3. `Cargo.toml` → `package.name` 4. `go.mod` → module path (last segment after `/`) 5. Directory name as fallback
Convert to slug: lowercase, replace spaces/underscores with hyphens.
| Language | Detection Files | |----------|-----------------| | Python | `pyproject.toml`, `*.py` | | Node/TypeScript | `package.json`, `tsconfig.json` | | Rust | `Cargo.toml` | | Go | `go.mod`, `go.sum` |
If multiple languages are detected, configure all of them in the following priority order:
1. **Python** - Primary language, uses Dockerfile for uv + Python installation 2. **Node/TypeScript** - Uses devcontainer feature 3. **Rust** - Uses devcontainer feature 4. **Go** - Uses devcontainer feature
For multi-language `postCreateCommand`, chain all setup commands:
uv run /opt/post_install.py && uv sync && npm ci
Extensions and settings from all detected languages should be merged into the configuration.
Start with base templates from `resources/` directory. Substitute:
Then apply language-specific modifications below.
The base template includes:
---
**Detection:** `pyproject.toml`, `requirements.txt`, `setup.py`, or `*.py` files
**Dockerfile additions:**
The base Dockerfile already includes Python 3.13 via uv. If a different version is required (detected from `pyproject.toml`), modify the Python installation:
# Install Python via uv (fast binary download, not source compilation) RUN uv python install <version> --default
**devcontainer.json extensions:**
Add to `customizations.vscode.extensions`:
"ms-python.python", "ms-python.vscode-pylance", "charliermarsh.ruff"
Add to `customizations.vscode.settings`:
"python.defaultInterpreterPath": ".venv/bin/python",
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
}**postCreateCommand:** If `pyproject.toml` exists, chain commands:
rm -rf .venv && uv sync && uv run /opt/post_install.py
---
**Detection:** `package.json` or `tsconfig.json`
**No Dockerfile additions needed:** The base template includes Node 22 via fnm (Fast Node Manager).
**devcontainer.json extensions:**
Add to `customizations.vscode.extensions`:
"dbaeumer.vscode-eslint", "esbenp.prettier-vscode"
Add to `customizations.vscode.settings`:
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}**postCreateCommand:** Detect package manager from lockfile and chain with base command:
---
**Detection:** `Cargo.toml`
**Features to add:**
"ghcr.io/devcontainers/features/rust:1": {}**devcontainer.json extensions:**
Add to `customizations.vscode.extensions`:
"rust-lang.rust-analyzer", "tamasfe.even-better-toml"
Add to `customizations.vscode.settings`:
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer"
}**postCreateCommand:** If `Cargo.lock` exists, use locked builds:
uv run /opt/post_install.py && cargo build --locked
If no lockfile, use standard build:
uv run /opt/post_install.py && cargo build
---
**Detection:** `go.mod`
**Features to add:**
"ghcr.io/devcontainers/features/go:1": {
"version": "latest"
}**devcontainer.json extensions:**
Add to `customizati
Trail of Bits skills and plugins for AI-assisted security analysis, testing, and development. Install this marketplace in Claude Code or Codex, or import it into your ChatGPT workspace marketplace.
Audits GitHub Actions workflows for security vulnerabilities in AI agent integrations including Claude Code Action, Gemini CLI,…
Understand a codebase before looking for bugs in it - what each function assumes, what it guarantees, and what it depends on…
Scans Algorand smart contracts for 11 common vulnerabilities including rekeying attacks, unchecked transaction fees, missing…
Prepares codebases for security review using Trail of Bits' checklist. Helps set review goals, runs static analysis tools,…
Scans Cairo/StarkNet smart contracts for 6 critical vulnerabilities including felt252 arithmetic overflow, L1-L2 messaging…
Systematic code maturity assessment using Trail of Bits' 9-category framework. Analyzes codebase for arithmetic safety, auditing…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…