Your coding agent is fast. Make it reliable.

Local-first reliability for AI coding agents GitHub / Docs 0.1
Flat type is the agent alone. The ink is EDIFY.
New · edify-agents-cli 0.2.0 is on PyPI · pip install edify-agents-cli →

EDIFY gives Claude Code, Codex, Cursor and other coding agents the right codebase context, a precise implementation plan, and independent verification for every change.

Local-first · No telemetry · Works with your existing coding agent
the 60-second path
pip install edify-agents-cli
cd your-repository
edify init --yes
reading every file, building the map
stack fastapi, python
graph 21 nodes · 28 edges · 5 files
conventions scraped from config files · zero model calls
skills 7 installed · 5 did not match this stack
commands 5 installed under .edify/commands/
CLAUDE.md written
governance 33 files recorded · origin, licence, hash
Next: /spec — write the spec before anything else.
real output · edify-agents-cli 0.2.0 · a 5-file FastAPI sample repono model was called
edify graph where is_expired
→ src/auth/clock.py:6 symbol is_expired
A question, answered from the map. Not a new chatbot.
Skip past the film

AI changes are fast to produce. They are still expensive to trust.

Not from lack of intelligence. From three things that happen on every large codebase.
lost map

Every session starts blind.

The agent explores the repo again and re-derives the same structure, slightly differently each time.

drift

Decisions, silently re-made.

The same task, done in parts, in different ways. Each session reinterprets the work.

looks right

Passes a glance. Is wrong.

It breaks an intent, a boundary, a version, or a dependency nobody wrote down.

Think hard once. Then build without thinking.

slow · strongest model · ends at a human
fast · cheap · ends at evidence
brief
your words
a paragraph, not a prompt
/spec
what and why
specs/<feature>/spec.md
/plan
exact versions
plan.md
/tasks
files and line ranges
tasks.md
/build
tests first, red to green
your test runner
/verify
never the session that built
verification.md
Every step ends in a file in your repository, so the next session reads the decision instead of re-making it.

A map extracted from your code. Not invented by another model.

edify graphreal output · edify 0.1.0 · 5-file sample repo
edify graph where is_expired
→ src/auth/clock.py:6 symbol is_expired
edify graph dependents is_expired
→ src/auth/session.py:3 symbol create_session
edify graph references create_session
→ src/api.py:7 symbol login
→ src/api.py:11 symbol refresh
# never written by a model. a missing symbol is a visible gap.
a rebuild over unchanged source is byte-identicalno model was called
5files read
sample repo
18nodes
nodes.tsv
21edges
edges.tsv
0model calls
edify init

Define correct before implementation. Verify independently at the end.

edify checkreal output
edify check
specs/orders/plan.md:70: error: [plan-decision-no-version]
D-2 names no exact version
`2.3`, not `^2.3` and not `latest`
specs/orders/plan.md:152: warn: [plan-seed-no-range]
context seed `src/auth.py` has no line range
1 error · 1 warning · 0 notes
# nothing blocks. --exit-code is how you make it a gate you own.
01Failing tests firstEvery spec assertion fails before core logic exists.
02The builder does not grade itself/verify runs in a session that wrote no code.
03Re-runnable, foreverAnyone can re-run /verify, six months later.
04Your gate, your CIedify check --exit-code fails a build only because you asked.

Your code stays your code.

There is no telemetry. Not anonymous, not aggregate, not opt-out.
# check it yourself; CI enforces this on every push
grep -rnE '(urlopen|requests\.|httpx\.|socket\.socket)' src/
# exactly two commands open a socket, both by your hand:
edify upgrade
edify self update
docs/privacy.md
EDIFY
edify-agents-cli 0.2.0 · local-first · no telemetry
pip install edify-agents-cli · cd your-repository · edify init --yes
Works with your agent
01.claude/commands/

Claude Code

Works with your existing agent. The five commands appear where Claude Code already looks for them.

/spec → /verify
02.codex/prompts/

OpenAI Codex

Same workflow, different runtime. One methodology, a thin pointer in Codex's own directory.

AGENTS.md
03.cursor/commands/

Cursor

EDIFY adds structure around the agent. It does not wrap it, host a model, or route between providers.

.cursor/rules/edify.mdc
04.gemini/commands/

Gemini CLI

Agent-agnostic workflow. The methodology stays in one place; each runtime gets its own front door.

GEMINI.md
05.github/prompts/

GitHub Copilot

Use the agent you already pay for. EDIFY is Markdown files and a CLI, nothing to host.

copilot-instructions.md
06.windsurf/workflows/

Windsurf · AGENTS.md

Broad compatibility. One edify init new . sets a folder up for every runtime at once.

AGENTS.md
Teams · specified

One repository, one goal. Many hands.

Five people with three kinds of agent always have session boundaries. EDIFY will be the shared brain of a team: the goal, the task board, a journal of how each person and agent did the work, and the playbooks distilled from it, as plain files in your repository, synced by git.

edify team status
specified · not built yet · the build is next
Editions

Free is the full product. Teams add a licence.

MIT · no account
Public edition
Freeedify-agents-cli
Every command, every graph query, every check
Any graph size, any number of projects
One server in the registry, the only cap
By licence
Team edition
Licenceedify-agents-teams
The team brain, edify team, and unlimited servers
partner licences are free for U of T design teams and researchers
No payment and no price: a licence is issued on request
The licence is a signed token verified locally. No activation server, no phone-home, no payment.
Try it

Run EDIFY on one real task.

Install it, point it at a repository you actually ship, and run one change through the five commands. Then tell us what broke.

FAQ

The questions people ask first.

Q1Is this another coding agent?+

No. EDIFY does not host a model, wrap an agent runtime, or route between providers. It gives the agent you already use better context, an explicit plan, and independent verification. Cancel your agent subscription and EDIFY does nothing at all.

Q2How is it different from Spec Kit?+

Spec Kit is the closest free alternative and a good tool. The differences: a codebase graph extracted mechanically, never by a model; verification-first builds, with failing tests before core logic and a /verify session that wrote no code; and agent-agnostic by construction.

The honest answer to "which is better" is the benchmark, which has not finished running.

Q3Does it send my code anywhere?+

No. There is no telemetry of any kind. Only edify upgrade and edify self update open a socket, both by your explicit action. Your agent still talks to its own vendor; EDIFY is not in that path.

Q4Is it worth it for a small project?+

No, and we would rather say so. A frontier model in auto mode is already excellent on a small codebase. The value starts where the repository stops fitting in the context window.

Q5Is it open source?+

It is source-available under the Functional Source License (FSL-1.1-Apache-2.0), free for any use except building a competing product. Every released version becomes Apache 2.0 two years after release.