BlackHoles

BlackHoles

Open-source macOS workspace that runs Claude, Codex, Gemini and OpenCode agents in parallel worktrees

Gallery

About BlackHoles

BlackHoles is a macOS desktop workspace for building software with coding agents. It describes itself as the command center for AI coding and the agent-native IDE for building in parallel, and the shape of it is simple. A project holds several Git repositories, each task gets its own branch and worktree, and agents work inside those tasks with native terminals, an editor and diffs alongside them. The problem it solves is what happens when you run more than one agent at once. Each needs its own checkout so they don't trample each other's changes, and keeping that straight by hand across a frontend, an API and a services repo gets old fast.

You create a project and connect the repositories that belong together without merging them. Your frontend, API and services stay in separate repos while sharing context inside the project. Creating a task spins up an isolated Git worktree for each repository it touches, so one agent can work on a feature across repos on its own branch while another agent does the same on a different task, and neither sees the other's half-finished work. Inside a task you get a file explorer, a Monaco editor, per repository diffs, Git integration and local terminals with tabs, splits, scrollback and session restore. Project and task notes sync to Markdown files so agents can read them as context rather than you re-explaining the plan in every chat.

On the agent side it talks to Claude through the Claude Agent SDK, to Codex over JSON-RPC, to Gemini through its CLI using ACP, and to OpenCode through a local server, and it can open Antigravity terminals. Agents can be global, scoped to a project or scoped to a task, and their chats persist so you can come back to a thread tomorrow. Everything is local-first. Repositories and credentials remain under your control on your own machine. Because each agent is driven through its own official SDK, CLI or protocol rather than a scraped interface, model and tool updates come from the providers, and BlackHoles stays a workspace around them rather than a replacement for them.

The notes system is a small feature with outsized effect. Project and task notes are ordinary Markdown on disk, synced by the app, so an agent starting a task can read the plan, the constraints and the decisions so far instead of relying on a chat transcript. That also gives you a way to hand work between agents. One drafts the approach in the task notes, you edit it, and another picks it up in a fresh worktree with the same context.

A typical day with it might start by creating a task for a feature that touches the API and the web app. BlackHoles creates worktrees in both repos, you write the goal in the task notes, and you hand it to Claude. While that runs you open a second task for a bug in the services repo and give it to Codex. Each agent works on its own branch with its own terminal, you review the per repository diffs as they land, and when a task is done you merge its branch. The notes and chats stay with the task, so picking it up a week later doesn't mean reconstructing what happened.

It's for developers who already use two or more coding agents and want to run them side by side, and for teams whose product spans several repositories. If your current workflow involves opening three terminals, creating worktrees by hand and copying context between agents, this is the tool that turns that into one window. It also suits people who like a real terminal and a real editor next to the agent rather than a chat panel bolted onto a browser.

Most agent front ends manage one conversation over one repo. BlackHoles is organised around parallel tasks and multiple repos from the start, with worktrees as the unit of isolation rather than an afterthought. Under the hood the native terminal is built on GPUI, Alacritty and a PTY layer, the backend is Rust holding application state and services, the UI is React rendered in WebKit, an agent bridge runs as a Node.js process managing the provider adapters, and data lives in SQLite, JSON files and the worktrees themselves. It behaves like a desktop app rather than a wrapped web page.

It's early. The current release is 0.1.7, it's macOS only and needs macOS 13 or later, and downloads come from GitHub. Building from source needs Node.js 20.19 or newer, Git and the Rust toolchain. It's independently maintained, contributions require a Developer Certificate of Origin sign-off, and you still need your own accounts and CLIs for each agent you want to use. Expect rough edges and fast changes for a while.

BlackHoles is open source under the MPL-2.0 license with the source on GitHub, and there's no paid tier or hosted service. The developer publishes andy@andygeek.com on the site for contact.

Key Features

  • Multi-repo projects without merging codebases
  • Isolated Git worktree per task and repo
  • Claude, Codex, Gemini and OpenCode adapters
  • Native terminals with tabs, splits and restore
  • Monaco editor with per repository diffs
  • Task notes synced to Markdown for agents

Pros & Cons

What we like

  • Runs several agents in parallel without collisions
  • Local-first, credentials stay on your machine
  • Real terminal and editor beside the agent
  • Open source under MPL-2.0

Room for improvement

  • macOS only, currently version 0.1.7
  • Needs your own agent accounts and CLIs
  • Single independent maintainer
  • Building from source needs Node and Rust

Frequently Asked Questions

What is BlackHoles?
BlackHoles is an open-source macOS workspace for coding agents. It groups several Git repositories into a project, gives each task its own branch and worktree, and runs Claude, Codex, Gemini or OpenCode inside those tasks with native terminals, an editor and diffs.
Is BlackHoles free?
Yes. It's open source under the MPL-2.0 license, downloadable from GitHub, with no paid tier. You'll still need your own accounts for the agents it drives.
Which coding agents does it support?
Claude through the Claude Agent SDK, Codex over JSON-RPC, Gemini through its CLI with ACP, OpenCode through a local server, and Antigravity terminals.
Does it send my code to its own servers?
The app is local-first. Repositories and credentials remain under your control on your machine, and the agents run through their own SDKs and CLIs with the accounts you configure.

Best For

Running Claude and Codex on separate tasks at onceWorking a feature across frontend and API reposKeeping agent context in per task notesReviewing per repository diffs before merging

Featured in

Alternatives to BlackHoles

Reviews (0)

No reviews yet

Be the first to share your experience with BlackHoles

Sign in to write a review

Badge builder

Add BlackHoles to your website

Choose a badge style and size, preview it here, then copy the generated HTML. Badge images are self-contained SVGs and do not require an external script.

BlackHoles badge preview
<a href="https://toolindex.net/tools/blackholes?ref=badge" target="_blank" rel="noopener">
  <img src="https://toolindex.net/badge/blackholes/medium.svg" alt="BlackHoles - Listed on Tool Index" width="180" height="50" />
</a>

How to use the badge

  1. 1. Pick the style, size, and theme that fit your layout.
  2. 2. Copy the generated HTML from the code block.
  3. 3. Paste it into your footer, homepage, or press page.

Standard badge available

The standard listing badge is available now. Score and circle badges are limited to tools currently ranked in the top 10 of a category.

Badge clicks return visitors to this profile with a referral tag so the source remains identifiable.