Hashline editing
Lines are tracked by content hashes. Edits reference LINE:HASH anchors — if the file changed, mismatches are caught and retried automatically.
A minimalist coding agent with hashline-based editing. Supports multiple providers, including local LLMs.

Hashline editing prevents conflicts by tracking content, not line numbers.
nav reads files with hashline-prefixed output. Each line gets a short content hash.
42:a3|const foo = "bar";
43:f1|const baz = 42;Edits reference LINE:HASH anchors instead of reproducing old content. The model says what to change, not what the file looks like.
edit lines 42:a3-43:f1 with:
const foo = "updated";
const baz = 99;If the file changed between read and edit, hashes won't match. The edit is rejected with corrected anchors — the model retries without re-reading the entire file.
Cloud APIs, local Ollama, Azure deployments, or OpenRouter. Auto-detected from model name.
Discuss ideas interactively, save plans, split into tasks, then run them sequentially or pick your own order.
When context gets long, nav summarizes progress and continues in a fresh window. Automatic or manual.