Sworm - the buggiest ADE
  • Rust 47.4%
  • TypeScript 26.1%
  • Svelte 22%
  • Nix 3.6%
  • CSS 0.5%
  • Other 0.3%
Find a file
Chris Toph 4bdc40137e
Some checks failed
Linux release / version (push) Successful in 2s
Linux release / Test workspace (push) Failing after 3s
Linux release / Debian (amd64) (push) Has been skipped
Linux release / Debian (arm64) (push) Has been skipped
Linux release / Assemble and release (push) Has been skipped
feat(remote): guard local-only clipboard, dnd, and system actions for remote workspaces
- Percent-encode file clipboard URIs and handle remote paste restrictions.
- Disable drag-and-drop of OS files into remote file tree and terminal.
- Hide reveal in file manager and folder settings file for remote workspaces.
- Deduplicate remote path parsing using splitRemotePath utility.
2026-09-15 17:44:49 -04:00
.githooks refactor(core): extract reusable sworm-core and sworm-protocol crates 2026-09-09 12:02:44 -04:00
.github/workflows refactor(nix): modularize packaging and build definitions 2026-09-11 01:05:14 -04:00
.omp chore: migrate agent configuration and skills to .omp 2026-09-09 12:09:13 -04:00
.sworm feat(tasks): support tasks.jsonc format with comments and legacy fallback 2026-09-11 12:23:19 -04:00
nix refactor(nix): modularize packaging and build definitions 2026-09-11 01:05:14 -04:00
src feat(remote): guard local-only clipboard, dnd, and system actions for remote workspaces 2026-09-15 17:44:49 -04:00
src-crates feat: support remote workspaces, remote lsp, and file conflict detection 2026-09-12 14:50:33 -04:00
src-tauri feat(remote): guard local-only clipboard, dnd, and system actions for remote workspaces 2026-09-15 17:44:49 -04:00
static feat(tasks): support tasks.jsonc format with comments and legacy fallback 2026-09-11 12:23:19 -04:00
.gitattributes feat(providers): add Fresh and Terminal session types, bundle Nerd Fonts 2026-04-11 21:18:52 -04:00
.gitignore feat(tasks): support tasks.jsonc format with comments and legacy fallback 2026-09-11 12:23:19 -04:00
.mcp.json init: repo initial structure and configuration 2026-04-10 15:30:23 -04:00
.prettierignore chore: migrate agent configuration and skills to .omp 2026-09-09 12:09:13 -04:00
.prettierrc init: repo initial structure and configuration 2026-04-10 15:30:23 -04:00
AGENTS.md init: repo initial structure and configuration 2026-04-10 15:30:23 -04:00
bun.lock feat(markdown): migrate to unified pipeline and improve file preview 2026-09-05 23:14:49 -04:00
bun.nix feat(markdown): migrate to unified pipeline and improve file preview 2026-09-05 23:14:49 -04:00
Cargo.lock feat(remote): guard local-only clipboard, dnd, and system actions for remote workspaces 2026-09-15 17:44:49 -04:00
Cargo.toml feat(remote): add remote server daemon and workspace router 2026-09-10 16:43:01 -04:00
COMMITS.md feat: file explorer, markdown editor, and non-repo support 2026-04-15 03:01:29 -04:00
flake.lock chore: flake.lock update 2026-09-11 12:43:07 -04:00
flake.nix refactor(nix): modularize packaging and build definitions 2026-09-11 01:05:14 -04:00
LICENSE docs: update README 2026-09-05 16:37:54 -04:00
package.json feat(markdown): migrate to unified pipeline and improve file preview 2026-09-05 23:14:49 -04:00
README.md feat(git): improve working-tree watcher resilience and freshness handling 2026-09-06 00:30:14 -04:00
svelte.config.js chore: formatting pass 2026-04-12 18:01:28 -04:00
TODO.md refactor(terminal): simplify write pipeline and reduce scrollback 2026-09-03 22:42:18 -04:00
tsconfig.json feat: initial ADE implementation 2026-04-10 19:39:23 -04:00
vite.config.ts feat(markdown): migrate to unified pipeline and improve file preview 2026-09-05 23:14:49 -04:00

Sworm

A Linux desktop workspace for coding-agent CLIs.

Keep using Claude Code, Codex, OMP, or Antigravity in the terminal. Sworm puts a file editor, Git diffs, and local issues alongside them, so you can follow the work and review changes without bouncing between separate apps.

Tabs can belong to different repositories. Switch tabs, and the file tree and Git sidebar follow.

Sworm is a passion project in active development, built around a simple idea: keep the agent's own interface, and make the work around it easier.

Sworm in action: switching tabs, editing files, reviewing diffs, and launching agents

Try it

With Nix and flakes enabled:

nix run github:tophc7/Sworm

Install and authenticate whichever agent CLI you want to use separately. Sworm detects supported installed agents; you can also open a regular terminal using your login shell.

Install on Debian or Arch

Debian

Download the .deb for your architecture from GitHub Releases, then install:

sudo apt install ./sworm_*_$(dpkg --print-architecture).deb

Available for Debian 12 on amd64 and arm64. To update, install a newer release with the same command.

Arch

Download sworm-bin-<commit>.tar.gz from GitHub Releases into an empty directory, then unpack and install:

Using yay:

tar -xf sworm-bin-*.tar.gz
yay -Bi .

Using makepkg:

sudo pacman -S --needed base-devel
tar -xf sworm-bin-*.tar.gz
makepkg -si

Supports x86_64 and aarch64.

Why I built Sworm

I've always liked VS Code's straightforward workflow. I was much less happy with it's use of Electron, especially on Wayland, and wanted something that felt familiar without relying on it.

As coding agents became part of my daily work, I found I really only needed a file tree, Git diffs, an editor, and a terminal. I wasn't using any of the rest of the "IDE" or its extensions anymore; but VS Code's workflow was still the only that worked for me.

Sworm grew out of that: a workspace for the parts I actually use when working with agents. It's evolved into a tab-driven workflow of its own, while keeping enough familiarity that VS Code users should feel at home.

What you can do

Keep agents and repositories in reach

Run agent sessions and ordinary terminals in tabs, with each tab tied to its folder. The sidebar follows the selected tab, and a folder stays open until its last tab closes. Open multiple windows and drag tabs between them.

The home dashboard reads local Claude Code, Codex, and OMP histories to show projects with a seven-day activity heatmap, so you can find where you left off.

📷 See the dashboard and an agent workspace

Project dashboard with seven-day agent activity

An OMP session beside Sworm's Git changes and commit graph

Edit and review the work

Browse files, edit code, and review changes before committing:

  • Side-by-side or unified Git diffs, with adjustable text size and word wrap.
  • Separate staged and working changes, per-file change counts, and commit composition.
  • A Git graph for browsing commits, branches, and merges.
  • Monaco code editing, plus Shiki highlighting for Nix, Svelte, and Fish.
  • Markdown editing with a live preview styled to match GitHub as closely as possible.
  • A file tree with filtering, Git markers, and drag-and-drop.
📷 See Git diffs, the code editor, Markdown preview, and command palette

Sworm showing a split commit diff beside the file changes and Git graph

Code editing in Sworm

Markdown source and live preview in Sworm

Workbench command palette

Use Ctrl+Shift+P for workbench commands or Ctrl+P to find files. The command palette also has modes for editor commands (>), runnable tasks (!), and files (/). Shortcuts are customizable.

Use your project's Nix environment

Sworm detects flake.nix, shell.nix, and default.nix. Select and evaluate an environment from the status bar; once ready, it is used for new terminals, agent sessions, and runnable tasks. Without a ready Nix environment, sessions use the host environment.

The status bar shows the current folder, Git branch, Nix environment status, and live session count.

📷 See a terminal session

Terminal session with the project environment status visible

Keep local tasks alongside the code

Track issues with priorities, group them into epics, and see progress in the sidebar. Agents can query, create, and update issues through a local socket API rather than editing the database directly.

📷 See the session launcher and issues sidebar

Agent session launcher beside the local issues sidebar

Worth knowing

  • Active development, Linux-first. Expect rough edges and changes as the project grows. I do daily-drive it however, so it's stable enough.
  • Sessions in the same folder share its working tree. Tabs do not create isolated worktrees.
  • Your agent is still your agent. Sworm runs the CLI itself; model information and other output inside its terminal come from that CLI.

Development

Nix provides the development toolchain and Linux desktop dependencies:

git clone https://github.com/tophc7/Sworm.git
cd Sworm
nix develop
bun install
bun run app:dev

Build and run the Nix package from the checkout:

nix build
nix run .

Sworm uses Tauri v2 and Rust for the desktop runtime, with the system Git CLI and SQLite. The interface is built with Svelte 5, SvelteKit, and Tailwind CSS v4; editing uses Monaco and Shiki, and terminals use xterm.js. Nix defines the development environment and packaging.

Feedback

If you try Sworm, I'd like to hear what works for you and what gets in the way. Open an issue with bugs, ideas, or how you use coding agents.

Credits

  • Emdash was an early architectural inspiration for Sworm's agent-focused workspace.
  • VS Code shaped the workflow and UI familiarity I wanted to keep. Sworm also uses Microsoft's Monaco Editor, the editor behind VS Code.

License

AGPL-3.0-or-later