v0.4.1 · macOS Alpha

Meet Max.

A friendly 3D character that sits on your Mac and becomes the embodiment of whichever AI assistant you use. Pick an AI. Max becomes its new shell.

Iterating fast, expect rough edges and frequent updates. Changelog · Report an issue

M> brew tap peterhanily/max_clawdroom https://github.com/peterhanily/max_clawdroom.git && brew install --cask max_clawdroom
Max, a small 3D character with yellow striped hair, white shirt, red tie and blue suit, standing on a Tahoe-blue lakeshore desktop background. A retro magenta chat window above him reads 'Hey everyone!' with a wave.
No script, no puppet

The AI draws Max itself.

When Max waves, the AI decided to wave. When he changes outfit mid-sentence, the AI chose the outfit. Most other AI characters are puppets reading from an emotion guess. Max isn't, you watch the AI pick its own body language live.

Max in a green suit holding a takeaway cup
Sláinte modegreen suit, takeaway cup
Max in a black hoodie and balaclava with reflective sunglasses
Hacker modehoodie, balaclava, Matrix chat
Max as a black shoggoth with a yellow smiley mask
Shoggoth modesmiley-masked eldritch form
Use any AI you like

Bring your own assistant.

Max connects to the AI assistant you're already using, Claude, Codex, or anything similar, whether it's running on your own Mac or as an online service. Switch from one to another and Max changes his look so you always know which AI is speaking.

[ ⇄ ]
claude · codex · your own AI
Max can be…

A chef. A hacker. A celebrity. You name it.

Outfit, hair, props, glasses, expression, voice, chat colours — all live, all chosen by the AI in the moment. Mix and match anything.

👨‍🍳 Chef 🏍️ Biker 🕶️ Hacker 🎤 Celebrity 🚀 Astronaut 🥷 Ninja 🏴‍☠️ Pirate 🦸 Superhero 🎩 Tuxedo 🧪 Lab coat 🏖️ Beach 🌃 Goth 👘 Kimono 🌺 Hawaiian 🛌 Pajamas 💜 Royal 🍸 Cocktail Neon

…or anything else you can describe. The combinations are limitless.

Install

Up and running in a minute.

Works on Apple Silicon Macs (M1 or newer) running macOS Sonoma (14) or later. You'll also need an AI assistant, like Claude or Codex, set up on your Mac or available online.

Homebrew Recommended

The easy way. Two commands, then automatic updates from then on. Paste this into Terminal:

brew tap peterhanily/max_clawdroom \
  https://github.com/peterhanily/max_clawdroom.git
brew install --cask max_clawdroom

Download the app

Prefer to install by hand? Grab the signed installer from GitHub, drag Max into Applications, and double-click.

open https://github.com/peterhanily/\
  max_clawdroom/releases/latest

Build it yourself

For developers. Clone the repo and build with Swift. First launch will ask for Accessibility permission.

git clone https://github.com/peterhanily/\
  max_clawdroom.git && cd max_clawdroom
swift build
FAQ

Common questions.

What is Max?
Max is a small Mac app that lives in your menu bar. He's a 3D character — based on the 1985 Max Headroom look — who appears on top of your screen and acts as a friendly face for whichever AI assistant you're already using. When the AI replies, Max moves, changes outfit, and reacts in real time so you can see what's going on at a glance.
Which AIs does he work with?
The popular AI assistants — Claude, Codex, and similar — work straight away. He'll also talk to AIs you've set up on your own Mac, or any online AI service you've got access to. You pick which one; Max adapts.
Is anything sent to the cloud?
Max himself runs entirely on your Mac. The only thing that leaves your computer is whatever you'd already be sending to the AI you chose to use. Conversations, per-project memory, the user model, time capsules, and the action audit log are all AES-GCM encrypted at rest using a key in your login Keychain — the on-disk bytes are an envelope, not readable by cat. API keys never sit in plaintext. Max's voice is generated on your Mac too. If your Keychain is locked at write time the app degrades to plaintext with owner-only file permissions and surfaces this state in Settings → Privacy. See PRIVACY.md for the complete picture.
Can I undo something Max did?
Yes. Every change Max makes — a new outfit, a new chat colour, a setting — can be undone with ⌘Z. A small 🛠 icon flashes whenever Max tweaks himself, so you always know something happened. Quick gestures like a wave or a nod don't fill up the undo history.
Will he interrupt me?
Only if you ask him to. By default Max stays quiet until you talk to him. There's an optional "let him roam" mode that lets him do small background things every few minutes (changing pose, looking around) but he still won't speak or post messages on his own.
What permissions does he need?
Just one: Accessibility, so Max can see what file you're working on and walk over to it on your screen. He doesn't use your microphone or take screenshots. He also automatically goes blind to sensitive apps — password managers, mail, terminals, banking, secure messengers — without you having to set anything up.
Op examples

A taste of what the AI can fire on Max's behalf. Each op is a building block; the AI freely combines and customizes any of them in any order, in any combination, to produce the look or behaviour it wants.

Bodyset_part_colorset_part_patternset_part_textureset_node_colorset_hairset_groomingset_physiqueset_face_morphset_scaleset_expressionreset_colorsrevert_to_baseline
Outfitsset_outfit_presettoggle_glassesset_glasses_style
25+ presets: broadcaster · casual · formal · beach · lab · athletic · goth · tropical · neon · vintage · stealth · royal · superhero · chef · pirate · astronaut · ninja · pajamas · tuxedo · hawaiian · bathrobe · loungewear · cocktail · swimwear · kimono
Propshold_propdrop_propdrop_all_propsset_prop_color
Locomotionwalkwalk_to_editorlook_aroundjittergreetfarewellpoint_forwardpoint_at_linepoint_at_cursorannotate_point
Gestureswavebeckonshrugnodshake_headclapsaluteflexfacepalmthumbs_upbow
Dance movesdancejumpspinbackflipjugglemoonwalkheadbangkarate_chopbreakdancepop_wheelie
Daily lifetypingplay_guitarsipreadingtake_photo
Chat chromeset_chat_colorset_chat_fontset_chat_backgroundreset_chat_theme
Voiceset_voiceset_voice_filterset_speech_ratemute_voiceplay_sound
Mediadownload_imagegenerate_imagepost_mediapost_link
Memoryrememberset_preferenceforgetwrite_journalschedule_follow_up
Soulupdate_soulpropose_soul_patch
Bindingsbindunbindclear_bindings
Settingsset_modeset_gravityset_accessibility_mode