OpenSwarm is a Rails app that helps you manage multiple AI agents and Git worktrees from one screen without juggling terminals, manual git worktree commands, or context switching.
Running 5-10 parallel agents today requires juggling:
- Worktree lifecycle:
git worktree add -b feat ../repo.feat, thencd, then clean up later - Multiple terminals: one per agent, arranged across tmux panes or OS windows
- Status awareness: which branch is dirty, ahead/behind, or actively running
- Git operations: staging, committing, pushing, and merging spread across sessions
This works for two agents. At five or more, it becomes unmanageable.
OpenSwarm replaces the juggling with a single integrated UI:
- Visual worktree graph with live status
- Embedded terminals per worktree
- Inline staging and diffs
- One-key commits, pushes, and merges
- Launch agents (Claude, OpenCode, or a plain shell) on any node
Everything stays in one screen. No cd. No window switching. No lost context.
OpenSwarm on Rails was built during the Hackeurope hackathon under the "Agentic AI Track". We chose these sub-challenges and implemented them as follows:
- Best "Built on Rails" Project: the entire product is a Rails app with a real-time, keyboard-first UI for managing worktrees, agents, and Git operations in one place.
- Best Use of Zed: we built a Zed-inspired workflow and environment inside the app (fast, keyboard-first, low-friction navigation), without relying on Zed itself.
- Best Use of Miro AI: we implemented PRD export to Miro for collaborative planning and editing, then re-imported those PRDs back into the app to drive worktree/agent execution.
From the repository root:
cd openswarm
bin/setup --skip-server
cd ..
make dev-backendOpen http://localhost:3000.
- Press
ato create a worktree from a base branch - Press
Oto launch an agent, orofor a shell - Press
cto commit,pto push,mto merge into the parent - Press
dto delete a worktree,xto prune stale entries
- Ruby
3.3.10 - Bundler
- Node.js and npm
- Git
make dev-backend: run Rails server + Tailwind watchermake dev: run backend + staticui_scaffold/servermake electron-dev: run backend + Electron shellmake electron-dmg: build macOS.dmgindesktop/dist/
- Rails-app-only docs:
openswarm/README.md
Run from openswarm/:
bin/cibin/ci runs setup plus style and security checks used by this project.
- Port already in use: stop any process on
3000before runningmake dev-backend. - Missing gems or npm packages: rerun
bin/setup --skip-serverinsideopenswarm/. - Repo scan is too broad: set
OPENSWARM_REPO_ROOTSto a small list of absolute paths (use:separator on macOS/Linux). - Electron app does not launch: run
make electron-cleanand thenmake electron-dev.