Aibex
Read, think, decide — rather than write.
Aibex is a desktop app for reading your agents' work. Select a line in the diff and ask about it on the spot, work through only the tabs that are your turn, and read the chat laid out so it is easy to follow.
macOS desktop app · Open source (MIT) · Free · Source on GitHub
Two problems, deliberately kept apart
1. The tool itself is awkward
- Copy-pasting into the AI to tell it what to do. Every time.
- The key bindings are half-baked.
2. The mental load goes up
- Walls of text are hard to read.
- A task finished and nobody noticed.
- Hand it several tasks at once and it eats up the memory in your head.
What this project assumes
- "Awkward" has not been fully put into words yet. Putting it into words is the substance of this project. This is not the kind of development where the requirements were settled up front.
- What counts as awkward keeps moving. The ground under AI tooling shifts fast, so last year's annoyance is not this year's. Any answer going stale is priced in from the start.
- A feature earns its place by answering one of the two problems above. If it answers neither, it is probably a feature that exists because it could be built.
What already works
Everything below is built, and the source is on GitHub.
1. Aimed at the awkward tool
It grows as the run goes, and splits by file
Every file-editing event from the agent nudges the diff pane to refresh. Instead of staring at one enormous diff after everything is over, you watch it take shape. The diff is split per file, with a sidebar carrying added/removed counts to jump from. It can be shown stacked or side by side, and unread edits are counted for you.
Select the lines, then just ask
Selecting a range of diff lines turns it into a context chip that rides along with your next question — no more re-explaining "around line 42 of that function". You can also leave a comment on the line yourself.
Four ways to pick the working folder
Starred bookmarks, an automatic list of recent folders, a browser for folders whose names you do not know, and plain path entry for the ones you do. That last one exists to kill "I already know the path, stop making me click through to it".
Images, slash commands, model settings
Paste or drop a screenshot straight into the composer. Slash commands autocomplete, including the ones you defined yourself. Model and permission mode are switched from the composer's own settings, without leaving the conversation.
2. Aimed at the mental load
One tab per working folder
Projects sit as tabs on a vertical rail, each with its own agent. Switching tabs does not tear anything down, so a conversation picks up exactly where it was. Run state and child-process crashes are shown on the tab itself; memory use joins them when the tabs are shown wide.
Work through the tabs that are waiting on you
When an agent finishes replying, its tab joins a queue as awaiting you. Send and go next sends your reply and jumps to whichever tab has been waiting longest; with nothing to add, it simply moves you on. Which tab needs you is not something you have to remember.
Waiting is shown, not hidden
An elapsed-time strip stays on screen while the agent runs, and a sound marks the finish. Fewer trips back to the window purely to check whether it is done yet.
Why it changed, left next to the line
The agent posts its own reasoning as an inline comment on the affected diff line, so the motive for a change is not buried in the transcript. It can be switched off.
You stop carrying results around
A command, its output and its exit code are held together as one unit (an
execution block), and results of commands you ran in the
terminal are read by the agent just the same. Re-running a sandbox-refused command under
your own permissions (the escape hatch) does not break the thread
either. Which result goes where is no longer something you keep in your head. You can
also fire one straight from the composer with !command.
Where it stands
| Availability | The source is published on GitHub as open source. A built app is on its way via GitHub Releases. |
|---|---|
| License | MIT License. The repository is object-zaseeta/ai-browser. |
| Platform | Macs with Apple silicon only. Intel Macs are not supported. Being prepared as a desktop app. |
| Construction |
The app starts a small server on your own machine and shows its interface in a window.
It listens on 127.0.0.1 only, so nothing outside that machine — including
other devices on your network — can reach it. No frameworks.
|
| AI |
Through the Claude Agent SDK. Using it requires a Claude subscription.
Settings are read from both ~/.claude/settings.json (user-wide) and the
working folder's .claude/settings.json (project).
|
| Price | Free. Open source (MIT); there is no paid edition. |
What you need to get started
Aibex does not bundle the agent itself. It calls the Claude already installed on your machine. If you are using Claude Code today, items 1–3 are already in place. Item 4, pnpm, is the one you may not have.
| 1. A Claude subscription |
Your own subscription is used as-is. There is no API key to register with Aibex,
and you are not billed twice for the AI. Sign in with claude login in a
terminal before you start.
|
|---|---|
2. Claude Code (the claude command) |
Running the agent is left to this command. On launch the app looks in
~/.local/bin and the Homebrew locations in turn, and shows a page
explaining how to install it if nothing is found.
|
| 3. Node.js 18 or newer |
Used to run the small local server the app starts on your machine. Like
claude, it is located automatically at launch.
|
| 4. pnpm |
Used to perform the first-launch download below. It can be enabled through Corepack,
which ships with Node.js, using corepack enable pnpm — or installed with
brew install pnpm if you use Homebrew.
|
| A first-launch download |
The first time you open it, your machine fetches
@anthropic-ai/claude-agent-sdk — the npm package Anthropic publishes, which
the app uses to call Claude — directly from the official npm registry.
We are not redistributing it.
Once installed it takes up around 220 MB on disk. You are shown exactly this before the
fetch begins, and later launches do not fetch again (except to update the package).
|
| Network | The agent's reasoning runs on Claude, so a connection is required whenever you use it. Reading and writing files and running commands all stay on your own machine, but the agent cannot run offline. |
Questions
When can I use it?
The source is on GitHub today. A built app is being prepared; once it is on GitHub Releases, the "Where it stands" table above links to it. It is built while being used for its author's own daily development, so its shape keeps changing as the awkwardness gets easier to name.
Is it a web service that runs in a browser?
No. It only uses browser technology for its interface; it is an application that runs on your machine. File access and command execution happen entirely locally (the agent's reasoning itself uses Claude).
Does my existing Claude Code configuration carry over?
Yes. The sandbox boundary and deny rules come straight from both
~/.claude/settings.json (user-wide) and the working folder's own
.claude/settings.json (project). settings.local.json is
deliberately not read. Your user-defined slash commands
(.claude/commands/) are picked up as well.
Does putting this app in the middle weaken the sandbox?
No. How far a command may reach is left to the OS sandbox, and that reach is set by
~/.claude/settings.json and the working folder's
.claude/settings.json — the app never parses command strings itself. On top
of that, the app refuses any file-writing operation by the agent the moment its path
points outside the working folder, and that check is applied twice so it still holds
when the permission mode is relaxed.
Will other AI models be supported?
Today it assumes the Claude Agent SDK. A quick model switch is logged as a known gap, but work on it has not started.
How does it relate to the Draft apps?
It is a separate product. It does not integrate with DraftFinder, DraftCamera or DraftWriter.
If you want to follow along
The source is on GitHub at any time. When a built app lands on GitHub Releases, the repository and this page will say so. Notes on the awkwardness you would like fixed, and any questions, are taken on GitHub Issues.