Phewsh Platform

One package · npm

One install. Connected surfaces.

Your recorded project truth stays with the project. The same project truth reaches your terminal, browser, agents, and supported tools through open, reversible adapters.

$ curl -fsSL phewsh.com/install.sh | sh click to copy

CLI, web bridge, and MCP server — all in this one package. Node-aware and nvm-aware; npm never runs with sudo. Any legacy ownership repair is disclosed first.
or with npm: npm i -g phewsh

Terminal

The front door

Type naturally. PHEWSH routes through the agent CLIs you already have — Claude Code, Codex, Gemini, Cursor — no API key needed. Verified handoffs and accepted outcomes leave bounded records.

phewsh
the CLI in depth →
Browser

The local view

When you deliberately run the worker, its session on the same machine becomes visible in the browser. Watch work happen and inspect the bounded evidence it leaves.

phewsh serve
open the cockpit →
Agents

The briefing

The optional bundled MCP adapter gives configured clients bounded access to project context and tasks. It connects tools without becoming another source of truth.

phewsh mcp setup
agent command center →
Tools

The gateway

An OpenAI-compatible endpoint with credits billing built in. Point Hermes, Cursor, Continue — anything that speaks the API — at PHEWSH.

phewsh.com/api
API docs →

One open adapter contract

.intent/ is project truth. Skills, hooks, projections, MCP, and Ion are inspectable layers around it — each with a named scope, write surface, removal path, and authority boundary.

Project truth · your-project/.intent/ · created by phewsh init and committed with the project.

User-level skill · ~/.agents/skills/intent/ and ~/.claude/skills/intent/ · installed only after ambient consent.

Project-local skill · your-project/.agents/skills/intent/ · optional user-owned override; Phewsh never creates or changes it.

Native adapters

The user-level Intent skill reaches Claude Code and Codex. Session hooks brief Claude Code. Marked projections reach CLAUDE.md, AGENTS.md, GEMINI.md, and .cursorrules.

Safety hooks

An independent opt-in policy can guard Claude Code and Codex tool calls and leave redacted receipts. It is local and deterministic, not a sandbox.

MCP capability adapter

Optional transport for configured clients. Setup prints manual config and syncs a bounded project cache; it does not edit agent config or become project truth.

Ion team adapter

The worker is same-machine and project-bound after human claim. Slack and Discord remain planned request/notification connectors, not remote execution authority.

phewsh ambient explain --json · inspect the same public JSON →

One record underneath

Every supported surface starts from the same project-owned .intent/ truth. Explicit handoffs and accepted outcomes add to its record. Switch tools, switch rooms, switch days — the recorded thread holds.

one thread · two tools
phewsh claude · working…
  ⚠ Claude usage limit reached
/exit  ● handoff captured
phewsh codex · ↻ verifying the captured checkout
   receipt verified before output · losses named

Prefer to start in the browser? Intent uses the same Project · Next · Work · Record model — log in, plan there, and an explicit phewsh pull brings linked project truth to your terminal. Either door, one project.

Yours stays yours

A maintained source-backed self-assessment, not an independent audit. Inspect the security boundary.

Runs on your machine

It executes through your installed tools on their own login — your Claude subscription, your ChatGPT plan. phewsh never sees those credentials and never proxies your conversations through our servers.

Keys stay owner-only

A bring-your-own key lives in ~/.phewsh/config.json at mode 0600 and goes directly to the provider — not through us.

Bridge is loopback-only

phewsh serve binds IPv4/IPv6 loopback (127.0.0.1 / ::1) with a browser-origin allowlist. Loopback is not authentication; another local process may call it.

Telemetry is counts, not content

Sustainability tracking sends model + token counts, impact estimates, session id, and optional account id — never prompt or response text. Ambient hooks read selected project records, not native transcripts.

Full report & mechanics on the CLI page · disclosure: hello@phewsh.com