LogoBrutus

One app where your AI
actually works together.

Run and coordinate real AI agents like a team instead of five isolated tabs. Speak your own language. Reach past the screen into your robot, your phone, a live browser.

Download for AndroidAPK · ~120 MB

It listens.

In your language, not just English. Cloud voice when you want power, on-device Whisper when you want it private, offline and free.

It delegates.

Claude Code, Codex and Gemini run as live terminals on one canvas. Brutus plans the crew and hands work down the wire itself.

It reaches.

Past the screen and into the room: your robot over Bluetooth, your phone over ADB, a dev server it just booted.

The problem

Five tools. None of them talk.

Right now, using AI well means running five different tools that have never heard of each other. Every one of them is smart on its own and useless together.

ChatGPT

for a question

Claude Code

in a terminal

Robot app

for the hardware

Phone app

for your device

Your language

barely supported

Nothing remembers.

Each tool is smart on its own and useless together. Nothing knows what the other one just did.

Nothing hands off.

Want two agents to collaborate, one writing and one reviewing? You are the integration, copying output between windows and hoping context survives.

Nothing speaks your language.

If English is not your first language, half of these barely work for you at all.

Nothing reaches past the screen.

It can write you a plan. It cannot turn on your robot, read your phone, or look at the dev server it just built.

An AI assistant should not mean picking one narrow tool and living with its walls.

Hand-lettered graphic with the word Chatbots struck through, replaced by Create with Brutus

One app. All five jobs. Talking to each other.

Brutus is one desktop app that does what those five tools do separately, except here they share the same memory, the same keys and the same voice.

The Brutus desktop app: red robot eyes front and centre marked LISTENING, a live transcript panel, and camera, CPU, memory and temperature readouts

Agents that hand off.

Claude Code, Codex and Gemini as live terminals on one canvas. Wire them together, or just say what you want and let Brutus staff the crew and track it to done.

Live preview.

An agent boots a dev server and a window opens on the canvas showing it running.

Your language.

Talk however you talk. Cloud voice for power, on-device for private and offline.

An inbox employee.

Desk triages the mail, drafts in your voice, and sends only what you allow.

Robot and phone.

Drive the robot head over Bluetooth, mirror and control your Android over ADB.

One approval gate.

Every send, file change and command funnels through it. You pick guarded or autonomous.

The solution / Studio

A real crew, on one canvas.

Claude Code, Codex and Gemini run as real, live terminals you can actually see, side by side, wired together. Not tabs. Not screenshots of tabs. Actual CLI processes you can watch, interrupt and hand work between.

Claude CodeAtlasCodexVegaGeminiOrion
The Brutus Studio canvas: three live agent terminals named Atlas running Claude Code, Vega running Codex and Orion running Codex, wired together as nodes, with a toolbar showing auto-route on, three agents running and guarded mode
Wire it yourself

Draw the pipeline.

Connect one agent's output to the next with visible strings. Finish work in one and Brutus hands it straight to the next, no copy-paste, no lost context.

Or just ask

Let Brutus staff it.

Type or speak one request into the Dashboard. Brutus plans the crew itself: who does what, in what order, tracked step by step until it is done or it flags exactly where it stuck.

One writes it. The next reviews it. The third tests it.

Agent 1

Writes the code

Agent 2

Reviews the diff

Agent 3

Runs the tests

Brutus moves the work along the wire automatically. You stop being the clipboard between terminal windows.

Hand-lettered graphic reading Let's Make Projects with a looping arrow
The Studio start screen with New workspace, Open folder, Clone repo and Open from link options

Point it at a repo you already have.

  • Open a local folder
  • Clone a repo, or open from a link
  • One workspace per project, kept between sessions

Live preview

Watch it come alive in the same window.

The moment an agent starts a dev server, Brutus opens a window right on the canvas showing it running. No alt-tab, no separate browser tab you have to remember to check.

Atlas · agent terminal

$ npm run dev

ready on http://localhost:3000

▸ preview attached

watching for changes…

Live previewlocalhost:3000

the page the agent just built

Every tool draws its own window.

A dev server, a mirrored phone screen, a map of somewhere you just asked about. When a tool has something to show, it opens in place instead of throwing a link at you.

  • Dev servers, attached the moment they boot
  • Maps and research results, rendered in place
  • The phone screen, mirrored live
A map window open inside Brutus, showing satellite terrain around Nainital with labelled landmarks and a target marker

Multilingual voice

Talk the way you actually talk.

Not just English. Switch languages mid-sentence, mix them in one breath, and Brutus keeps up and answers in kind. Then it goes and does the thing you asked for.

Live transcript

हेलो ब्रूटस कैसा है

Badhiya ek dam! Tu bata, kya scene hai? How can I help you today?

अच्छा तेरे को मेरा फेवरेट सॉन्ग याद है उसको Spotify पे प्ले कर दे यार

Playing "Blinding Lights" by The Weeknd on Spotify. Done, full vibe set ho gaya.

Full power

Cloud voice

Gemini Live for the most natural back and forth, with interruption handling and the widest language coverage.

  • Broadest language support
  • Best latency and prosody
Private by default

On-device voice

Whisper runs speech to text locally. Nothing leaves the machine, works with the network unplugged, and costs nothing per minute.

  • Audio never leaves your machine
  • Works fully offline
  • No per-minute cost

Your choice per session. Use the cloud when you want the best conversation, switch to on-device for anything private, offline, or when you would rather not pay by the minute.

Ten tabs, one assistant.

Not a chat box with features bolted on. Every surface does real work on your machine, and they all share the same memory, the same keys and the same voice.

The Brutus Home tab: large red robot eyes centred and marked LISTENING, a live transcript panel on the right, and an optics feed with CPU, memory and temperature readouts on the left

Eyes, ears and vitals.

The face reacts while it listens. Live transcript down the right, camera feed and machine vitals down the left.

01 / 08

Brutus Desk

An inbox employee, not an inbox filter.

Rules sort mail into folders. Desk reads it, decides what genuinely needs you, and has the replies waiting when you sit down.

Everything it does is logged
Everything it does is reversible
The Brutus Desk tab: a Run now button with an off status and last-run indicator, and Needs you, Handled and Commitments filters over a queue reading Nothing waiting on you
01

Reads the inbox

Goes through what came in and works out what actually needs a human.

02

Drafts in your voice

Writes the replies the way you write them, not the way a chatbot writes them.

03

Sends only if you say so

Sending is off until you turn it on, and even then only for the ones it is confident about.

Reaches past the screen

An assistant that can actually move.

Most assistants stop at text. This one turns on. Four micro servos move the eyes, eyelid and jaw, an Arduino Uno and an HM-10 take commands over Bluetooth LE, and every expression on screen plays out on real metal.

4

SG90 micro servos

11

BLE command types

20

scripted animations

~$25

in parts, total

// the entire wire protocol is plain ASCII

> E5 surprised, full intensity

> E1,40 angry, dialed to 40%

> M140 jaw open, mid lip-sync

> L60,70 eyes look left and up

> A3 wink

> W5 jaw drop

Closeup of the Brutus robot head: sheet-metal face, eyelid rings and glowing blue LED eyes
The full Brutus build
Closeup of the finished robot head with glowing blue LED eyes

The whole build, on one sheet.

Eye servos on D3 and D5, eyelid on D6, jaw on D9. Sound sensor on A0, status LED on D8, and the HM-10 on D10 and D11 behind a 1k / 2k divider, because its RX pin is 3.3 volt. Power the servos off their own pack and tie the grounds together.

Open full size
Brutus wiring guide: an Arduino Uno circuit diagram linking an HM-10 Bluetooth module, a sound sensor and four SG90 servos for eye left-right, eye up-down, eyelid and jaw, plus an external servo power rail, the HM-10 voltage divider, a pin summary table and a pre-flight checklist

Six expressions.
Twenty scripted moves.

Every emotion maps to servo keyframes stored on the Arduino, dialed from 0 to 100% intensity. The model triggers them mid-sentence as tool calls: say "Brutus, wink" and the metal face winks back.

Happy

E0

Relaxed eyes, a hint of a smile

Angry

E1

Squinted lids, jaw clenched

Sad

E2

Droopy lids, averted gaze

Thinking

E3

Eyes up and to the left

Sleepy

E4

Nearly closed, about to drift off

Surprised

E5

Wide open, jaw dropped

The full repertoire, stored on the chip.

Animation macros

A0NodA1ShakeA2Look aroundA3WinkA4YawnA5LaughA6Eye rollA7Mouth cycleA8Eye cycleA9Wiggle

Movement tricks

W0Crazy eyesW1ChatterW2Slow scanW3Peek-a-booW4Double blinkW5Jaw dropW6DrowsyW7Side eyeW8Happy bounceW9Confused

servo = 90 + (preset - 90) x intensity / 100

Brutus Mobile on Android: a listening voice orb reading 'Listening, just speak', with AI engine ready and connection online cards above a quick actions grid

One brain, two bodies.

The desktop app is where the crew works. Brutus Mobile carries the same agent to Android, with Gemini Live voice and its own robot link, and the two share one conversation rather than starting over.

Safety

One gate. Everything goes through it.

Not a setting bolted on at the end. Every autonomous action, whether it sends something, changes a file or runs a command, passes through a single approval gate in the core.

Send an email
Change a file
Run a command

Approval gate

You set the threshold

Guarded

Every action stops and waits for you. Nothing happens that you did not personally approve.

Balanced

Reads and drafts freely. Anything that leaves the machine or writes to disk still asks first.

Autonomous

Brutus decides and acts, and writes down everything it did so you can walk it back.

Built on

Real processes, not wrappers.

The agents in Studio are the actual CLIs you already use, spawned as real processes through node-pty and rendered with xterm. Nothing is reimplemented, nothing is faked.

App shell

  • Electron
  • React
  • TypeScript

Interface

  • Tailwind CSS v4
  • Framer Motion
  • React Flow (Studio canvas)

AI and voice

  • Meta llb voice
  • Google Gemini
  • Tavily
  • Groq
  • Cognee
  • Whisper (on-device STT)

Orchestration

  • Claude Code, Codex and Gemini CLI as real processes
  • node-pty
  • xterm

Hardware and integrations

  • Android Debug Bridge
  • Bluetooth
  • Gmail API

Bring your own keys.

  • Groq
  • Tavily
  • Cognee
  • xterm
Hand-lettered graphic reading And Many More with a looping arrow

Stop being the glue.

One app where your agents collaborate, your language works, and the assistant reaches past the screen. Open source, end to end.

Hand-lettered graphic reading Brutus is Future with a looping arrow

MIT licensed. Your API keys never leave your machine.