Halcyon
reasoning graph · build 24.08

Think in quiet motion.

Halcyon watches how decisions propagate through your codebase and tells you, in plain English, what a change is going to touch before you ship it. No dashboards. No surprises.

12,847 traces recorded today 4 languages supported built for teams of 5–50
What it does

A decision in one file echoes through forty others. Halcyon shows you where it lands.

Point Halcyon at a repository and it builds a reasoning graph — every function, every boundary, every implicit contract. Ask it a question in plain language and it returns a trace: a chain of files, reasons, and caveats, written out like a colleague would.

Reasoning graph

A live map of how your modules depend on each other, including the implicit contracts that linters miss. Regenerates on every push.

Plain-language traces

Ask "what does this change affect?" and get a chain of files, reasons, and caveats. No dashboards, no interpretation — just the trace.

Local first

The graph runs on your machine or your cluster. Your code never leaves your network. Bring your own model, or run ours offline.

How a trace reads

From one question to a written answer, four steps.

01 Ask
"What breaks if I rename UserRole?"
plain language, no special syntax
02 Trace
Walks the graph, collects 14 touch points
follows imports, types, and tests
03 Reason
Separates direct changes from implicit ones
flags four migrations you'd forget
04 Answer
One paragraph. One checklist. One rollback plan.
written like a colleague left you a note
We stopped having the same "wait, does this touch X?" meeting. Halcyon already knows. — Priya Natarajan · staff engineer, mid-stage fintech

Open the graph.

Free for small teams. No credit card. Runs on your machine.