pandemonium
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Yet another text editor you don't need. GPU-native, opinionated, and built for conducting coding agents in their own git worktrees.
pandemonium
Yet another text editor you don't need.
There are already plenty of good ones. This one exists because I wanted an
editor shaped exactly like the way I work, and it is quite opinionated about
it. If your workflow looks like mine, you might like it. If it doesn't, Zed,
Neovim and VS Code are all excellent and considerably more finished.
How I work, and therefore how this works
I rarely write code alone anymore. Most days I have a few agents running at
once, each in its own git worktree, across a couple of repositories, and my job
is less typing and more reading what they did, steering them, and deciding
what gets merged. Every editor I tried treated that as a terminal bolted to the
side of the real work. pandemonium treats it as the real work.
- Several projects, one window. Repositories are peers in the same window,
each with its own branch, file tree, language servers and tasks. Panes, tabs
and the palette span all of them. - A session is a worktree you review. Starting an agent cuts a fresh
worktree and branch. Its files, its diff and its conversation are browsable
the same way your own working copy is. You review a session, you don't
babysit a terminal. - Agents speak ACP. Claude Code, Codex, Gemini, GitHub Copilot and Cursor
are driven over the Agent Client Protocol,
confined to their own worktree, asking permission through the editor. - Everything is a pane. Files, diffs, agent sessions and terminals are the
same kind of thing: splittable, tabbable, closable. No bespoke docks. - Vim, properly. Modal editing modelled on Zed's vim mode, driven by a
binding table: motions, text objects, operators, registers,., macros,
visual block, multi-cursor and the ex command line. - Source control that you can actually read. A Source Control sidebar, a
lane-coloured commit graph, and review diffs highlighted with tree-sitter and
semantic tokens. - A debugger in the bottom panel. Breakpoints in the gutter, a call
stack, variables and a console beside Problems and Terminal, over the
Debug Adapter Protocol with gdb, lldb-dap, debugpy or delve. Your existing.vscode/launch.jsonor.zed/debug.jsonis read as it is; F5 starts or
continues. - GPU-native. Rendered with wgpu, windowed with winit, with a UI layer
written from scratch. No web view, no Electron, no UI framework.
Status
Early, moving fast, and built for an audience of one. Things will break,
defaults reflect my preferences, and features appear in the order I need them.
Linux is the daily driver; macOS and Windows build in CI and should work, but
get less love.
Installing
Prebuilt binaries for Linux, macOS and Windows are attached to each
release.
curl -fsSL https://raw.githubusercontent.com/JoakimCarlsson/pandemonium/main/install.sh | sh
irm https://raw.githubusercontent.com/JoakimCarlsson/pandemonium/main/install.ps1 | iex
Set PANDEMONIUM_VERSION to pin a release. The script checks the download
against the release's SHA256SUMS, puts the binary in ~/.local/bin, and adds
a launcher entry on Linux or Pandemonium.app in ~/Applications on macOS.
Building
You need a recent stable Rust toolchain (edition 2024) and a GPU that wgpu is
happy with. Agents are fetched with npx on first run, so Node helps too.
git clone https://github.com/JoakimCarlsson/pandemonium.git
cd pandemonium
make run
Other targets:
make fmt # cargo fmt --all
make lint # cargo clippy --workspace --all-targets -- -D warnings
make install # build this checkout and install it as pandemonium-preview
# (on macOS also as ~/Applications/Pandemonium.app)
make release VERSION=0.2.0 # bump, tag and push; CI builds and publishes
Layout
One crate per layer, each depending only on the ones below it.
| Crate | What it is |
|---|---|
pm-core |
Projects, sessions and worktrees: the domain, knowing nothing of a UI. |
pm-acp |
Agents over the Agent Client Protocol: the process and its protocol. |
pm-gfx |
GPU device, surface, glyph atlas and draw list. The only wgpu code. |
pm-text |
Rope storage, syntax trees and the language-server client. |
pm-dap |
Debug adapters over the Debug Adapter Protocol, and launch scenarios. |
pm-vt |
Terminal emulation: parser, cell grid, scrollback. |
pm-vim |
Modal editing over a pm-text buffer. |
pm-ui |
Element tree, layout, hit testing, focus and input routing. |
pandemonium |
The binary: event loop, window, pane tree and keymap. |
The rules the codebase lives by are in AGENTS.md.
Contributing
Issues, ideas and pull requests are all very welcome. It started as a personal
tool, so if a change heads somewhere I hadn't planned, let's talk it through in
an issue first. And if you'd rather take it in your own direction, forks are
more than welcome too.
License
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found