Everything inside Noml.
A complete tour of the desktop workspace for coding agents. Tabs, review, editor, terminal, git, palette, permissions, and the knobs to tune each one. Deepest with Claude Code; any agent CLI runs in the terminal.
One screen.
Every Claude process.
Hatchery is the machine-wide dashboard for every Claude Code CLI process running on your machine. Background work from any tab surfaces here. Drill into a session, pop back with Esc. Make it your home base and the project tab strip steps aside.
Hide the project tab strip and treat Hatchery as the home base. The title bar puts the dashboard one click away.
Every active Claude Code process, grouped by project. Jump to the tab that's owning a task, or kick off background work from here.
Your workspace. Your rules.
Tabs on top or down a left rail. File explorer docked either side. Land on Hatchery or Generate. Five themes, eight accent colors, forty-plus rebindable actions. Configure the room before you type a word, then keep tweaking as you go.
Flip any switch and the workspace rearranges. Tabs up top or down a left rail, the file tree on either side, a cold start that lands on Generate or Hatchery, and Flow Mode that jumps you to a run the moment it finishes.
Every edit lands as a row.
Each Edit, Write, or MultiEdit from Claude becomes a reviewable row with a side-by-side diff and the reasoning behind it. Gate every change in ask-first mode, or run on auto and read the ledger as the record of everything that landed.
Each row carries the model's rationale next to the change. Decide with context, not from a hex blob.
If another tool touches a file mid-conversation, the row marks itself stale. You confirm before the apply step proceeds.
Sequential edits to the same file chain off the prior computed state, not disk. Mid-stream edits stay consistent until you accept.
Approve one row, a group, or the whole turn. Keyboard shortcuts for both lanes.
If a stale row needs reconciling, an inline three-way diff opens with AI-assisted resolution.
Snapshot file state before a risky run. Revert any time.

CodeMirror 6, the parts that matter.
A real code editor, not a textbox. Multi-language highlighting, syntax themes, and Prettier formatting on demand. Select any block and let Claude rewrite it in place, or preview markdown and images without leaving the editor.
JavaScript, TypeScript, Python, Rust, CSS, HTML, JSON, Markdown, and dozens more.
Select code, hit Ctrl+K, and say what to change. Claude rewrites the selection in place; accept or reject the diff.
Choose how your code is colored, independent of the app theme. Pick one or let it follow the app, with more added in every release.
Flip a file into its rendered form: GitHub-flavored markdown, or images like PNG, SVG, and WebP shown in place of raw bytes. Lazy-loaded, so it stays out of the bundle until used.
A real PTY. Not a wrapper.
xterm.js over a Rust pseudo-terminal. Run claude, codex, gemini, aider, cursor, npm, git, or any interactive CLI. Any agent that ships a CLI runs in the same window as your editor, git, and files. Terminal blocks live per project, so sibling tabs in the same workspace share them.
Full ANSI, real signals, real readline. The same shell you'd open in a separate window.
Terminal output stored against the workspace root. Switch tabs in the same repo and the history follows.
Source control without the side trip.
The whole workflow sits beside your editor and chat. Stage and commit, branch and merge, push and pull, resolve conflicts in place. libgit2 under the hood, gh for pull requests if you've got it installed.

Create, checkout, delete. Ahead and behind counters per branch. Remote tracking visible at a glance.
Generate from the staged diff. Pick Haiku, Sonnet, or Opus. Edit before commit.
Three-way diff with AI-assisted resolution. Abort or continue mid-merge without leaving the dialog.
Add, list, remove worktrees from a dedicated dialog. Multiple working copies of one repo, no shell required.
If gh is on PATH, open PRs and list the open ones for the current branch from inside the app.
Per-path. Click to stage hunks; commit dialog runs in a CodeMirror editor.
Ctrl+K. Global grep. Go to definition.
A command palette for files, actions, and symbols. Workspace-wide find and replace with regex. A right-click file explorer. A scope breadcrumb that tracks where the cursor lives.
Ctrl+K opens a fuzzy launcher across recent files, palette actions, and workspace symbols. Keyboard-first.
Workspace-wide regex search. Case-sensitive, whole-word, file-scoped. Replace single hits, per file, or all.
Search the symbol index by name. Jumps the editor and adds the file to the recent stack.
Nested tree, right-click context menu, real-time filter, dockable to either side of the workspace view.
You decide what hits disk.
Four modes, one toggle. Every row of the matrix is one class of action; every column is a mode. The ledger records every write, regardless of mode.
Bring your own MCP, skills, and prompts.
Configure MCP servers per workspace. Drop in custom skills Claude can invoke. Save prompt templates with selection, file, branch, and cursor variables. Bookmark directories as landmarks Claude can reference inline.
stdio and SSE. Pre-canned configs for the official MCP servers. Toggle per workspace.
Custom scripts and prompts Claude can call. Install, create, edit, delete from the Skills tab.
Reusable prompts with {{selection}}, {{file}}, {{branch}}, {{cursor}} variables. Hotkey-bindable.
Bookmark directories with any custom name. Claude can reference them in chat by that name.
All of that, under 45 MB.
Tauri 2 over a Rust backend with a React 19 frontend. Native window, native menus, native scroll. macOS, Windows, and Linux.
Pick your platform.
The editor, terminal, and git work out of the box. Add the Claude Code CLI on your PATH for the native agent experience; any other agent CLI runs in the terminal. WebView2 ships with Windows 11. macOS build is Apple Silicon only. Linux ships as an x64 AppImage.
