Developer Guide
Learn the day-to-day workflow. Read guide →
Before diving deeper into SCC, it’s helpful to understand the key concepts that make it work.
A provider is an AI coding agent that SCC can run inside a governed sandbox. SCC currently supports two providers:
SCC is provider-neutral: the same org config, team plugins, safety policies, and governance apply regardless of which agent you use. Each provider has its own container image, auth flow, settings format, and credential storage — SCC handles the differences through provider-specific adapters.
scc provider show # See current preferencescc provider set codex # Default to Codexscc start --provider claude # Override for one sessionProvider preference resolution:
--provider CLI flag (highest priority)ask, SCC still prompts when multiple providers are viableclaude or codex) applies when ask is not setSCC remembers the last-used provider per workspace, so repeated launches feel natural. If you set scc provider set ask, SCC still prompts when both providers are allowed, but it uses workspace context to start from a sensible default instead of forcing you to choose from scratch every time.
A session is a running agent environment inside a container. Each session:
# Start a new sessionscc start ~/project
# Resume the most recent sessionscc start --resume
# Pick from recent sessions interactivelyscc start --selectThe full operator lifecycle:
scc # Smart start (auto-detect, Quick Resume)scc sessions # List recent sessionsscc list # List running containersscc status # Show current statescc stop # Stop a sandbox (interactive picker)scc stop --all # Stop all sandboxesscc prune # Remove stopped containersWhen you start a session and a container already exists for your workspace and provider:
scc start --fresh to always create a new containerA sandbox is the OCI container that isolates the agent from your host system. The sandbox:
~/.ssh or ~/.awsscc-agent-claude or scc-agent-codex)A team profile defines the configuration for a group of users. Each profile includes:
| Setting | Description |
|---|---|
plugins | Agent plugins enabled for this team |
mcp_servers | MCP servers available to the agent |
network_policy | Network egress policy (open, web-egress-enforced, or locked-down-web) |
session | Timeout settings (auto_resume is advisory in v1) |
Profiles are defined in your organization’s config and can be:
# List available teams/profilesscc team list
# Switch to a different teamscc team switch
# See current teamscc team current
# See team configurationscc team info <team-name>A personal profile captures your own agent preferences for a specific project. It sits between team config and workspace overrides so you can add your own plugins or MCP servers without changing org or repo settings, while still respecting org security blocks.
# Save current workspace settings as a personal profilescc profile save
# Apply personal profile on demandscc profile applyLearn more in Personal Profiles.
A worktree is a git feature that lets you check out multiple branches simultaneously in different directories. SCC uses worktrees to:
# Create a worktree and auto-start an agent sessionscc worktree create ~/project feature-auth
# Create without starting a sessionscc worktree create ~/project feature-auth --no-start
# List all worktreesscc worktree
# Enter a worktree (starts a subshell)scc worktree enter feature-auth
# Switch between worktreesscc worktree switch feature-authSCC uses layered configuration with personal profiles:
Order of precedence:
Organization → Team → Personal Profile → Workspace overrides
SCC includes a built-in safety engine that runs inside every container:
push --force, reset --hard, branch -DThe optional scc-safety-net plugin provides additional coverage via agent-native hooks (currently Claude Code; Codex support planned).
SCC controls what network access the agent has inside the container:
| Policy | Effect |
|---|---|
open | No restriction — unrestricted egress (default) |
web-egress-enforced | Topology-enforced proxy: agent runs on an internal-only network and can only reach the internet through a Squid proxy sidecar with an ACL. Even if the agent ignores proxy env vars, it physically cannot bypass the proxy. |
locked-down-web | --network=none — no external network access at all |
Network policy is configured at the org or team level in the org config JSON. See Security Model for details on how topology enforcement works.
Plugins extend the agent with additional capabilities. SCC manages plugins through:
The most important official plugin is scc-safety-net, which provides agent-native hook-based protection in addition to SCC’s built-in safety engine. Today that plugin is Claude-focused; Codex support is planned, while the built-in engine already protects both providers.
MCP (Model Context Protocol) servers provide the agent with access to external tools and data. Types include:
| Type | Description | Example |
|---|---|---|
| HTTP | Remote API endpoints | context7, shadcn |
| SSE | Server-Sent Events streaming | Real-time data feeds |
| Stdio | Local subprocess servers | Playwright, custom tools |
| Term | Definition |
|---|---|
| Provider | An AI coding agent that SCC can run (Claude Code, Codex) |
| Session | A running agent environment in a container |
| Sandbox | The OCI container providing isolation |
| Profile | Team configuration (plugins, servers, policies) |
| Worktree | Isolated git checkout for parallel development |
| Workspace | The directory mounted into the sandbox |
| Marketplace | Repository of approved plugins |
| Safety Engine | SCC’s built-in fail-closed command interception system |
| Safety Net | Optional plugin for additional agent-native hook protection |
Developer Guide
Learn the day-to-day workflow. Read guide →
Configuration Reference
Dive into config file details. See reference →