Repository navigation
SeMaps 0.4.0
The biggest release so far: since 0.3.0 the workspace format, the host and almost the whole editor have changed. A workspace in the old format is rewritten by semaps migrate (see docs/ADOPTING.md); semaps check tells you when it is needed.
Highlights
- The host owns the model. The editor and agents work on one shared working model: changes show in every window at once, survive a restart, and the «Changes» panel shows what is unsaved and who made it — human or agent.
- A full MCP server (
semaps mcp, official SDK): read and write projects, entities, relations and texts; view tools (layout, containers, visibility, routing);render_viewlets the agent see a view as a picture; questions to the live code graph (inheritance all the way down, who holds / calls / constructs, places in code). - Graph before grep. The server tells agents to ask the code graph about structure instead of searching text: one call with files and lines instead of many greps — faster and far fewer tokens.
- A live code graph at
/app/#graph: algorithmic layout, grouping and colouring, live updates while you code (watch), nodes copied onto views. - Go extractor (new), next to C# and TypeScript; all three ship in every release archive.
- Contract v5: one dictionary of kinds and relation types (
kinds.json), containers are entities, an entity has realizations in code in several languages, lines on a view are an overlay of the registry. - Editor for architects: draw relations by dragging an arrow or from the context menu; orthogonal routing that keeps lines off blocks, frames and captions and picks the best side itself; a «Line routing» panel to tune it live; smooth dragging on big views.
- Mistakes can be undone for real: an authored entity or relation can be removed (editor, HTTP, MCP
removeon a human's request); the removal waits for Save like any change. - Agents can make a map pass
semaps check:set_textwithfromandmark_translatedmark translations,set_view_axisgives views their own axes.
A measurement: graph vs. text search
Four questions about a 623-file C# project (subclasses two levels down, who holds a context object, where it is constructed, who calls it), two identical Claude Sonnet agents — one with grep and file reads only, one with the SeMaps code graph:
| Text search | Code graph | |
|---|---|---|
| agent tokens | 96.5k | 69.4k (−28%) |
| tool calls | 14 | 2 |
| time | 51 s | 32 s |
Both answered completely; the graph agent got its callers from facts, the text agent partly by inference. One run on one project, not a study; the token counts include each agent's fixed prompt, so the difference in the work itself is larger. The graph is only as fresh as the latest extractor run — keep watch: true or run extraction first.
Notes
- The code graph is proven in real work on C# only; the TypeScript and Go graphs have not been tried on real projects yet.
- Each extractor needs its language's runtime: .NET for C#, Node 24+ for TypeScript, Go for Go.
The full list of changes (in Russian) is in CHANGELOG.md.
Platforms
Proven on Windows. The Linux and macOS (arm64) builds pass the tests in CI on Linux but have not been tried in real work with the editor. There is no installer there: unpack the archive and put semaps with its extractors/ folder on your PATH; on macOS remove the quarantine first (xattr -d com.apple.quarantine semaps), since the binary is not signed.
