hang4r was never supposed to be an IDE. The pitch is an agents window: chat tiles, worktrees, diffs. But a strange thing happens when agents write most of the code — your job compresses into reading it. And the moment reviewing became the job, every classic IDE feature re-justified itself, one review pain at a time. Nobody planned an editor. One accreted.
This post is a tour of what grew, and why each piece exists. The pattern to watch: none of it is for writing code. All of it is for verifying someone else's.
Getting to the code the agent is talking about
An agent's summary says it changed sessionManager.ts:412. The distance
between reading that claim and looking at that line is review friction, so it kept
shrinking:
- Every file path in the conversation is a link. Paths in tool calls, paths in prose, even paths that live in a different session's worktree — click, and the file opens (read-only when it isn't yours).
-
⌘P fuzzy finder, with
file.ts:42support. Paste an agent's reference straight in, land on the line. Exact matches rank first, because when you paste a full path you mean that path. - Alt+click go-to-definition, Cursor-style, with the underline on hover — because "where is this function actually defined" is the first question every diff raises.
An editor that tells the truth about types
The editor is Monaco — the VS Code editor component — but embedding Monaco gets you
syntax colors, not judgment. The judgment came from feeding it properly: hang4r hands
the TypeScript worker your project's tsconfig path aliases, so hovering
an import shows the real type instead of any. In a big repo that's the
difference between IntelliSense and decoration. Reviewing an agent's refactor with
live types under your cursor is a different activity than squinting at a diff.
Find, everywhere, consistently
⌘F works where you are: in the conversation (yes, you can search the transcript), in markdown previews, and in the editor — where it grows into full find & replace. One find bar, one set of keystrokes, whichever pane has focus. It sounds like table stakes until you've tried to locate "where did the agent mention the migration" in a three-hour session by scrolling.
Rendering what agents actually produce
Agents don't just emit TypeScript. They emit markdown reports, mermaid diagrams, CSVs, screenshots. hang4r renders each one as the thing it is:
- Markdown preview with mermaid diagrams rendered live, click to enlarge.
- CSV opens as a table, not a wall of commas — and the diff view understands that too.
- Attachments render as cards with click-to-preview, including files outside the worktree.
- A syntax palette tuned for reading — the same token colors across editor, diffs, and fenced code blocks in chat, so code looks like itself everywhere.
Even the embedded browser joined in: its address bar is an omnibox, so "go check the docs for that API" is a keystroke, not an app switch.
The pattern
Each of these shipped in its own small release, usually days after the pain that demanded it. That's the honest way an agent-era IDE gets built: not by cloning the feature matrix of editors designed for typing, but by asking, every time a review stalls, what would have made that faster? — and shipping exactly that. The conversation is still the center of hang4r. The IDE around it is scar tissue, in the best sense: it grew exactly where the friction was.