Build your agent once. Carry it everywhere.

Packwright compiles one agent definition — rules, memory, skills, workspace — into native packs for Codex, Claude Code, and Cursor. When you migrate, its memory, workspace, knowledge, and sources move with it.

Local-first. Zero telemetry. Packwright itself makes no network requests. Your coding runtime's data policy still applies.

Start with what you need

Three agent presets. Make each one your own.

Packwright covers three common starting points. Customize responsibilities, capabilities, voice, boundaries, and emotional feedback—then answer a few simple questions to create your agent.

Code

Expert engineer: Builds, reviews, debugs, tests, and ships technical work.

Work

Versatile assistant: Plans projects, drafts deliverables, clarifies decisions, and keeps execution moving.

Companion

Personal secretary: Supports daily routines, life decisions, travel planning, and emotional support.

Need something more specific? Describe your own agent, or use packwright adopt to inventory and adapt an existing agent for migration.

Why not just prompts?

Every AI coding tool wants its own instruction format. Packwright compiles one agent definition into native packs instead:

agent definition persona memory contract skills workspace Packwright Codex AGENTS.md · .agents/skills Claude Code CLAUDE.md · .claude/skills Cursor .cursor/rules/*.mdc

Portable

One agent definition projects into a native pack for each runtime.

Checkable

score grades every pack — the rules are in the repo.

Repairable

doctor --fix repairs drift without touching memory.

Drive it your way

Terminal person? Drive it by hand. Not? Hand one prompt to your coding agent and just talk.

with your agent
Move my agent from Claude Code to Codex.
Preview first — carrying memory/, workspace/, knowledge/, and sources/. Excluded: CLAUDE.md and Claude Code-only files. Proceed?
Go.
Done — project/nova-codex · installed score 100.0.

Paste one prompt into Claude Code, Codex, or Cursor: USE_WITH_YOUR_AGENT.md

by hand
packwright draft-character # describe your own packwright adopt # inventory an existing agent packwright build # compile a native pack packwright migrate # move it, state intact

Eight public commands, plain files, no daemon. Quickstart ↓

Demo path · Claude Code → Codex

Move a working agent. Carry its working state.

migrate --dry-run reports what the destination runtime can't carry — without writing anything.

Claude Code target CLAUDE.md .claude/** memory/ · knowledge/ workspace/ · sources/ runtime-only · reported first portable state Codex target AGENTS.md memory/ · knowledge/ workspace/ · sources/ native files · hashes verified
previewpackwright migrate project/nova-claude --to codex --target project/nova-codex --dry-run

See the full carry/exclude report. Nothing is written.

migratepackwright migrate project/nova-claude --to codex --target project/nova-codex --yes

memory/, workspace/, knowledge/, and sources/ carry with hash verification.

verifypackwright doctor project/nova-codex
packwright score project/nova-codex

The installed destination is checked and graded. Receipts included.

Choose your runtime. Get started.

Install the current release, choose a preset and name, then build a native target.

python -m pip install packwright==0.1.0
packwright init --template code --name Nova -o work/nova
packwright build work/nova --adapter claude-code -o pack/nova-claude
packwright install pack/nova-claude --adapter claude-code --target project/nova-claude