Install once, then launch it through phewsh with . Your project truth loads before reads a single file. Nothing about your existing setup changes until you say so.
Your recorded project truth stays with the project. The same project truth reaches your terminal, browser, agents, and supported tools through open, reversible adapters.
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
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.
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.
The optional bundled MCP adapter gives configured clients bounded access to project context and tasks. It connects tools without becoming another source of truth.
An OpenAI-compatible endpoint with credits billing built in. Point Hermes, Cursor, Continue — anything that speaks the API — at PHEWSH.
.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.
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.
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.
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.
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 →
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.
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.
A maintained source-backed self-assessment, not an independent audit. Inspect the security boundary.
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.
A bring-your-own key lives in ~/.phewsh/config.json at mode 0600 and goes directly to the provider — not through us.
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.
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