Local work frame for AI coding

Keep onework 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.

pre-release v0.0.4 243 tests zero runtime dependencies Node 22.5+
# 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
Why this exists

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.

Stalled lead modelOne agent keeps circling the same plan or failure mode.
One-model blind spotsArchitecture, security, and test concerns need an outside model's view.
Reset on switchChanging model often means explaining the same intent, risk, and decisions again.
Unverified finishThe last answer still needs build, tests, risk, and human gates before ship.
The loop

Start. Challenge.Switch. Validate.

1

Start

framein start turns the request into a shared task contract before the implementation drifts.

2

Challenge

framein challenge asks a different reviewer role for a bounded objection when the work deserves another view.

3

Switch

framein capsule prepares the next lead from local facts: contract, diff, validation, ADRs, and ledger.

4

Validate

framein verify and ship close the loop with deterministic build/test checks and risk gates.

Familiar surface

Call it like a skill.Store it like project state.

Claude and Gemini slash commands

/fr:* calls the same local engine from the agent session.

Codex project skills

$fr-* exposes the same verbs without deprecated prompt files.

Existing skill packs and personas

Keep your prompt framework. Framein supplies the shared contract, ledger, and gates underneath.

Terminal, CI, and MCP clients

The CLI, JSON output, wrappers, and MCP server all read and write the same local work frame.

Start in a real repo

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
Trust boundary

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.