Heads up This site is currently under heavy development.
← all tools
◆ AI/LLM Security

nono

v0.74.0 open-source

safe execution paths for agents - zero trust, zero setup, zero latency.

Summary

nono is an open-source, Apache 2.0-licensed sandbox for running AI coding agents — Claude Code, Codex, Copilot, OpenCode and similar tools — with least-privilege isolation and no daemon, container, or VM to set up. It runs as a command-line tool on macOS, Linux, and Windows (WSL2), and is aimed at developers and platform teams who need to let AI agents execute and touch the network without giving them free rein: profiles can restrict egress to specific domains, methods, and paths, intercept and inspect proxied TLS traffic, and control which environment variables or credentials an agent session can see. It's built by the team behind Sigstore, which the README notes as prior work rather than a direct comparison, placing nono in the broader AI-agent security and sandboxing space. Development is active, with 98 contributors, over 1,700 commits in the past year, and a release 21 days ago.

safe execution paths for agents - zero trust, zero setup, zero latency.

What nono answers

Does it slow down or add friction to an agent session that's already running?

traffic goes through a local proxy that intercepts and inspects TLS inline, adding no daemon or background process to manage

What happens when an agent tries to reach a domain or path that isn't allowed?

the request is denied and shown in the output as a suppressed denial, with an interactive picker to allow it afterward instead of hand-editing config

Can it stop an agent from reading credentials it shouldn't have?

environment variables and credentials are opt-in per profile, with a deny list for specific variables and no credential access enabled by default

Will this work in a locked-down CI runner or minimal Linux image?

it drops the daemon-bus dependency Linux builds used to need and ships RPM packages, and it detects CI automatically so it won't hang waiting on keychain prompts or show update nagging

How do I keep the same policy across many machines or repos without copying files?

profiles can extend a shared entry pulled from a registry reference instead of a local copy, so one definition applies everywhere

Can I let an agent call AWS APIs without handing it real credentials?

outbound AWS calls can be authenticated through the built-in proxy, so the agent never holds the actual keys

all 20 features, with the evidence for each →

Features

20 capabilities across 6 areas · 2 backed by code, an API document or a real run

Built from everything we hold on nono — every release we have summarised, its product documentation and how that documentation has changed, its README, its command-line surface and API, and runs we performed ourselves. Dates are when we first saw a capability, not when the vendor introduced it.

Capability area
Sandbox Policy and Enforcement 6 capabilities nono's core function is defining and enforcing declarative sandbox policies that govern what filesystem paths, network destinations, and resources an agent session or delegated tool may access. Profiles compose through inheritance and platform overrides, and violations are surfaced with diagnostic tooling to help practitioners tune policies iteratively.
Sandbox profiles shipped Lets users write declarative profiles that set filesystem, network, resource, and environment rules for any sandboxed session. 9 releases · 2 other sources · first seen Jul 2026

release 9 total

  • Supports glob patterns in filesystem path fields (e.g. fs_read, fs_write) within profiles, enabling wildcard-based filesystem access rules in sandbox policies. v0.73.0 · Aug 2026 · source · release history
  • The external --sandbox-policy mode on Linux no longer disables all nono sandboxing: Landlock still handles filesystem/process policy, and only TCP enforcement is delegated externally. Configurations that relied on external bypassing Landlock will behave differently. v0.72.0 · Aug 2026 · source · release history
  • Adds port range support to sandbox profiles, enabling network rules that span a range of ports rather than individual ports. v0.68.0 · Jul 2026 · source · release history
  • Adds --max-processes flag to cap the number of processes a sandbox may spawn (enforced via cgroup v2 pids.max). v0.68.0 · Jul 2026 · source · release history
  • Adds built-in bun runtime policy preset for sandboxing Bun-based agents. v0.68.0 · Jul 2026 · source · release history
  • Adds platform_overrides field to profiles for per-OS patch sets, letting a single profile express different rules on macOS vs Linux. v0.68.0 · Jul 2026 · source · release history

example

  • Apply different filesystem grants on macOS vs Linux within a single shared profile using platform_overrides. { "platform_overrides": { "macos": { "fs_read": ["/opt/homebrew"] }, "linux": { "fs_read": ["/usr/local"] } } } v0.68.0 · Jul 2026 · source
  • Extend a community registry profile locally so you can add custom rules without forking the upstream profile. nono profile init opencode --extends always-further/opencode v0.67.0 · Jul 2026 · source
Tool sandbox (ETI) shipped Runs delegated tools such as git, gh, and curl in their own child sandboxes with policies independent of the parent session. 6 releases · first seen Jun 2026

release

  • Adds exec_paths per-command tool-sandbox setting to support multi-call binaries (e.g. busybox-style) that need access to multiple executable paths. v0.68.0 · Jul 2026 · source · release history
  • Supports per-intercept sandbox overrides and per-command unsafe_macos_seatbelt_rules escape hatch in tool-sandbox policies. v0.67.0 · Jul 2026 · source · release history
  • Adds exec intercept action for tool-sandbox command policies, enabling a helper binary to replace a matched command's real binary inside the existing sandbox. v0.67.0 · Jul 2026 · source · release history
  • Adds @git:common-dir dynamic token for tool-sandbox profiles, allowing policies to reference the Git common directory at runtime. v0.66.0 · Jun 2026 · source · release history
  • Simplifies self-invocation policy for sandboxed tools, reducing boilerplate needed when a tool is permitted to call itself. v0.66.0 · Jun 2026 · source · release history
  • Adds tool sandbox (ETI): delegated tools such as git, gh, and curl now run in isolated child sandboxes with their own fs_read/fs_write, network rules, credential grants, and argv invocation policies — independent of the agent's session sandbox. v0.65.0 · Jun 2026 · source · release history
Argv policy allow-lists for sandboxed tools shipped Lets profiles restrict exactly which command-line invocations of a sandboxed tool are permitted, argument by argument. 1 release · 3 other sources · first seen Jun 2026

release

  • Extends nono why to diagnose tool-sandbox argv policy denials via --command <cmd> -- <args…>, in addition to its existing filesystem and network queries. v0.65.0 · Jun 2026 · source · release history

example

  • Restrict gh so the agent can only list and view issues — not comment — and inject a credential-proxied GitHub token scoped to those API paths only. nono run --profile opencode -- opencode v0.65.0 · Jun 2026 · source
  • Diagnose why the tool sandbox blocked a gh issue comment invocation — useful when tuning command_policies argv allow-lists. nono why --profile gh --command gh -- issue comment 1052 v0.65.0 · Jun 2026 · source
  • Define a tool sandbox policy in your profile that scopes gh to read-only issue access with a proxied credential and an L7 endpoint allow-list. { "command_policies": { "credentials": { "github-api": { "type": "proxy", "upstream": "https://api.github.com", "credential_key": "keyring://gh:github.com/example?decode=go-keyring", "env_var":… v0.65.0 · Jun 2026 · source
nono why — policy denial diagnosis shipped Provides a dedicated command that explains why the sandbox blocked a specific filesystem, network, or tool-invocation operation. 2 releases · 1 other source · first seen Jun 2026

release

  • The why subcommand now reports explicit deny paths from the sandbox policy, making it easier to diagnose why a network or filesystem access was blocked. v0.72.0 · Aug 2026 · source · release history
  • Extends nono why to diagnose tool-sandbox argv policy denials via --command <cmd> -- <args…>, in addition to its existing filesystem and network queries. v0.65.0 · Jun 2026 · source · release history

example

  • Diagnose why the tool sandbox blocked a gh issue comment invocation — useful when tuning command_policies argv allow-lists. nono why --profile gh --command gh -- issue comment 1052 v0.65.0 · Jun 2026 · source
Sandbox capability summary shipped Shows a capability summary at the end of a session, including which macOS grants the sandbox blocked, so practitioners can see what was denied. 1 release · first seen Jun 2026

release

  • Capability summary now surfaces blocked macOS grants, giving practitioners a clearer view of what the sandbox is denying on macOS. v0.64.0 · Jun 2026 · source · release history
Protection bypass flag verified Gives users a CLI flag to explicitly override a sandbox deny decision when they choose to bypass the policy. 1 other source · first seen May 2026

command line

  • --override-deny — → `--bypass-protection`. Clap definition: v0.47.0 · May 2026 · command-line history
Network Filtering and Credential Injection 5 capabilities nono embeds a proxy layer that sits between sandboxed tools and the network, enforcing endpoint and HTTP-method allow-lists while automatically injecting the correct scoped credentials for each route. The proxy can also run as a standalone server and enforces per-route request rate limits.
Standalone proxy server shipped Runs the network-filtering and credential-injection proxy as a standalone server, independently of any agent session. 6 releases · 5 other sources · first seen Jun 2026

release

  • Adds profile-declared no_proxy bypass support, allowing profiles to specify hosts that skip the nono proxy. v0.70.0 · Jul 2026 · source · release history
  • Adds profile-declared no_proxy bypass support, letting profiles specify hosts that skip the nono proxy. v0.69.0 · Jul 2026 · source · release history
  • Supports plain HTTP forward-proxying via the HTTP_PROXY environment variable. v0.68.0 · Jul 2026 · source · release history
  • Adds deny_domain proxy configuration to explicitly block specific domains through the proxy. v0.68.0 · Jul 2026 · source · release history
  • Adds nono proxy standalone command to run the network-filtering and credential-injection proxy as an independent server, with options for fixed port, no-auth mode, and domain allowlisting. v0.67.0 · Jul 2026 · source · release history
  • Adds --allow-http2 flag to enable HTTP/2 multiplexing (via ALPN) for reverse proxy and credential injection upstream connections. v0.66.0 · Jun 2026 · source · release history

example

  • Bypass the nono proxy for internal hosts (e.g. a local Redis or internal registry) that should be reached directly. { "no_proxy": ["redis", "registry.internal"] } v0.69.0 · Jul 2026 · source
  • Block a known data-exfiltration domain at the proxy layer for all traffic through a sandboxed agent. { "deny_domain": ["exfil.example.com"] } v0.68.0 · Jul 2026 · source
  • Run the credential/filtering proxy on a fixed port with a specific domain allowlist — useful when an agent or CI job needs a pre-started proxy to route through. nono proxy --port 8080 --allow-domain api.github.com v0.67.0 · Jul 2026 · source
  • Start a loopback proxy with no token auth for local development or testing pipelines that don't require authentication. nono proxy --port 8080 --no-auth v0.67.0 · Jul 2026 · source
  • Enable HTTP/2 multiplexing when running an agent that makes many concurrent requests through the credential proxy (e.g., Maven/Gradle artifact downloads) to improve throughput. nono run --profile always-further/opencode --allow-http2 -- opencode v0.66.0 · Jun 2026 · source
Credential proxy injection shipped Intercepts outbound requests from sandboxed tools and injects the right scoped credential — GitHub token, AWS SigV4, OAuth, or SPIFFE workload identity — for each route. 8 releases · first seen Jun 2026

release 8 total

  • Adds SPIFFE/SPIRE workload identity authentication for upstream proxy routes, enabling zero-trust service-to-service auth without static credentials. v0.70.0 · Jul 2026 · source · release history
  • Adds a JWT-shaped nonce option (CapturedNonceShape::Jwt) for capture intercepts, producing a <header>.<payload>.nono_<64hex> token for consumers that validate token structure before use. v0.70.0 · Jul 2026 · source · release history
  • Adds support for mediating vault login -method=oidc, including a custom inject header and per-command open_port to handle the OIDC browser callback. v0.70.0 · Jul 2026 · source · release history
  • Adds SPIFFE/SPIRE workload identity authentication for upstream proxy routes, supporting both JWT-SVID bearer injection and OAuth2 client assertion (RFC 7523) flows; all flows are fail-closed if the SPIRE socket is unreachable. v0.69.0 · Jul 2026 · source · release history
  • Implements AWS SigV4 authentication for the MitM proxy, enabling signed AWS API request interception and credential injection. v0.67.0 · Jul 2026 · source · release history
  • Adds declarative sandboxed OAuth capture, allowing profiles to define OAuth flows without manual credential handling. v0.67.0 · Jul 2026 · source · release history
SPIFFE/SPIRE workload identity authentication verified Authenticates outbound proxy routes using SPIFFE/SPIRE workload identity, failing closed if the SPIRE socket is unreachable. 2 other sources · first seen Jul 2026

command line

Per-route request rate limiting shipped Caps the number of requests a sandboxed tool can make to a given upstream route within a defined time window. 1 release · first seen Jul 2026

release

  • Adds per-route request rate limiting via RouteRateLimiter, letting profiles cap how many requests a sandboxed tool can make to a given upstream. v0.70.0 · Jul 2026 · source · release history
Explicit credential activation requirement shipped Requires custom credential configurations to be explicitly opted in before they take effect, preventing accidental implicit activation. 1 release · first seen Jun 2026

release

  • Custom credentials now require explicit activation; previously working custom credential configurations will no longer function without being explicitly activated. v0.65.0 · Jun 2026 · source · release history
Profile Configuration and Dynamic Resolution 3 capabilities Profiles support dynamic path tokens, environment variable injection, and session lifecycle hooks so that sandbox rules resolve correctly across repositories, worktrees, and CI environments. These capabilities let a single profile definition adapt to the runtime context without manual editing.
Dynamic path tokens in profiles shipped Allows profile paths and capture commands to use environment variable expansion and dynamic git worktree tokens that resolve at runtime. 2 releases · first seen Jul 2026

release

  • Expands @git:* dynamic tokens in top-level filesystem paths, including new git worktree tokens. v0.67.0 · Jul 2026 · source · release history
  • Expands $VAR tokens from the process environment in profile filesystem paths and capture commands. v0.67.0 · Jul 2026 · source · release history
Static environment variable injection shipped Lets profiles inject fixed environment variables into every sandboxed session without those values being visible in the host environment. 1 release · 1 other source · first seen Jun 2026

release

  • Adds set_vars profile field for static environment variable injection into sandboxed sessions — set fixed env values without exposing them through the agent's environment. v0.63.0 · Jun 2026 · source · release history

example

  • Inject a fixed environment variable into every sandboxed session — useful for pinning model names or feature flags without leaking them through the host environment. nono run --profile always-further/opencode -- opencode v0.63.0 · Jun 2026 · source
Session hooks with pack directory expansion shipped Enables session lifecycle hook scripts to reference the store pack directory through a runtime-expanded variable. 1 release · first seen Jun 2026

release

  • Adds $PACK_DIR expansion support in session_hooks, enabling hooks to reference the store pack directory for pack-aware scripts. v0.63.0 · Jun 2026 · source · release history
Observability and Diagnostics 2 capabilities nono provides machine-readable session diagnostics, structured denial explanations, and a sandbox capability summary so that both human practitioners and automated tooling can understand exactly what the sandbox did and why. These outputs are designed to integrate with CI pipelines and library consumers.
Structured session diagnostics shipped Emits machine-readable session and proxy diagnostics as JSON on stderr, consumable by Rust, Python, TypeScript, and Go clients. 2 releases · 1 other source · first seen Jun 2026

release

  • New --diagnostics-json flag on nono run emits structured session diagnostics as JSON on stderr, including proxy diagnostics when present. v0.64.0 · Jun 2026 · source · release history
  • Exposes structured diagnostics for library and FFI clients, enabling programmatic access to session diagnostic data from Rust, Python, TypeScript, and Go bindings. v0.64.0 · Jun 2026 · source · release history

example

  • Capture machine-readable session diagnostics after a run to feed into a SIEM or audit pipeline. nono run --profile always-further/opencode --diagnostics-json -- opencode 2>session-diagnostics.json v0.64.0 · Jun 2026 · source
NVIDIA GPU support in sandbox mediation shipped Supports NVIDIA GPU workloads inside sandboxed sessions by handling GPU thread naming in the sandbox mediator. 1 release · first seen Jul 2026

release

  • Enables NVIDIA GPU 570+ thread naming in sandbox mediation. v0.67.0 · Jul 2026 · source · release history
Platform Integration and Operations 4 capabilities nono aligns with standard OS and CI conventions — XDG directories, keyring timeouts, CI environment detection — and provides a control-plane subcommand for enrolling instances into a centralised audit delivery system. These capabilities make nono manageable and well-behaved at team scale.
Keyring timeout control shipped Lets operators set a timeout for keychain or keyring access so nono does not hang indefinitely in headless CI environments. 1 release · 1 other source · first seen Jun 2026

release

  • Adds NONO_KEYRING_TIMEOUT_SECS environment variable to control how long nono waits for keychain/keyring access before timing out. v0.63.0 · Jun 2026 · source · release history

example

  • Prevent indefinite hangs when the system keyring is locked or unavailable — useful in headless CI environments where keychain prompts never appear. NONO_KEYRING_TIMEOUT_SECS=5 nono run --profile always-further/opencode -- opencode v0.63.0 · Jun 2026 · source
XDG Base Directory alignment shipped Stores CLI runtime state in XDG-compliant directories, following the standard Base Directory specification. 2 releases · first seen Jun 2026

release

  • Moves CLI runtime state to XDG state directories, aligning with the XDG Base Directory specification for cleaner system integration. v0.63.0 · Jun 2026 · source · release history
  • Runtime state is moved to XDG state directories (feat(cli): move runtime state to XDG state dirs), which may break setups that reference the previous runtime state paths. v0.63.0 · Jun 2026 · source · release history
Audit control plane integration shipped Enrolls a nono instance with a centralised audit control plane and lets operators inspect the enrollment status for team-scale audit delivery. 1 release · first seen Jul 2026

release

  • Adds nono platform subcommand to enroll with and inspect an audit control plane, enabling centralised audit delivery for teams running nono at scale. v0.71.0 · Jul 2026 · source · release history
CI-aware update checks shipped Detects CI environments and suppresses upgrade-prompt output so automated pipelines are not interrupted. 1 release · first seen Jun 2026

release

  • Update-check now detects CI environments, suppressing spurious upgrade prompts in automated pipelines. v0.64.0 · Jun 2026 · source · release history
Other 1 capability
Iterative policy development workflow shipped retired On session exit nono offers to save denied open-URL origins, streamlining the process of expanding policies to permit needed requests. 1 release · first seen Jul 2026

release

  • Offers to save denied open-URL origins on session exit, streamlining iterative policy development. v0.70.0 · Jul 2026 · source · release history
Capability
Evidence

Lines in monospace are the tool's own words — help text parsed from its source, or an endpoint from its API document. Everything else is our summary of a dated release or documentation change, linked back to the source it came from.

Release history

  1. docs update Aug 30, 2026 · issue 011

    nono adds deny_domain config key and --deny-domain CLI flag with three wildcard forms for fine-grained proxy blocking.

    └──▷ USE IT
    Block ad-serving subdomains as an exception inside a broad allow rule, using the config file.
    yaml
    deny_domain:
      - "*.ads.example.com"
    Override the deny list on the fly from the CLI to block a specific subdomain pattern without editing the profile.
    $ nono --deny-domain '*.ads.example.com'
    • Adds deny_domain config key to block specific hosts through the proxy before the allowlist is checked, letting it carve exceptions out of broad network profile entries.
    • Adds --deny-domain CLI flag as the command-line equivalent of the deny_domain config key.
    • Supports three wildcard forms in deny_domain entries: a bare wildcard matches any host; a leading * (e.g. *.example.com) matches one or more subdomain labels but not the apex; and a mid-pattern * occupying a whole label (e.g. jenkins.*.ci.example.com) matches exactly one label at that position.
    • deny_domain is additive across profile inheritance, accumulating entries from parent profiles.
  2. docs update Aug 30, 2026 · issue 011

    nono adds wildcard pattern matching and case_insensitive_vars for environment variable filtering in profiles

    └──▷ USE IT
    Allow only AWS session vars and any token vars into a command, matching case-insensitively so both gh_token and GH_TOKEN are accepted.
    yaml
    case_insensitive_vars: true
    allow:
      - "AWS_*_SESSION"
      - "*_TOKEN"
    • Adds case_insensitive_vars: true config key to match environment variable patterns case-insensitively (ASCII only), so patterns like 'gh_token' match GH_TOKEN, Gh_Token, etc.
    • Supports wildcard * patterns anywhere in environment variable allow/block rules — leading ('*_TOKEN'), trailing ('AWS_*'), middle ('AWS_*_SESSION'), or substring ('*SECRET*') — while a pattern with no * requires an exact full-name match.
    • Makes case_insensitive_vars: true sticky across extends: once a base profile sets it, child profiles cannot silently revert it to false.
    • Rejects malformed patterns — empty strings or patterns containing a NUL byte — at profile load time rather than silently ignoring them at runtime.
  3. docs update Aug 30, 2026 · issue 011

    nono tool-sandbox ambient credentials gain a format field to shape phantom token prefixes for picky clients

    └──▷ USE IT
    When a consuming client (e.g. an Anthropic SDK) sniffs the token prefix and rejects bare phantoms, declare a format on the ambient credential so issued phantoms look like real Anthropic OAuth tokens.
    yaml
    ambient:
      - name: anthropic-oauth
        format: "sk-ant-oat01-{}"
        # ... other credential fields
    • Adds format to ambient credential declarations in the tool-sandbox config: a literal template with exactly one {} placeholder (e.g. "sk-ant-oat01-{}") that wraps the phantom's 64-hex body, so clients that classify tokens by prefix accept the phantom — the template is stripped on egress so the real credential is never exposed.
    • format is rejected on non-ambient credentials, when the value contains control characters, or when the minting rule also sets shape: "jwt".
  4. v0.74.0 Aug 19, 2026 · issue 005

    nono v0.74.0 adds remote session connect/ps, subtool audit surfacing, export_env pass-through, and configurable approval backends

    └──▷ GET THIS VERSION
    $ git clone --branch v0.74.0 https://github.com/nolabs-ai/nono.git
    # already have the repo? check out this version:
    $ git checkout v0.74.0
    └──▷ TRY IT
    List all live and exited sessions running on the enrolled nono-console tenant, in JSON for scripting or SIEM ingestion.
    $ nono ps --remote --all --json
    Attach your terminal directly to a specific remote session by its global session ID, useful for live incident inspection.
    $ nono connect local:host:abc123
    Allow a sandboxed tool to forward a specific interpreter env var (e.g. PYTHONPATH) to child processes it spawns, without opening the full allow_vars list.
    json
    {
      "command_policies": {
        "commands": {
          "my-tool": {
            "export_env": ["PYTHONPATH"]
          }
        }
      }
    }
    • Adds nono connect subcommand to attach a local terminal to a session hosted by nono-console, with nono connect for interactive discovery or nono connect <session-id> to attach directly by global session ID.
    • Extends nono ps with --remote flag to list sessions hosted by the enrolled tenant's nono-console, combinable with --all and --json for full remote session visibility.
    • Adds export_env to tool-sandbox command policy config, letting callers declare specific environment variables to pass through to child tools verbatim, bypassing the allow_vars blocklist — supports exact names, trailing-* prefixes, or bare *.
    • Adds session_export_env key to command_policies config for declaring env pass-through when the resolved caller is the session itself rather than a mediated command.
    • Adds configurable approval backend for supervised-mode prompts via the profile's approval_backends and approval_defaults config fields.
    +2 moreshow less
    • Surfaces subtool audit events in nono audit, making child-tool activity visible alongside the parent session's audit trail.
    • Extends sandbox policy to allow unlink for atomic write temp files, enabling tools that perform atomic writes (write-then-rename) to clean up temp files within policy.
  5. v0.73.0 Aug 10, 2026 · issue 005

    nono v0.73.0 adds glob pattern support in filesystem path fields for profile sandboxes.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.73.0 https://github.com/nolabs-ai/nono.git
    # already have the repo? check out this version:
    $ git checkout v0.73.0
    • Supports glob patterns in filesystem path fields (e.g. fs_read, fs_write) within profile sandboxes, enabling wildcard-based path grants without enumerating individual paths.
  6. v0.72.0 Aug 7, 2026 · issue 005

    nono v0.72.0 adds a static seccomp network baseline on Linux, explicit deny-path reporting in why, and ships a musl release artifact.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.72.0 https://github.com/nolabs-ai/nono.git
    # already have the repo? check out this version:
    $ git checkout v0.72.0
    • Adds a static seccomp network baseline on Linux (alongside Landlock) under the auto --sandbox-policy mode, strengthening network restriction on kernels where Landlock ABI < V4.
    • Extends the why subcommand to report explicit deny paths from sandbox policy, making it easier to diagnose why a specific network or filesystem access was blocked.
    • Ships a musl release artifact, enabling deployment on musl-based Linux distributions without a glibc dependency.
    • Removes openclaw and swival as built-in profiles; users relying on them must supply their own profile going forward.
    └──▷ BREAKING ON UPGRADE
    • !The openclaw and swival built-in profiles have been removed; any nono run --profile openclaw or nono run --profile swival invocation will fail after upgrading.
    • !The external value for --sandbox-policy on Linux now keeps Landlock active for filesystem/process policy while only delegating TCP enforcement externally, rather than installing no sandbox at all.
  7. v0.71.0 Jul 31, 2026 · issue 005

    nono v0.71.0 adds a platform subcommand for audit control-plane enrollment and removes the deprecated learn command.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.71.0 https://github.com/nolabs-ai/nono.git
    # already have the repo? check out this version:
    $ git checkout v0.71.0
    • Adds nono platform subcommand for enrolling with and inspecting an audit control plane, enabling centralised audit delivery at scale.
    • Removes the deprecated nono learn command (deprecated since v0.50.1).
    └──▷ BREAKING ON UPGRADE
    • !The nono learn subcommand has been removed. Any scripts or workflows invoking nono learn will break; use nono run instead.
  8. v0.70.0 Jul 29, 2026 · issue 005

    nono v0.70.0 adds SPIFFE/SPIRE workload identity, per-route rate limiting, JWT-shaped capture nonces, Vault OIDC mediation, and profile-declared no_proxy bypass

    └──▷ GET THIS VERSION
    $ git clone --branch v0.70.0 https://github.com/nolabs-ai/nono.git
    # already have the repo? check out this version:
    $ git checkout v0.70.0
    └──▷ USE IT
    Mediate vault login -method=oidc inside a sandboxed tool policy, injecting the token via a custom header and opening a per-command port for the OIDC callback.
    json
    {
      "command_policies": {
        "credentials": {
          "vault-oidc": {
            "type": "proxy",
            "upstream": "https://vault.example.com",
            "inject_header": "X-Vault-Token",
            "credential_format": "Bearer {}"
          }
        },
        "commands": {
          "vault": {
            "from": {
              "session": {
                "sandbox": {
                  "open_port": 8250,
                  "credentials": [{ "name": "vault-oidc" }]
                },
                "invocation_policy": {
                  "default": "deny",
                  "allow": [
                    { "argv": { "prefix": ["login", "-method=oidc"] } }
                  ]
                }
              }
            }
          }
        }
      }
    }
    • Adds CapturedNonceShape with a jwt option for capture intercepts, emitting a <header>.<payload>.nono_<64hex> token so consumers that validate JWT structure before use can still resolve the embedded nonce.
    • Adds per-route request rate limiting via RouteRateLimiter on proxy upstream routes, letting profiles cap how many requests an agent or tool can send through a given route.
    • Adds SPIFFE/SPIRE workload identity auth for upstream proxy routes, enabling mutual workload attestation without static credentials.
    • Adds mediation for vault login -method=oidc with support for a custom inject_header and a per-command open_port, so Vault OIDC flows can complete inside a sandboxed tool policy.
    • Adds profile-declared no_proxy bypass support, letting profiles explicitly list hosts that should skip the proxy.
    +1 moreshow less
    • New CLI prompt at session exit offers to save denied open-url origins, turning one-off denials into persistent policy without manual profile edits.
my-toolchain — 0 tools
paste an install list to detect your tools

A brew list, a Brewfile, requirements.txt, a Dockerfile — or just the product names, free-form. Nothing leaves your browser.

    browse all tools →