Permission broker
- fs.writesession
- net.fetchask
- secret.refwithheld
Nothing runs until policy says so.
Seepient pairs a full-screen terminal UI with a CLI, a TypeScript SDK, and a standalone server — one agent loop, one permission engine, one audit trail across all of them.
You
Add token-bucket rate limiting to the payments API
✓ execute_shell_command {"cmd":"npm test -- payments"}(2.1s)
↳ 38 passed, 0 failed
✓ write_file {"file":"src/middleware/rate-limit.ts"}(0.8s)
committed 4f2c9a1 · pre-image verified
Seepient
Rate limiting is wired in — 60 req/min per API token with burst allowance. All 38 tests pass.
An agent that can touch your system needs more than a prompt. Seepient brokers capability, verifies every write, and records what happened.
Tools do not run until the policy engine says so. Capabilities are granted, escalated, and audited per action — in the terminal or over the wire.
Shell and file effects run inside Seatbelt or Bubblewrap profiles, and writes land through a Rust commit helper that verifies pre-images atomically.
Models are picked per purpose and tier — standard, complex, efficient — from a live provider catalog, never a hardcoded list.
Permission broker
Nothing runs until policy says so.
Purpose routing
Models assigned per purpose and tier.
Audit trail
Every decision, append-only.
Prompts arrive through any surface and cross four one-way layers. Every decision is brokered, every effect is isolated, and everything that matters is kept.
Surfaces
Talk to it
The Brain
Decides what happens
The Hands
Acts on the world
Memory
What it keeps
One-way imports
UI → Transport → Domain → Capabilities → Vendors. Nothing imports upward; no service SDK ever leaves the vendor quarantine.
One policy engine
All four surfaces delegate to the same agent loop and permission broker, so behavior never forks between terminal and server.
Shared foundations
Types, errors, contracts and settings schema live in foundations — imported by every layer, importing no one.
Pick the surface that fits the job. Each one resolves the same config, asks the same policy engine, and writes the same audit trail.
seepientFull-screen Ink interface with streaming output, live widgets, inline diff review and slash commands.
Explore 02git diff | seepient "review for regressions"One-shot prompts, Unix pipes and non-interactive -y runs for scripts, cron jobs and CI.
Explore 03const agent = createSeepient({ stores })generateText and streamText with injectable storage, custom tools, hooks and purpose routing.
Explore 04seepient-server --port 7337REST and WebSocket surface with scoped API keys, session persistence and an mTLS worker scheduler.
ExploreModel file edits are applied by a native commit helper that re-reads the file and compares it against the pre-image the model saw. If anything moved underneath — a symlink, a race, a stale buffer — the write is refused.
How exact commit works →The gap between a chat completion and an agent you can leave unattended is everything around the model call. Seepient ships that everything.
| Capability | Seepient | Typical DIY loop |
|---|---|---|
| Permission policy & consent modes | Built-in | Bolt-on, if any |
| OS-level process sandbox | Seatbelt · Bubblewrap | — |
| Exact atomic file commits | Native helper | Best-effort writes |
| Durable, replayable audit trail | Append-only | Console.log |
| Purpose × tier model routing | Live catalog | Hardcoded names |
| Embedder-owned storage (SDK) | Store contracts | — |