local-first · open source · phase 7

One profile.
Every agent.
No cloud. No account.

Compile a single reviewable ai-profile.yaml into setup files for Tabnine, Codex, and Claude. Diff before every write. Doctor before every commit. All on your machine.

$ npx agent-profile init
Open local app →
~/repos/svelte-java-playwright
4c8a11e0
01 · source
ai-profile.yaml example · 17 lines
name:svelte-java-playwright
stack:[ts, java, playwright]
targets:[tabnine, codex, claude]
safety:guarded
skills:[sdd, tdd, review]
02 · compile
example terminal session
$npx agent-profile compile
→ resolving 3 targets
→ generating 11 artifacts
✓ compiled in 1.2s
03 · artifacts
tabnine example · 4 files
AGENTS.md
.tabnine/guidelines/10-sdd-workflow.md
.tabnine/guidelines/20-tdd-workflow.md
.tabnine/mcp_servers.json
codex example · 3 files
AGENTS.md
.codex/config.toml
.agents/skills/sdd-change/SKILL.md
claude example · 4 files
CLAUDE.md
.claude/skills/sdd-change/SKILL.md
.claude/skills/tdd-change/SKILL.md
.claude/skills/final-review/SKILL.md
no source upload no hosted gateway no telemetry no account required deterministic output diff-before-write
the problem · the fix

Three agents. Three setups. One source of drift.

Hand-edited AGENTS.md. Stale CLAUDE.md. A copy-pasted skill that diverged six weeks ago. Each agent has its own conventions; keeping them in sync by hand is where consistency goes to die.

before

Six files. Three opinions.
Zero source of truth.

×AGENTS.mdedited 3w ago
×CLAUDE.mdedited yesterday
×.tabnine/guidelines/*missing
×.codex/config.tomlstale
×.claude/skills/*copy-paste
×api key in CLAUDE.mdaccidental
compile
after

One ai-profile.yaml
Eleven generated artifacts.

AGENTS.mdgenerated
CLAUDE.mdgenerated
.tabnine/guidelines/*generated
.codex/config.tomlgenerated
.claude/skills/*generated
doctor + lockfileautomated
five commands · five minutes

From `npx init` to three agents in sync.

The whole product is five commands. No dashboard, no workspace, no SSO popup. Click a step to see what it does.

$ npx agent-profile init
-> scanning .
-> found package.json · pom.xml · playwright.config.ts
profile svelte-java-playwright
wrote ai-profile.yaml
wrote ai-profile.lock
next: npx agent-profile compile
supported today

Three targets. One source.

The MVP supports the three coding agents most teams actually run. The matrix in the docs is honest about where partial means partial.

T

Tabnine

supported
Project guidelines, workflow skills, and local MCP config - all generated to .tabnine/.
· AGENTS.md · .tabnine/guidelines/*.md · .tabnine/mcp_servers.json
C

Codex

supported
AGENTS.md plus .codex/config.toml driven by your single profile - including skills and safety defaults.
· AGENTS.md · .codex/config.toml · .agents/skills/*/SKILL.md

Claude

supported
CLAUDE.md and a skill scaffold in .claude/skills/ - kept in sync, hashed against the profile lockfile.
· CLAUDE.md · .claude/skills/*/SKILL.md
later · Cursor · Copilot · Aider · others
runtime defaults

Four modes. You pick the leash.

The profile sets defaults. The agent client owns the runtime. Doctor flags anywhere we can't verify a mode will actually be enforced - never silent confidence.

guarded
Conservative. Diff before every write. The default for new profiles.
recommended for shared repos
balanced
Generated writes auto-applied; manual files protected by drift detection.
solo projects, mature setups
autonomous
Sandboxed automation only. Doctor blocks unsafe commands before they run.
CI · isolated agents
plan-only
No writes. Output a plan you execute by hand. The most paranoid setting.
audited environments
where this is going

Honest about now, later, and maybe never.

Three columns. No "coming Q3" smoke. If something is on the right column, treat it as a research question, not a promise.

phase 7 · now
Tabnine · Codex · Claudethree targets, supported
AGENTS.md / CLAUDE.mdcanonical project instructions
Workflow skillssdd · tdd · final-review
Doctor + lockfiledeterministic verification
Local MCP configconfig-only, no auto-install
later · roadmap
Cursor · Copilot · Aideradditional targets
Hosted MCP gatewayremote transport
Hooks & subagentsper-target wiring
Plugin scaffoldsextension points
maybe · open questions
Team policy bundlesunclear demand
Org-level governancescope creep risk
Custom rule packsneeds strong API first
agent-profile open source · Apache-2.0 github ↗ docs ↗ changelog made for developers who want to know what their tools are doing.