ZOYKUHot Board

runboubou/boubouДокументація

Run voice AI locally with open-source models. Bring it to any device with one command.

Зміст (3 розділів)▾
Мовне сповіщення:Локалізована документація відсутня. Відображається офіційний англійський оригінал.
Швидке встановлення
cargo add boubou

Boubou toucan logo

Boubou

A command-line tool for talking with AI out loud.
Open models run on your machine. Speak, pause for a reply, and interrupt whenever you like.

Website Discord X

Apple Silicon · Linux · MIT licensed code

Boubou — Talk to AI. Keep it on your machine. Open models. One command. A natural conversation.

Run boubou, choose a local model, speak, hear a reply, and interrupt by speaking again. An illustrative terminal workflow.

macOS terminal workflow. Illustrative conversation; setup time condensed.

Quick start

Apple Silicon Mac, macOS 13.3+ and Node.js 18+:

npx boubou@beta run LFM3-Audio-2B

Allow microphone access. The first run downloads about 1.4 GB. Then speak English.

The npm launcher checks for updates before each command and runs the newest version on your release channel (beta can graduate to stable). Updates live in your user cache and need no administrator access. Automatic updates use your user/global npm settings and environment, not the current project's .npmrc. If the check or installation fails, it warns and uses the last available version. --offline, doctor, and BOUBOU_NO_UPDATE_CHECK=1 skip the check; use the native binary directly when you need to pin an installed version.

Models stay in the cache across package updates. The small npm package downloads normally; modular runtime updates reuse verified files from older installations and download changed files only when the release and server support incremental downloads. A first installation or an older runtime without an index uses the full runtime archive.

Esc pause · Enter resume · Ctrl+C quit

On macOS, run npx boubou@beta to choose from the menu: the Liquid models and, on Macs with 16 GB of memory and macOS 15 or later, three modular voices (Qwen3-TTS 0.6B, Pocket TTS and Phonon). Its last row opens the model library for more voices: copy a command there and paste it into the menu.

Build from source / Linux

The npm command also works on x86-64 Linux. Build from source for arm64 Linux.

You need Rust 1.91+ and Xcode Command Line Tools on macOS. On Linux, install a C compiler, pkg-config and ALSA development headers.

git clone https://github.com/runboubou/boubou.git
cd boubou
cargo build --locked --release
./target/release/boubou run LFM3-Audio-2B

On macOS, run ./target/release/boubou to open the picker shown above. Liquid models also support x86-64 and arm64 Linux with glibc 2.38+, OpenSSL 3 and libgomp. The picker currently requires macOS.

More commands, phones and browsers
npx boubou@beta list
npx boubou@beta pull LFM3-Omni-2B
npx --offline boubou@beta run LFM3-Omni-2B --offline
npx boubou@beta doctor LFM3-Omni-2B
npx boubou@beta ask LFM3-Omni-2B photo.png "What is in this picture?"
npx boubou@beta serve LFM3-Audio-2B
npx boubou@beta serve LFM3-Omni-2B

serve prints a browser link and a QR code for a phone on the same Wi-Fi. Allow microphone access and talk; one client can use the conversation at a time. Keep the printed link private: it contains the access key. Use --local to listen only on this computer.

Browser audio travels between the device and this computer over HTTPS; model inference stays on the host. By default, serve requests a trusted certificate from lan.runboubou.com; the name includes the host's local IP address. Its private key stays on the host. --local, --self-signed or --offline avoids that service. The self-signed fallback requires trusting its certificate in the browser.

Modular models also expose OpenAI-compatible Realtime and speech endpoints through serve. Prefer the printed HTTPS/WSS address; the HTTP/WS fallback is unencrypted. A robot or app whose settings take only an address and a port can connect without the key: serve asks in its terminal before letting that address in, and remembers the answer in the cache's serve/allowed file.

Use npx boubou@beta --help or npx boubou@beta <command> --help for options. Models and runtimes are cached in ~/Library/Caches/boubou on macOS or ~/.cache/boubou on Linux; set BOUBOU_HOME to choose another folder.

Swap a component of a modular model

A modular model is a pinned speech-to-speech pipeline. Its options, placed after the model, replace the model's own. Change the language model or the speech recognition:

npx boubou@beta run qwen3-tts:0.6b-customvoice --model_name mlx-community/Llama-3.2-3B-Instruct-4bit
npx boubou@beta run qwen3-tts:0.6b-customvoice --stt mlx-audio-whisper

They work with run and serve; put Boubou's own options, such as --offline, before them. These options let the pipeline download from the Hugging Face Hub: Boubou does not verify the models they name and keeps them in your own Hugging Face cache. With --offline, or on Linux, name local paths instead.

How it works

Rust connects your microphone and speakers to a local model server, with echo cancellation and speech detection.

  • One audio model: Liquid models hear, think and speak through llama.cpp.
  • A modular pipeline: speech recognition → Qwen → your choice of voice. See models and runtimes.

Inference runs on your machine. No account, cloud model API key or telemetry. With run, audio stays on this computer. After downloading the models, use --offline to run without a network. With npx, pass --offline before the package name too, so npm also stays offline.

Automatic update requests go through npm to your configured registry, using npm's normal headers and authentication. They do not include audio, transcripts or model files.

Contributors

Built in the open. Thanks to everyone helping Boubou find its voice.

Boubou GitHub contributors

All contributors · Contribute to Boubou · Report a security issue


MIT.

Дзеркало документації архівовано з офіційного репозиторію GitHub · Перейти на GitHub
Дата знімка: 2026-11-13