🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman
CLI sandbox for agent tools and credentials
nono runs an agent in a scoped sandbox and can give each delegated tool its own separate policy. That lets you control filesystem access, network access, and credentials from a profile instead of from the prompt. The repo also includes profiles, docs, bindings, and scripts for testing and packaging.
Builders who run terminal agents and want their tools and credentials kept inside separate sandboxes.
You can let agents work on real projects without giving every command blanket access to your files, secrets, or network.
What it does
Least-privilege agent sandbox
Runs agents with only the filesystem, network, and credentials listed in the profile.
Separate sandboxes for delegated tools
Launches tools like `git`, `gh`, `curl`, and `kubectl` under their own policies instead of inheriting the agent’s access.
Credential proxying and endpoint policy
Can inject credentials through a proxy and restrict which API methods and paths those credentials can use.
Profile-based command rules
Defines allowed commands, arguments, files, and chained tool policies in composable profile JSON.
Cross-platform support
Supports macOS, Linux, and Windows through WSL2.
Bindings and packaging
Provides FFI bindings plus packaging for Rust, Python, TypeScript, and Go ecosystems.
How to get it
- 1Run
curl -fsSL https://nono.sh/install.sh | sh
- 2Run
brew install nono
- 3The project provides a Nix flake that builds from source (first run compiles the crate…
# Run without installing nix run github:nolabs-ai/nono # Install into your profile nix profile add github:nolabs-ai/nono # Pin to the latest release nix run "github:nolabs-ai/nono?ref=$(curl -fsSL https://api.github.com/repos/nolabs-ai/nono/releases/latest | jq -r .tag_name)"
- 4Search for an agent in the registry, then run it
$ nono search opencode nolabs-ai/opencode - Official Opencode Plugin $ nono run --profile nolabs-ai/opencode -- opencode
README
Built by the team that brought you
Sigstore
The standard for secure software attestation, used by PyPI, npm, brew, and Maven Central
[!NOTE] In the lead-up to a 1.0 release, APIs are stabilizing. API changes may still occur where necessary, but will be kept to a minimum.
[!IMPORTANT] Organization migration: The official nono registry namespace has moved from
always-furthertonolabs-ai. Update any references in your scripts, profiles, and CI. If you already have a pack installed under the old namespace, remove it first before pulling from the new one:nono remove always-further/claude nono pull nolabs-ai/claudeThe old namespace will be retired — migrate now.
Run AI agents in a zero latency sandbox in seconds and with zero setup — Claude Code, Codex, Pi, CoPilot, Hermes, OpenCode, OpenClaw and more — nono gets you up and running within seconds, with no daemon, no container, no VM, and no disk space usage. Out of the box, nono enforces a least-privilege sandbox and supports macOS, Linux, and Windows (WSL2).
From here fork the config, tweak it, theme it, make it your own, and share it with your team or the community via the nono registry.
Want to operationalise and run at scale or within your team? Engineers at some of the largest tech companies in the world use nono as part of their workflows or to run AI agents in production.
“Datadog engineers want their agents to move fast, and we want our credentials and production systems kept safe while they do. nono is the only sandbox that gives us both fine-grained, per-command policies and sophisticated credential management that fits existing, complex real-world toolchains.” James Carnegie -- Staff Security Engineer, Datadog
"Security is embedded in everything we build at Okta. nono gives us the confidence to innovate with AI agents by isolating their execution in a highly secure, policy-controlled sandbox. It ensures our credentials remain locked down and protected, without sacrificing developer velocity" Leonardo Zanivan, Principal Engineer, Okta
Copied by many — nono pioneered the zero-latency, zero-setup agent sandbox, and continues to innovate and lead the way in agent sandboxing.
Quickstart
curl
curl -fsSL https://nono.sh/install.sh | sh
macOS / Linux (Homebrew)
brew install nono
Nix
The project provides a Nix flake that builds from source (first run compiles the crate and its dependencies):
# Run without installing
nix run github:nolabs-ai/nono
# Install into your profile
nix profile add github:nolabs-ai/nono
# Pin to the latest release
nix run "github:nolabs-ai/nono?ref=$(curl -fsSL https://api.github.com/repos/nolabs-ai/nono/releases/latest | jq -r .tag_name)"
Other platforms — Debian/Ubuntu, Fedora, Arch, RHEL, openSUSE, WSL2: see install instructions.
Run it!
Search for an agent in the registry, then run it:
$ nono search opencode
nolabs-ai/opencode - Official Opencode Plugin
$ nono run --profile nolabs-ai/opencode -- opencode
That's it. opencode now runs with read/write access to the current directory and nothing else — your SSH keys, your cloud credentials, the rest of your disk are invisible to it.
Profiles for all the popular agents live at registry.nono.sh, secured and ready to pull. Each one bundles the right filesystem scope, network allowlist, hooks, skills and more.
Make it your own!
Outgrow the defaults? Scaffold a profile and tweak it — same command you already know:
nono profile init opencode --extends nolabs-ai/opencode
nono run --profile opencode -- opencode
nono profile init exports an extended and editable profile file for your agent, that inherits from the specified base profile. That profile is composable JSON, so you can review the exact filesystem, network, credentials, and tool rules before sharing it with a team or publishing it for the community.
Are you an agent developer and want to publish your own agent package? We would love to have you and promote your work! See the docs.
Sandbox the tools agents call
nono does not stop at "put the agent in a sandbox". Agents delegate real work to tools: git, gh, curl, kubectl, package managers, build scripts, MCP clients / servers, and whatever else is on PATH. Those tools are often where secrets, network access, and side effects show up. Most sandboxes just give the agent a blanket policy where a secret is universally available to the entire agent and every tool, but nono is different:
nono can put delegated tools in their own isolated child sandboxes, outside the agent's control. The agent gets its session sandbox; when it calls a controlled tool, nono's broker launches that tool with a separate policy, separate filesystem grants, separate network rules, and separate credentials. The tool does not inherit the agent's broad --allow grants, CWD access, raw credential paths, or network access unless its own policy says so.
That means a profile can express rules like:
- the agent may call
git, butgitonly gets the repo, trusted Git config files, and the Git object store - the agent may call
gh, butghonly receives a GitHub token through nono's credential proxy - that token may only be used against selected GitHub API methods and paths through L7 filtering
gitmay callsshunder a chained policy, while directsshfrom the agent stays denied
The policy lives in the profile, not in the prompt. The agent can ask for a tool, but it cannot widen that tool's sandbox, mint new keys, or bypass endpoint policy from inside the session.
{
"command_policies": {
"credentials": {
"github-api": {
"type": "proxy",
"upstream": "https://api.github.com",
"credential_key": "keyring://gh:github.com/example?decode=go-keyring",
"env_var": "GH_TOKEN",
"inject_header": "Authorization",
"credential_format": "Bearer {}"
}
},
"commands": {
"gh": {
"from": {
"session": {
"sandbox": {
"fs_read": ["."],
"credentials": [
{
"name": "github-api",
"endpoint_policy": {
"default": "deny",
"allow": [
{ "method": "GET", "path": "/repos/nolabs-ai/nono/issues/**" }
]
}
}
]
},
"invocation_policy": {
"default": "deny",
"allow": [
{ "argv": { "prefix": ["issue", "list"] } },
{ "argv": { "prefix": ["issue", "view"] } }
]
}
}
}
}
}
}
}
Read more in Sandboxed Tool Execution.
Ready to go deep?
Head over to the docs and discover nono's rich composable policy system, credentials injection, L7 filtering, supply chain security, rollback, multiplexing, audit and more.
Library support
nono provides FFI bindings for Rust, Python, TypeScript, and Go.
Also available as Python, TypeScript, and Go bindings.
Contributing
We encourage using AI tools to contribute. However, you must understand and carefully review any AI-generated code before submitting. Security is paramount. If you don't understand how a change works, ask in Discord first.
Security
If you discover a security vulnerability, please do not open a public issue. Follow the process in our Security Policy.
License
Apache-2.0
Files in the repo
- .cargo
- .github
- assets
- bindings
- crates
- docker
- docs
- neps
- packaging
- scripts
- testdata
- tests
- tool-sandbox-examples
- tools
- .dockerignore
- .gitattributes
- .gitignore
- AGENTS.md
- Cargo.lock
- Cargo.toml
- CHANGELOG.md
- CLAUDE.md
- cliff.toml
- clippy.toml
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- CONTRIBUTORS.md
- Cross.toml
- flake.lock
- flake.nix
- GOVERNANCE.md
- LICENSE
- MAINTAINERS.md
- Makefile
- NOGENT.md
- README.md
- SECURITY.md
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More tools
The best-benchmarked open-source AI memory system. And it's free.
Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.