Not an editor with AI added. An editor the agent works through.

Jonna is a complete code editor, written from scratch in Rust and TypeScript rather than forked from another one. It feels like VS Code to you, and it is built so an agent can see and do everything you can.

Three kinds of tools. Each leaves something out.

Editors with AI added

The editor came first and the agent was attached later. It gets a chat panel, a few tools and file access. The debugger, the test runner, the problems list and the browser preview are built for a mouse and a person.

Agent-first tools

The agent is the centre and the editor is a place to review its work. That suits delegation, but editing by hand, debugging and reading code come second, and the agent is usually theirs, not yours.

Terminal agents

Very capable, but blind to the editor. They see files and shell output, not your open tabs, the error under the cursor or the running app.

Jonna takes a different path. Six ideas hold it together.

  1. 01

    The same hands

    Every button, menu item and keybinding runs a typed command from one dispatcher. The agent, your extensions and external agents call exactly the same commands, with the same permission checks and an audit log.

  2. 02

    The same eyes

    The state of everything, from editors and problems to terminals, the debugger, tests, git and the browser page, is a readable ide:// tree. After each edit the agent sees the new errors, so it checks its own work.

  3. 03

    Any agent, any model

    The built-in agent runs on local models or hosted ones. Claude Code, Codex or Gemini CLI can run inside it over ACP, or drive it from outside over MCP. Nothing is locked to one vendor.

  4. 04

    You stay in charge

    Agent edits are a changeset you accept or reject per file or per hunk, with a checkpoint for every turn and an undo that spans files. Outside the chat, AI is opt-in.

  5. 05

    It changes itself

    Extensions are small sandboxed folders: a manifest and a JavaScript file. The agent can write, load, test and install one for you while you watch. Ask for “a plugin that…” and you get one.

  6. 06

    Small and native

    Tauri and Rust instead of Electron: your system's own webview instead of a bundled browser, and the heavy work, like search, the file index, git, terminals and file watching, in Rust.

Familiar on day one. Your habits carry over.

VS Code's keybindings, settings.json, themes and tasks.json work as they are, and VS Code extensions install from Open VSX.

The Jonna editor: the file explorer, a JavaScript file with the agent's changes marked, and the agent's answer and plan beside the code The Jonna editor: the file explorer, a JavaScript file with the agent's changes marked, and the agent's answer and plan beside the code

How it's built. Rust underneath.

Shell
Tauri 2: the system webview (WebView2, WKWebView or WebKitGTK) and a Rust process
Core
Rust services for search, the file index, file watching, terminals, git and the MCP server
Interface
TypeScript with no UI framework: small signals and plain DOM
Editor
Monaco, with VS Code's TextMate grammars and themes, and language servers over LSP
Terminal
xterm.js with shell integration, so you and the agent both see commands and exit codes
Agent
Its own loop with tools, memory and subagents; an MCP server and client; an ACP host for CLI agents
Extensions
Jonna's own run in sandboxed workers with a permission-checked API; VS Code's run in a Node extension host

One native app. Your agent, models and keys.