A robot teammate on your Mac desktop

A small robot floats above your windows, blinks and reacts. Click it and type, or hold ⌥Space and just speak. It answers with its face, a speech bubble and its voice, using the language model you choose.

Byte answering "what is BFS algorithm", recorded on a Mac (silent clip).

What it does

Lives on your desktop

A floating character on every Space. Drag it anywhere, close it with ×, ⌘W or Esc, and bring it back from the menu bar.

Type or talk

Click to type, or hold ⌥Space to speak. It answers out loud, and its mouth moves with its voice.

Your model, your servers

Any OpenAI-compatible chat, speech and transcription servers: Ollama, llama.cpp, vLLM, Kokoro, Whisper, or a router in front of them.

Teammates

Byte

Explains computer science: algorithms, data structures, complexity, one idea at a time with a small example. Teaches an eight-lesson course with spoken quizzes and a review schedule, and remembers how you did. Green face, antenna.

Tempo

Loves music: songs, styles, rhythm and what a song is about. Pink face, headphones.

Make your own with one small file: a name, colours, antenna or headphones, a voice, and what it's for. The same file works in humanoid-companion, a simulated humanoid that walks and talks.

# ~/.config/humanoid-companion/teammates/nova.toml
name = "Nova"
tagline = "tells stories about space"
based_on = "byte"
voice = "af_sky"
role = "Your role: you tell short, true stories about space."

[colours]
glow = "#9fd0ff"
trim = "#2a3552"

Install

macOS 14 or later, with Xcode or the Swift 6 command-line tools.

git clone https://github.com/YauhenBichel/humanoid-desktop && cd humanoid-desktop
scripts/build-app.sh --install
open ~/Applications/HumanoidDesktop.app

Then choose Open Settings File… from the menu bar item and point it at your servers:

[user]
name = "Alex"
language = "de"                          # optional: the teammate answers in German

[llm]
base_url = "http://127.0.0.1:11434/v1"   # Ollama
model = "llama3.1:8b"

[voice]
tts_base_url = "http://127.0.0.1:8880/v1"   # Kokoro
stt_base_url = "http://127.0.0.1:8000/v1"   # Whisper (Speaches)

Languages and platforms

Set language and the teammate answers in it, with a voice per language if you give one. Stop words work in English and the answer language. The app's menus come from one strings file per language.

PartmacOSLinuxWindows
TeammateKit: settings, teammates, conversation, languages, clientstested in CItested in CIplanned (#11)
The desktop appyesplanned (#12)

More language models and systems are on the roadmap: native Anthropic and Gemini support, Apple's on-device model, streaming replies, a settings window and signed releases.