Ring 0 is open to design partners running agents against production systems. Request access

Use cases · 01

Arbitrary code execution, on purpose.

A coding agent clones a repository, installs whatever the lockfile says, and runs whatever the test suite runs. That is remote code execution as a feature, and it is the most common first workload we govern.

01 / the premise

Your CI runner has more security review than the agent on your laptop.

CI is locked down because everyone accepts that build scripts are untrusted. Then a coding agent runs the same scripts on a developer machine that holds a production AWS profile, an npm token, and an SSH key with write access to forty repositories.

Nothing about the agent is malicious. It installs a package that runs a postinstall script, and that script reads the environment. The agent never decided to do anything wrong.

02 / what the agent does

  1. 1

    Clone

    Pull the repository and any private submodules.

  2. 2

    Install

    Run the package manager, which runs third-party scripts.

  3. 3

    Iterate

    Edit, run tests, read failures, edit again.

  4. 4

    Propose

    Push a branch and open a pull request.

03 / what goes wrong

The failures that keep this in pilot.

FailureHow it happensWhat stops it
Credential theftA postinstall script or a compromised dependency reads environment variables and posts them out.No credentials in the sandbox. Git and registry access are proxied through the gateway, which holds the tokens.
Dependency confusionA typosquatted or substituted mirror serves a malicious package.Registry allowlist with pinned resolution. A mirror swap in .npmrc fails closed instead of silently succeeding.
Force-push over mainThe agent resolves a conflict by overwriting the branch.Git operations are tools with policy. Force-push and protected-branch writes escalate to a human.
Exfiltration via testA test sends source or data to an external endpoint, which looks exactly like a normal network call.Default-deny egress. The test still runs; the call to an unlisted host never leaves.
Runaway spendA retry loop reinstalls, rebuilds, and re-queries a paid API for hours.Hard budgets on wall-clock, tool calls, and spend, enforced by the kernel rather than the loop.

04 / the boundary

What you actually write down.

# velone.policy.yaml  ·  coding agent
version: 2
session: repo-agent
ring: 2

egress:
  default: deny
  allow:
    - github.com
    - registry.npmjs.org
    - pypi.org
    - proxy.golang.org

tools:
  shell.exec:
    allow: true
    deny_args:
      - "curl * | sh"
      - "rm -rf /"
      - "git push --force*"
  files.write:
    allow: true
    paths: ["/workspace/**"]          # not ~/.ssh, not /etc
  git.push:
    allow: true
    deny_branches: ["main", "release/*"]
  git.force_push:
    escalate: true
    approvers: ["platform-oncall"]

budget:
  wall_clock: 2h
  tool_calls: 1500
  spend_usd: 10

Note what is missing: no AWS credentials, no production database URL, no npm publish token. The agent cannot leak what it was never given.

05 / what changes

Developer machines
Stop being the execution environment. The agent runs in a microVM whether it was started from a laptop or from CI.
Secrets
Git and registry tokens live in the control plane. A compromised dependency has nothing to steal.
Review
The pull request arrives with an evidence link: every command the agent ran to produce it.
Parallelism
Fork a sandbox to try two fixes from identical state, then keep the branch that passed.
Incident response
When a bad change ships, replay shows the exact sequence rather than a reconstructed guess.

06 / questions

Will this slow the agent down?

Sandbox start is under 200ms from a warm pool and policy decisions are around a millisecond. Against npm install, neither is measurable.

Our agent needs to run the real database in tests.

Give the session a scoped connection through the gateway to an ephemeral database, not your production instance. The gateway holds the credential and the policy caps the statements.

What about Claude Code and Codex specifically?

Both have adapters. Codex runs inside a Velone ring with one command; the Claude Agent SDK swaps its bash and file tools for governed equivalents and subagents get child sessions.

Can the agent still open a PR?

Yes. Pushing a feature branch is allowed; pushing to main or force-pushing escalates. The normal path stays fast and the dangerous path stops.

keep reading

Ring 0

Point a coding agent at a real repository.

Run it once inside a ring and read the evidence. The denials are usually the interesting part.

curl -fsSL velone.in/install.sh | sh