Skip to content
edit

An agentic system

an agentic editor, on the gpu.

Edit runs Claude Code, Cursor Agent and Codex out of the box, side by side. It is written in Rust, draws every frame on the GPU, and stays light enough that the interface keeps its fidelity while they work.

Memory, GPU app
78MB
Memory, terminal
1.5MB
Terminal binary
443KB

Release builds on an Apple M3 Max. Details under § 01.

Fig. 01 · The same idea twice: docked windows, an editor and an AI Assistant. Left of the line, the terminal version in a terminal. Right of it, the GPU version, rendered by the app itself.
Fig. 01 · The same idea twice: docked windows, an editor and an AI Assistant. Left of the line, the terminal version in a terminal. Right of it, the GPU version, rendered by the app itself.

§ 01 · Speed

light, fast, faithful.

Edit is written in Rust on GPUI, the framework Zed is built on. Text, panels and terminals are drawn by the graphics card through Metal, so the frame you see is the frame itself. The agents run as their own processes, and the editor keeps up while they stream.

Measured on 26 October 2026, release builds, Apple M3 Max, macOS 27.

GPU app, memory
78 MB
Physical footprint, as Activity Monitor shows it, once settled after start, with three folders, four chats and a 111 KB Rust file open.
GPU app, binary
62.8 MB
One file, with the tree-sitter grammars, the terminal emulator and the icons inside.
Terminal app, memory
1.5 MB
Physical footprint with the same 111 KB file open in a 160 by 50 terminal.
Terminal app, binary
443 KB
453,472 bytes, built with the size settings in the repository.
  • Rust from top to bottom

    The editor, the window manager, the terminal and the agent runner are one Rust program. There is no browser engine underneath and no JavaScript runtime.

  • Drawn by the GPU

    GPUI builds each frame as a scene of glyphs, rectangles and shadows, and Metal draws it on the graphics card.

  • Light on memory

    The app holds little of its own: a rope for each open file, a grid for each terminal. The agents run in their own processes.

§ 02 · Agents

other agents, out of the box.

Claude Code, Cursor Agent and Codex run as the tools you already installed and signed in to. Each folder keeps its own chats. Several work at once and never wait for each other. Edit adds no account and no key.

Agent mode with Claude Code, Ask mode with Cursor Agent, and Agent mode with Grok 4.7.

Fig. 02a · Agent mode. Claude Code raised a limit in settings.rs, wrote a test for it and ran it. The one file it touched waits for review.

Fig. 02b · Ask mode. Cursor Agent reads a project and answers with the code it is talking about. It never writes.

Fig. 02c · Agent mode with another model, in the Turbo Vision theme. Four files changed, each with its own Accept and Reject.

  • Out of the box

    If Claude Code, Cursor Agent or Codex is on the machine, a chat can use it. Agent edits files and runs commands. Ask only reads and answers. Plan writes the steps and leaves the files alone.

  • Every model they offer

    The model menu is grouped by provider like Cursor's: Anthropic, OpenAI, Google, xAI, Moonshot, Z.ai and Cursor's own, with effort levels and Fast.

  • Their skills stay

    A skill installed for Claude Code or Cursor Agent still runs. That includes skills for web design at Awwwards level. Edit does not swap those agents for a chat of its own.

§ 03 · Diffs

every change, reviewable.

You stay on the decision. Before an agent starts, Edit takes a snapshot of the folder into a git repository of its own. When it stops, you see each file it touched and decide, file by file, what stays. Your own .git is never touched.

The AI Assistant after an agent turn: the summary, four changed files with line counts, Accept all, Reject all, and the composer with the Cursor Agent model.
Fig. 03 · The AI Assistant after a Cursor Agent turn, Turbo Vision theme.
  1. 1

    What happened

    The agent's summary, in its own words, under the steps it took.

  2. 2

    Everything it touched

    Every changed file, with lines added and removed. Open a row to read its diff.

  3. 3

    Keep or undo it all

    Accept all keeps the turn. Reject all puts every file back as it was.

  4. 4

    Or one file at a time

    Each row has its own Accept and Reject, and opens the file in the editor.

  5. 5

    The next prompt

    Pick the mode, the agent and the model for the next turn, right where you type.

Under the hood

# before the turn, in Edit's own repository
git add --all && git write-tree   → before
# the agent works
git add --all && git write-tree   → after
git diff --numstat before after   → the list you review

§ 04 · Changes

the whole tree, at once.

This is the working tree, not one chat turn. Every file that differs from the last commit is here, including new files. Open a name to read the diff. Click a line and the file opens there.

The Changes tab in Cursor Dark. Four files differ from the last commit of a sample web app: Program.cs and ShopContext.cs are modified, notes.txt is deleted, and welcome.txt is new. Each diff is open in the one list.
Fig. 04 · The Changes tab, one list for the whole folder. The sample is a small web app, and the diffs are what git reported for it.
main3 files changed +14 −112 files changed +26 −2
M changes.rs src/ Modified +12 −4

@@ −40 +42 @@ fn refresh

40 42 fn refresh(&mut self) {

41 − self.load();

48 50 }

M README.md Modified +2 −1

@@ −1 +1 @@

1 − Edit reads the folder.

D old.log Deleted +0 −6

@@ −1 +0 @@

1 − session started

2 − agent stopped

M site.css Modified +6 −2

@@ −12 +14 @@

12 14 :root {

16 − --accent: blue;

A index.html Added +20 −0

@@ −0 +1 @@

A line opens that file in the editor.

A drawing of the Changes tab. The files are examples. In the app this list is read from git, and a line opens the file there.
  1. 1

    One list

    Changes is in the new tab menu, and File has Show Changes. Shift Command G opens it. The folder name on the bar switches the list when several folders are open.

  2. 2

    Folded until you need it

    A long diff starts closed, and closed files sit against each other. Collapse all and expand all are on the bar, next to the filter.

  3. 3

    Open it where it changed

    A click on a line opens that file in the editor, on that line. A deleted file has nothing to open.

§ 05 · Run

play, and the rest.

The right side of the title bar runs the folder you are editing. It finds .NET apps, Cargo binaries, npm scripts, Go commands and Docker Compose. Play starts its pick in a terminal. The menu beside it lists every other way that folder can run.

Opening the Edit folder, the Run menu on Edit.Web Watch, Play starting dotnet watch, and the page at localhost:5281.
Fig. 05 · The Edit folder, then the Run menu on Edit.Web. Play starts dotnet watch, and Open in Browser loads the page.
  • Play

    The button names the project and the way it runs. For a web app that is Watch, so the app reloads as you edit. The command starts in a terminal tab, and the next press uses that same tab.

  • While it runs

    A dot, Stop and Restart take Play's place. A web app also gets Open in Browser. The dot opens the terminal where the command is running. Stop waits, then ends it.

  • The other commands

    The menu lists Run, Run Release and Watch, plus tests, and EF Core when a project has a database context. Picking an app makes it what Play runs. A migration runs beside it, in its own terminal. Show Terminal and Rescan Projects sit at the bottom.

§ 06 · Workspaces

many folders, one window.

Open every project in one window and give a folder a display name, such as Dreamdwell Web, so you can tell two folders called Web apart. Each folder lists its chats, newest first, above its files.

Workspaces with three folders. The edit folder is open, showing its chats above its files.
Fig. 04 · Three folders, each with its chats above its files. Two of them use display names.
  • Names you choose

    Give a folder a display name. The path stays the same on disk.

  • Find any chat

    Search every chat in every folder from the top of the sidebar. Rename chats to keep them apart.

  • Follows your focus

    Switching to a file makes its folder the active one. New terminals and new chats start there.

§ 07 · One window

terminal, browser, editor.

Everything is a window on one Turbo Vision desktop, all of it visible at once, for the night owls who live in the terminal and keep working. Dock it to an edge, split it, float it, or zoom it. The layout is there again when you come back.

Floating windows, a terminal, the browser inspector, completions, highlighting, and the window keys.
A terminal tab running cargo test inside Edit.

Terminal tabs

Your login shell on a real pseudo terminal, painted by the GPU like the editor. New ones open in the active folder.

Browser tabs

A WebKit page in a tab. Inspect points at an element and attaches it to the chat with its screenshot, HTML and styles.

Rust, C# and .NET

Completions as you type from rust-analyzer, gopls and csharp-ls. Rust and C# show the kind, the signature and each parameter, and Tab accepts.

Two floating windows over the docked layout: floating.rs and a terminal, in Turbo Vision frames.

Floating windows

Any window floats above the docked layout in a Turbo Vision frame, and docks again with a drag.

Highlighting

35 tree-sitter grammars, from Rust and Go to Svelte and SQL, plus Razor, which Edit adds itself, so a .NET page is markup and C# rather than plain text.

Arrange anything

Dock left, right, bottom, center
Window menu
Split right, split below
Window menu
Zoom
Double click a title bar
Move and size, tile, cascade
Window menu

The browser and completion panels are drawn diagrams. Everything else on this page is a screenshot of the app.

§ 08 · Themes

four themes, one window.

Turbo Vision is the default: white and yellow on DOS blue, as in the Borland IDEs. Cursor Dark, Cursor Light and Violet Dark are there for the other days. Glass lets the desktop show through, with a clarity slider. The type, the caret and the selection stay at full strength.

Fig. 06 · One window, four themes. Nothing else changed between the four pictures.
Fig. 06 · One window, four themes. Nothing else changed between the four pictures.

§ 09 · Status bar

the file, at a glance.

The bar along the bottom names the open file, in yellow, and adds Modified when there are unsaved changes. A language server appears there only while it has news, such as rust-analyzer: starting. On the right are the line and column, the language, Files (F4), the AI Assistant (Ctrl+Alt+B), and the controls for the look.

A drawing, not a screenshot. Cursor Dark, with glass on and the curtain down. In the app, Files, the assistant, glass and the curtain are icons. The color scheme shows its name. A moon means the curtain is down, and a sun means it is up.
A drawing, not a screenshot. Cursor Dark, with glass on and the curtain down. In the app, Files, the assistant, glass and the curtain are icons. The color scheme shows its name. A moon means the curtain is down, and a sun means it is up.
  • Color scheme

    The palette button shows the name in use: Turbo Vision, Cursor Dark, Cursor Light or Violet Dark. Its menu checks the current one. The View menu lists the same four.

  • Glass

    On macOS, Cursor Dark lets the desktop show through, blurred by the system. Glass is on unless you have turned it off. An eye on the bar does that, and a slider sets the clarity, each step halving how much the colors cover the desktop. The View menu repeats it as Glass, More Glass and Less Glass. On any other scheme the eye leaves the bar, and that menu item is disabled.

  • Curtain

    The last button is a moon when the curtain is down and a sun when it is up. Down darkens the glass behind the editor, so a bright desktop does not wash the window out. The text, the caret, the syntax colors and the selection stay full strength. The View menu checks Curtain while it is down. Turn glass off and there is nothing behind the editor for the curtain to hide.

Font size and full screen are in the View menu, not on the bar.

§ 10 · Terminal version

still runs in a terminal.

The terminal version is the editor this all started from: a fork of Microsoft Edit with the same Turbo Vision windows. It runs over SSH, in a container or on a server, and the whole program is 443 KB.

The terminal version: the assistant, dragging a window to dock it, zoom, and the menus.

Fig. 07a · The AI Assistant window with the open file attached, next to the editor and the Files window.

Fig. 07b · Dragging a window by its title bar. The outline shows where it will land.

Fig. 07c · Dropped on the bottom edge, the Files window docks along it.

Fig. 07d · F5, or a double click on the title bar, zooms a window to fill the terminal.

Fig. 07e · Menus with their shortcuts, like the DOS editor had.

Workspaces

edit

chats

general coding now

files

workspace.rs

web

chats

homepage

files

notes

chats

draft now

files

Ask Cursor Agent
Claude Opus 5.5
  • Claude Opus 5.5
  • Grok 4.7

A drawing. Open Folder adds a project. F4 opens Workspaces. The model button is there when Cursor Agent is selected.

Keys

F6 · Shift F6
Next and previous window
Ctrl F5
Move and size with the arrow keys
F5
Zoom the window
Alt F3
Close the window
  • Docking by drag

    Drop a window on a screen edge, beside another window, or on top of it to swap the two.

  • 25 languages

    Edit's own highlighter, with definitions from Rust and C# to SQL, YAML and Markdown.

  • Language servers

    Completions from rust-analyzer, gopls, typescript-language-server, pyright and csharp-ls.

  • AI Assistant window

    Claude Code, Cursor Agent and Codex run in the chat, with Agent, Ask and Plan. While one works, the header says so. A sign-in error runs that login on this terminal and then sends the prompt again.

  • Path above the editor

    Each directory in the open file's path opens that folder. The file name copies the full path.

  • Workspaces

    File, then Open Folder, adds a project. Each folder keeps its chats above its files, and several chats can run at once. F4 opens the list. It is this app's own list, so it does not replace the GPU app's.

  • The model, on the prompt

    With Cursor Agent selected, the model button sits on the prompt. The menu lists that agent's models by name. Claude Code and Codex keep their own.

§ 11 · Download

download it soon.

Ready to run builds of both versions are on the way. The downloads will be here.

GPU version

Coming soon

macOS, drawn with Metal

App
62.8 MB
Memory
78 MB
Agents
Claude Code, Cursor Agent, Codex

The agents are not bundled. Edit runs the ones you already have installed.

Terminal version

Coming soon

macOS, Linux and Windows

Binary
443 KB
Memory
1.5 MB
Runs in
Any terminal, over SSH too

One small file. Copy it to a server or a container and run it.

§ 12 · Questions

fair questions.

The short answers.

01Why another editor?

Because the agents are already good. Edit does not replace them. It is the light, fast place they work: Rust, drawn on the GPU, comfortable in Rust, C# and .NET, in a window manager that has been good at juggling windows since the DOS days.

02Does it replace Cursor or Zed?

It runs Cursor Agent. It is not Cursor, and it is not Zed. It has no extensions, no debugger and no remote editing. It is a small, fast place to run the agents you have and review what they did.

03Where are all the changes?

The Changes tab lists every file that differs from the last commit, including new files. The list under a chat is only that turn. Shift Command G opens Changes, and the new tab menu has it too.

04Which agents does it run?

Claude Code, Cursor Agent and Codex, through their own command line tools, out of the box. Each chat picks its agent and model, skills you installed for that agent still apply, and several chats run at once.

05Does Edit send my code anywhere?

Edit itself sends nothing. Your prompt and the files the agent reads go to whichever agent you chose, exactly as when you run that tool in a terminal.

06What does the GPU version run on?

macOS today, drawn with Metal. GPUI also draws on Linux and Windows, and those builds are the next step.

Edit © 2026 Pavel Sich