┌─Trust-first local CLI coding agent─┐

PACT Agent — Permission, Action, Cost, TrustPACT AGENT

PACT Agent is a local command-line coding agent built around trust rather than autonomy. Before taking any action it states a permission contract, executes inside a sandbox, writes every effect to a journal, and runs an independent verifier that can refuse the result. Built by Suman Debnath.

Permission · Action · Cost · Trust

A local coding agent that shows you a permission contract before it touches anything, executes only what you approve in a sandbox, journals every effect, then runs an independent verifier that is allowed to say no.

Get running in 30 seconds

Quickstart
$ git clone https://github.com/Sumandebnath943/pact-agent
$ cd pact-agent && pipx install .
$ pact init
$ pact run "create hello.txt with a greeting"
pact — interactive session
PACT
Sandbox
D:\project\agent
Planner
openrouter / anthropic/claude-haiku-4-5
Escalates to
openrouter / anthropic/claude-sonnet-4-6
Verifier
openrouter / anthropic/claude-haiku-4-5
Budget
$0.0000 today / $2.0000 daily

Interactive session. Type a task, or /help for commands. Ctrl+D to exit.

pact> 

PACT|time 00:00|cost $0.0000|tokens 0|bgt $2.00|risk
PermissionActionCostTrustTrust-firstIndependent verificationHonest costLocal & privateFails closedBring your own modelPermissionActionCostTrustTrust-firstIndependent verificationHonest costLocal & privateFails closedBring your own model

// the stance

Most AI agents are optimistic narrators — they declare success whether or not it happened.

PACT is built on the opposite stance: earned trust, not assumed trust. Nothing runs without an explicit, itemized contract you approve. A separate model re-checks the result against recorded evidence — and is designed to push back when reality diverges.

why it’s different

  • No silent edits

    Every action is approved per-step before it runs — y / n / a.

  • A verifier that can say no

    Judges the actual evidence, not the plan's optimism.

  • Honest cost

    Unknown cost shows as unknown — never a misleading $0.00.

  • Local & private

    Runs on your machine; keys read from your environment only.

[ 01 ]// one shared pipeline

The core loop

Every task — typed at the prompt or passed to pact run — flows through one engine. There is exactly one implementation; both entry points share it.

01

PLAN

planner model

02

CONTRACT

permission table

03

APPROVE

y · n · a

04

EXECUTE

sandboxed only

05

JOURNAL

before / after

06

VERIFY

independent verdict

plan

Concrete file / shell actions to perform.

answer

A pure question — no filesystem change, skips the contract entirely.

read

Needs the actual file contents first, then re-plans (reads stay in the sandbox).

delegate

Splits into independent subagents, each run through the full pipeline.

Mode exclusivity is enforced in PACT’s own code — never by trusting the model’s self-declared mode. An "answer" carrying hidden steps is rejected, so an unapproved action can never slip through.

[ 02 ]// the two signature panels

The contract & the verdict

Permission Contract — Awaiting Approval
RISK  ACTIONTARGET · RATIONALE
LOWfile_writehello.txt · create hello.txt with greeting
--- hello.txt
+++ hello.txt
+hello world

Using 3 memory entries (view with /memory)

Planned by anthropic/claude-haiku-4-5

Estimated model cost: $0.0008

Approve file_write on hello.txt? [y/n/a] (n):

Independent Verification
CONFIRMED

Confidence: 95%

Evidence

hello.txt after-content is exactly "hello world"; exit_code 0. Matched the requested end state.

CONFIRMEDCONTRADICTEDINCONCLUSIVE

The verifier receives only the recorded journal evidence — file before/after snapshots, command output, exit codes — and returns a verdict with a confidence percentage. It is intentionally single-model and untiered: you don’t cheapen the check that catches the planner’s mistakes.

[ 03 ]// no mockups

The real interface

The PACT REPL: the PACT AGENT wordmark, status panel, available actions, and the Permission · Action · Cost · Trust pillars.

The actual REPL masthead — block-glyph wordmark, wax-seal emblem, two-column info block, live status, and the eight registered actions across the file, shell, and browser families.

[ 04 ]// designed for control

Built on trust

Built on trust. Designed for control. PACT's six pillars: permission first, sandboxed execution, complete journal, independent verification, transparent cost, local & private.

Permission first

Every action is itemized in a permission contract. You approve y / n / a — nothing runs without your consent.

Sandboxed execution

All operations resolve inside your project sandbox. Paths stay in bounds; the shell can't reach the network.

Complete journal

Every change is recorded with before / after snapshots, output, and exit codes — which also powers undo.

Independent verification

A separate verifier model checks the actual evidence and can return CONFIRMED, CONTRADICTED, or INCONCLUSIVE.

Transparent cost

Real-time token and cost tracking. Unpriced models surface as "unrecorded" — never a misleading $0.00.

Local & private

Runs on your machine, in your project. API keys come from your environment only — never stored, never committed.

[ 05 ]// full inventory

What it can do

Available Actions (8)
file:file_writefile_editfile_deletefile_read
shell:shell_exec
browser:browser_navigatebrowser_clickbrowser_fill

Shell runs as an argv array only — never a raw shell string. Network-capable programs and URL-bearing arguments are blocked. Browser navigation needs a host you’ve explicitly allow-listed; sensitive actions always re-prompt.

Dangerous patterns (rm -rf, sudo, chmod 777, curl | bash) escalate to HIGH risk.

The Governor

A daily USD budget cap, enforced before each call, with live price refresh from OpenRouter.

Cost-aware routing

Cheap planner first; escalates to a stronger model only on a real signal — and always discloses the switch.

Project memory

Durable facts and conventions in local SQLite, injected into the planner — pinnable to always apply.

Scope-locked skills

Save an approved task as a skill. Re-runs re-plan and must match the approved scope, or fail closed — zero actions.

Delegation

A task fans out into independent subagents (bounded concurrency); subagents can't further delegate.

Undo + doctor

Reverse any journaled file action from its snapshot. A doctor command health-checks the install.

Optional surfaces: voice input (transcribe an audio file into a task), desktop notifications on unattended skill outcomes, and a copy-pasteable scheduling command — PACT runs no daemon of its own.

[ 06 ]// python ≥ 3.11 · cross-platform

Use it

pact — live run
REC
01

Clone & install

Grab the repo and install the pact command with pipx.

git clone …/pact-agent · pipx install .

02

Initialize

Set up .pact/ inside the project you want PACT to work in.

cd your-project · pact init

03

Run a task

Describe a task; approve the contract; read the verdict.

pact run "…"

04

Bring your own model

Point any role at OpenRouter or a local Ollama endpoint.

cp .env.example .env

Bring your own model (OpenRouter or local Ollama)
# .env is git-ignored and never committed
$ cp .env.example .env
# then set OPENROUTER_API_KEY=… (or point any role at a local OpenAI-compatible endpoint)

CLI commands

  • pactenter the interactive REPL
  • pact run "<task>"one-shot: plan → contract → verify
  • pact undo <id>reverse a journaled file action
  • pact log [--last N]recent journal entries
  • pact skill …save / run / compose / export skills
  • pact memory …list / forget / pin project memory
  • pact budget [set]view or set the daily cap
  • pact status · digestactivity + review flags
  • pact doctorinstall / config health check

In-session slash commands

  • /delegate <task>split into independent subagents
  • /voice <path>transcribe audio into a task
  • /remember <fact>record a durable fact
  • /memoryshow / pin project memory
  • /skilllist / save / run / schedule skills
  • /status · /logrecent activity & journal
  • /undo <id>reverse a file action
  • /budget · /configspend vs. cap · current config
  • /help · /exithelp · leave (also Ctrl+D)

Optional extras: pact-cli[voice] (Whisper transcription), pact-cli[notifications] (Windows toasts), and browser support via Playwright.

open source · House of Namus

Plan it. Contract it. Approve it. Verify it.

Clone the repository, install with pipx, and run your first contracted task in under a minute. Bring your own model — OpenRouter or a fully local endpoint.

github.com/Sumandebnath943/pact-agent

v0.1.0 · pact-cli · MIT · Built by House of Namus

Questions this page answers

What is PACT Agent?
PACT Agent is a local command-line coding agent built around a trust model rather than autonomy. It states a permission contract before taking any action, executes inside a sandbox, writes every effect to a journal, and runs an independent verifier that can refuse the result. It was built by Suman Debnath.
Why does a coding agent need a permission contract?
An agent that can edit files and run commands can also destroy work, and the usual failure is not malice but confident wrongness. A permission contract declared before execution means the operator approves the scope of possible damage in advance rather than reviewing it afterwards, and the journal makes every effect reversible in principle.

Let's Build
What Comes Next.

Suman Debnath Signature

Open to meaningful collaborations, AI-native systems, product strategy, and future-focused conversations.

“Human instinct. AI amplification.
Systemic execution.”

Suman Debnath

·

Brand Marketing Leader & AI Product Builder

© 2026

This site records visit data — pages viewed, time and scroll depth, device, your IP address and the approximate location and network provider derived from it — and sends it to me privately. It also runs Google Analytics and Vercel Analytics. Full detail and how to opt out.

This site, its code and its content are © 2026 Suman Debnath. All rights reserved — none of it is open source, and copying it needs permission first. Terms of use.