Blog
- Running Claude Code and Codex side by side
Install both agents in Cydonia, give each its own session, watch them in two panes, and hand them work from one board.
- Hand a kanban column to a coding agent
Make a board, write the cards, say which wait on which, and send a whole column to a session with ▶. The agent works the cards through Cydonia's MCP tools and the board shows where it is.
- Restructuring a GPUI app in Zed's shape
How Cydonia's view layer moved to Zed's Workspace, Pane, Item and ModalLayer, so each view redraws only when what it draws changes, and the rules that keep it that way.
- We ran our desktop app in a browser tab, then took it out
For two weeks, Cydonia's home page ran the real app, a GPUI workspace compiled to WebAssembly over projects held in memory. It worked. It was also far too heavy for a landing page. What it took, and what we kept.
- Use Cydonia's boards from Claude Code outside the app
Point a Claude Code you run in your own terminal at Cydonia's MCP server, and it reads and works the same boards the app's sessions do.
- Drag and drop in GPUI: what dnd-kit, UIKit and Zed agree on
Cydonia's first drag-to-reorder ran its own gesture beside GPUI's, and the two never met. A survey of how other toolkits split the work, and the `drag` module bezel shipped on GPUI's active drag instead.
- A real browser inside a GPUI app, on two platforms out of three
Cydonia's browser tabs are the system webview, WKWebView on macOS and WebView2 on Windows, laid over a window GPUI paints itself. How that works, the tricks it needs, and why Linux has no browser.
- Agents that message each other
Cydonia gives every session it runs three tools for talking to the others: send a message, read turns by reference, search for text. How a message gets signed, and what a reference like #43:5-7 names.
- Scrollspy without a browser
A docs site keeps its table of contents in step with the page in fifteen lines. A GPUI chat transcript took four attempts. What the browser gives away, and what a desktop app has to rebuild.
- Tree-sitter grammars on demand, in wasmtime
Cydonia ships no syntax grammars in its binary. It carries a catalog of 33, downloads one when it is asked for, checks it against a pinned digest, and runs it in wasmtime. How that came together in one pull request, and why the app bundle had to be signed differently for it.
- Giving agents a project's documents over MCP
Cydonia serves a project's articles, boards and sessions as MCP tools on a loopback port. Why there is no token, why write tools are hidden rather than refused, and how an agent outside the app connects.
- `npx pkg@latest` is a different program every launch
An agent entry that runs through npx, bunx or pnpx resolves its package against the registry each time it starts. How Cydonia installs registry agents once, at a pinned version, and what it does with a hand-written entry that floats.
- Telling an agent's answer from its thinking
An ACP agent streams prose, thoughts and tool calls into one turn, and nothing on the wire says which prose is the reply. Cydonia's first rule split each turn at the last tool call or thought. Three weeks later it split turns into runs instead, and later still thoughts folded to one line.