One .intent/ folder. Sync everywhere. No lock-in, no re-explaining.
"Don't adapt to software — let software adapt to you."
Node-aware, nvm-aware, never sudo. No curl? Fallback: npm install -g phewsh
Global CLI. Node.js 18+ required.
Creates your .intent/ — portable project truth (vision, plan, constraints). The four words read from it.
Syncs .intent/ to CLAUDE.md, .cursorrules, and cloud.
No API key required — phewsh ai runs through the agent CLIs you already
have, on their own logins (Claude subscription, ChatGPT plan, Google account).
phewsh's core is continuity — your project truth, shared across every AI tool. Packs are opt-in
workflow opinions you layer on top: proven guidelines from people who've shipped. Always attributed,
project-scoped, and reversible — nothing is written without your y/N.
Andrej Karpathy's coding guidelines — think before coding, prefer simplicity, make surgical changes, drive loops by goals. Written as a clearly-marked, removable block in your CLAUDE.md / AGENTS.md.
Get Shit Done — a Claude-centric workflow (hooks, commands, planning). Its own tool, so phewsh points you at the upstream installer rather than vendoring it.
List them with phewsh pack · reverse cleanly with phewsh pack remove <name> · or inside the
phewsh front door, just type /pack.
In plain terms: you write down what you're building once, and every AI tool you already use — Claude Code, Codex, Cursor, Gemini — reads it and stays on the same page. You don't switch tools. You don't re-explain. They share one memory.
.intent/ is plain markdown + JSON, committed with your code. Your goal, constraints, and the decisions you've made. Not locked to phewsh — any tool can read it.
phewsh translates it into each tool's native format — CLAUDE.md, AGENTS.md, .cursorrules, MCP. Every tool gets the brief in the language it already speaks.
It runs your installed tool through its own login — your prompt passed straight through — and records each action as a labeled decision you can learn from.
What sets it apart from every other CLI harness
Claude Code, Codex, Aider, Cursor, Goose — they're all execution engines. Each starts cold, asks "what are you building?" again, and competes with the others for the task. They're interchangeable, and none of them remember across the others.
phewsh is the one thing that isn't an engine. It keeps no model of its own, holds no capability list, and never sees your subscription credentials. It passes your prompt straight through to the real tool — so the moment Claude Code or Codex ships something new, phewsh inherits it for free. Nothing to update on our end.
The result: one shared memory across all of them, a record of what you decided and kept, and continuity that works even when you never launch phewsh. That cross-tool record is the moat — not the routing. Swap the engine without rebuilding the car.
phewsh is not another agent. It's the layer that uses the ones you already have. If Claude Code, Codex CLI, Gemini CLI, Cursor Agent, or OpenCode is installed, phewsh executes through it on its own login — your Claude subscription, your ChatGPT plan, your Google account. No API credits burned.
Prefer raw APIs? OpenRouter, Anthropic, Groq, Ollama and the PHEWSH gateway (pooled credits, budget-gated) all work too via phewsh login --set-key.
phewsh — everything. Intent authoring, sync, the bridges, receipts, dispatch — and the MCP server, bundled. phewsh mcp setup wires it into Claude Code, Cursor, or any MCP client via phewsh mcp serve --stdio. An interactive agent session gets your project's briefing, task queue, and enforcement gate — and shares state with the bridges, so everything lands in the same receipts. No second install.
Rule of thumb: phewsh serve dispatches tasks to your agents from the web. phewsh mcp setup lets agents pull tasks from PHEWSH mid-session. See it live at /mcp.
PHEWSH sits above every AI system as the continuity layer.
Or simpler: Models think. Agents act. Memory remembers. MCP connects. PHEWSH keeps everything continuous.
The AI ecosystem is fragmenting hard. Different models excel at different things. APIs change. Pricing shifts. Providers disappear. Context gets trapped inside silos.
Right now people repeatedly re-upload context, re-explain projects, rebuild prompts, migrate workflows manually, and lose continuity between devices, tools, and models.
PHEWSH's value: your workflow survives even if your tools change. Use whatever AI is best today without losing continuity tomorrow.
"Swap the engine without rebuilding the car."
Everything works as phewsh <cmd> from terminal or /<cmd> inside a session. The whole idea is four plain words — Project · Next · Work · Record — and they work even with no AI in the loop.
Part of Project: set the constraints that shape every AI response — and decide whether to build before you build.
phewsh > /gate
Budget? $50
Time? 15 hrs/week
Skill? expert
Urgency? high
When you ask "what should I do next?", the answer respects what you can actually spend. No more AI suggesting $500 solutions to $50 problems.
Any MCP-capable agent can connect, get tasks, report results, and chain autonomously.
$ phewsh mcp setup # add to Claude Code config
Agent tools: phewsh_start, phewsh_next_task, phewsh_complete_task, phewsh_flag_blocker, phewsh_get_context
An honest report of how phewsh handles your data, traced from the source. Last audited 2026-06-13 against the published CLI.
Your prompts and code stay yours. phewsh runs locally. When it executes through an installed tool (Claude Code, Codex…), it uses that tool's own login — your Claude subscription, your ChatGPT plan. phewsh never sees those credentials and never proxies your conversations through our servers.
API keys are stored owner-only. A bring-your-own key lives in ~/.phewsh/config.json written at filesystem mode 0600 (only your user can read it), in a 0700 directory. A key you set is never written to command history. BYOK requests go directly to the provider — not through phewsh.
The local bridge is loopback-only. phewsh serve binds to 127.0.0.1 / ::1 — never a public interface. Every request is checked against a strict origin allowlist (phewsh.com and localhost); anything else gets a 403. It runs only while you run it.
Telemetry is counts, never content. Sustainability tracking sends the model name, token counts, and an energy estimate — never your prompts or the responses. There is no hidden content collection.
Ambient hooks read nothing private. The Claude Code continuity hook leaves metadata breadcrumbs only (timestamp, project name) and never reads your transcript. The brief it injects is built only from your own .intent/ files and your own decision record.
No lock-in. .intent/ is plain markdown/JSON in your repo. Delete phewsh and it's all still there, readable by any tool.
Found something? Responsible disclosure: hello@phewsh.com.
Where to go next