Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add burin-labs/harn --skill harn-sandbox-policygit clone --depth 1 https://github.com/burin-labs/harnWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/burin-labs/harn/harn-sandbox-policy)<a href="https://agentmods.dev/skills/burin-labs/harn/harn-sandbox-policy"><img src="https://agentmods.dev/badge/skills/burin-labs/harn/harn-sandbox-policy/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/burin-labs/harn/harn-sandbox-policy"><img src="https://agentmods.dev/badge/skills/burin-labs/harn/harn-sandbox-policy.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00049 | $0.01774 |
| Opus 5 | $0.00024 | $0.00887 |
| Sonnet 5 | $0.00010 | $0.00355 |
| Haiku 4.5 | $0.00005 | $0.00177 |
Grade C, and why
harn-sandbox-policy scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reaches for credential fileshighPrivilege escalation
SSH keys, cloud credentials, git-credentials, .npmrc, /etc/shadow: reading these is how a config file becomes a credential leak.
opens `~/.config`, `~/.cache`, and `~/.netrc` wholesale, so a denial that merely How it starts
The opening of the file, as written. The whole thing — 132 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Harn sandbox policy
The sandbox decides what a child process spawned by an agent tool call may read
and write. It has one owner, crates/harn-vm/src/stdlib/sandbox/, and three
backends that project the same CapabilityPolicy onto their platform.
Pair it with [[harn-agent]] for autonomy gating and [[harn-orchestration]] for where the policy comes from.
The three axes, which are not the same axis
Confusing these is the most common mistake here.
workspace_roots/read_only_rootsscope Harn's own file builtins (read_file,harness.fs.*), throughcheck_fs_path_scope.process_sandbox.{presets,read_roots,write_roots,read_deny_roots}scope child processes only, through the OS backend. These never widen Harn's file builtins.allow_tcp_loopbackandunix_socket_rootsare the two socket grants on this axis: loopback admits IP onlocalhost, socket roots admit Unix-domain sockets whose socket file lives under a root, and neither opens remote egress. Both are host-owned: a nested policy cannot invent them.sandbox_profiledecides whether either is enforced at all.enforces_path_scope()gates axis 1 and the toolchain-cache environment;confines_processes()gates axis 2.
A grant on one axis is not a grant on another, and a bug report that says "the agent cannot read X" needs to name which one before it can be diagnosed.
Adding a read root
Add it to the policy the embedder builds, or to a preset in
sandbox/mod.rs if it belongs to every run. Presets are additive and expand
per-platform in macos.rs / linux.rs / windows.rs.
Do not add a root by inferring it from the command being run. A read surface that is a function of the tool call is not auditable and fails order-dependently: the same command succeeds or fails depending on what ran before it.
Adding a denylist row
crates/harn-vm/src/orchestration/policy/read_deny_defaults.toml. One line
under defaults.home_relative, plus a line under [reason] saying why. It is
data on purpose: nothing in the Rust module decides what belongs on the list.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed · +23 lines e83168031f7b
- 11d ago First seen · 109 lines · 49 tokens per session scan C d5892ec2cd0d
harn-sandbox-policy is a skill published in the GitHub repository burin-labs/harn (22 stars, last pushed today), licensed Apache-2.0. It adds 49 tokens to every session and 1,774 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it C with 1 finding (reaches for credential files). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
translate
A translation tool for converting user-provided text between languages, with Chinese and English as the default pair.
agent-communication-protocol
Open protocol for AI agent interoperability enabling standardized communication between agents, applications, and humans across different frameworks.
self-host-studio
Install and self-host deco Studio (the open-source control plane) on the user's own infrastructure. Use when the user wants to install, run, self-host, or deploy Studio locally (Docker, Rancher Desktop, kind, minikube) or on Kubernetes (managed or self-managed), or asks to "install Studio", "self-host decocms"…
gh-issue
Fetch a GitHub issue, create a branch, implement with TDD, and open a PR.
gh-issues
Walk over all open GitHub issues that are unassigned or assigned to the current user, and process each one via the /gh-issue skill, sequentially.
module-new
Scaffold a new Gacela module under src/php/ with Facade, Provider, and CLAUDE.md.