DEV Community

Bruno Zilio
Bruno Zilio

Posted on Fully Autonomous

I built a native canvas for working with AI coding agents, in Rust

I just released Superfik, a free, open-source desktop app for working with AI coding agents.

Why

Working with coding agents in a terminal, I kept losing track of what they were doing: sub-agents running somewhere, a browser tab I had to babysit, context I pasted again every session. So I built a canvas for it.

Your prompt sits at the centre. The repository, skills and references you attach flow into it, and the agents' work grows out of it, where you can see it.

What's in it

  • Agents you can watch. Sub-agents appear beside the conversation as they work, and every step can be opened.
  • A browser beside the session. You browse it, and the agent browses it too.
  • Memory and notes. Agents remember what each project taught them.
  • Pull requests. Review, comment and ask the agent about a line without leaving the app.
  • Routines. Agents that work on a schedule and report back; anything they send out waits for your approval.
  • Voice. Speech models that run on your computer; audio never leaves it.
  • Any model. Your Claude or ChatGPT subscription, an Anthropic or OpenAI key, or open models running locally.

Under the hood

  • Rust, winit and wgpu. No Electron, no web views.
  • Every surface is a signed-distance field. Primitives on the same layer are fused with a polynomial smooth-min, which gives the fillets where connectors meet nodes and lets popovers grow from a drop into a panel.
  • The browser is Chromium through CEF in off-screen mode; on macOS each frame is an IOSurface imported as a texture on the app's own wgpu device.
  • App state is a pure reducer that returns effects; the same client builds for wasm32 and runs in a browser tab.
  • Alone, the app talks to a server embedded in it. A team can run its own server on a Linux machine with one command.

Try it

macOS is out now; Windows and Linux builds are on the way.

I'd love feedback, especially on what feels confusing in the first five minutes.

Top comments (0)