Keep one work frameacross Claude, Codex,and Gemini.
Start with one agent, challenge it with another, switch when needed, and close the work with validation. Framein keeps a shared task contract, decision trail, risk state, validation results, and model-switch capsule under the workflow you already use.
# Start in the agent you already use.
$ framein start "add Google OAuth"
contract set: preserve email login
lead claude
# Ask a different model for a bounded objection.
$ framein challenge "OAuth callback state in session" --run
reviewer codex
verdict change required
required add nonce/state validation
# Switch when needed; close with validation.
$ framein capsule gemini
next lead prepared from facts:
contract · diff · tests · decisions
$ framein ship
build ok · tests 42/42
risk high: auth/ touched
=> READY WITH HUMAN GATE
Better prompts help.They do not keep the work intact.
Good PRDs, plans, ADRs, and skills help any model do better work. The pain starts when the lead model stalls, another model should challenge the plan, quota or model fit pushes you to switch, or the final answer still needs real validation.
Framein is not a new IDE or an automatic agent team. It keeps one local work frame under the Claude, Codex, Gemini, and skill workflows you already use.
Start. Challenge.Switch. Validate.
Start
framein start turns the request into a shared task contract before the implementation drifts.
Challenge
framein challenge asks a different reviewer role for a bounded objection when the work deserves another view.
Switch
framein capsule prepares the next lead from local facts: contract, diff, validation, ADRs, and ledger.
Validate
framein verify and ship close the loop with deterministic build/test checks and risk gates.
Call it like a skill.Store it like project state.
/fr:* calls the same local engine from the agent session.
$fr-* exposes the same verbs without deprecated prompt files.
Keep your prompt framework. Framein supplies the shared contract, ledger, and gates underneath.
The CLI, JSON output, wrappers, and MCP server all read and write the same local work frame.
Install once.Keep the frame under your agents.
Public npm is not live yet. The commands below show the smallest manual loop; in day-to-day use, agents can call the same work-frame verbs through /fr:* or $fr-*.
gh release download v0.0.4 -R jahoku/framein -p "*.tgz"
npm i -g ./framein-0.0.4.tgz
cd your-project
framein init
framein integrations install all --write
framein start "complete the smallest safe change"
# when another model should review or continue
framein challenge "review the plan before implementation" --run
framein capsule codex
framein verify
framein ship
Local first.No credential relay.
Local work frame
Task contract, ADRs, memory, ledger, validation results, and write locks live in your repo. The SQLite store is a cache; the JSON snapshot is git-friendly.
No proxy layer
Framein does not collect provider credentials, pool subscriptions, relay MCP tools, or screen-scrape terminal I/O (TTY). It calls official CLIs locally when you ask it to.
