Twoody, mais chez toi Twoody, hosted by you
La même philosophie que Twoody Cloud — un assistant qui comprend ce que tu utilises — mais qui tourne entièrement chez toi. Tu apportes ta clé OpenAI / Anthropic / Gemini (ou tu fais tourner un modèle local), et tu gardes la main sur tes données. Same philosophy as Twoody Cloud — an assistant that understands the tools you use — but running entirely on your hardware. Bring your own OpenAI / Anthropic / Gemini key (or run a local model) and keep your data on your network.
Six dépôts publics, cinq sous Apache 2.0, un (le serveur) sous BSL 1.1 qui bascule en Apache 2.0 le 1er mai 2030. Forke, modifie, distribue — mais ne propose pas de version hébergée commerciale tant que la BSL court. Six public repos: five under Apache 2.0, one (the server) under BSL 1.1 with an automatic conversion to Apache 2.0 on May 1st, 2030. Fork, modify, distribute — just no commercial hosted offering while BSL is in effect.
Architecture Architecture
Twoody App Claude Desktop Cursor Apple Watch
\\ | | /
\\ | | /
\\ v v /
\\----------------------------/
|
LAN / mDNS / tailnet
|
v
+------------------------+
| twoody/server (BSL) |
| /queries /devices |
| /bridge /mcp |
+-----------+------------+
|
+----------------+----------------+
| | | | |
v v v v v
firmware desktop cli mcp browser-agent
(RPi/ (Mac (CLI) (MCP (Browserbase
Jetson) Bridge) adapt) or Playwright)
Six dépôts, un stack Six repos, one stack
Firmware Raspberry Pi / Jetson : audio I/O, wake-words, OTA. Raspberry Pi / Jetson firmware: audio I/O, wake-words, OTA.
Bridge macOS : Spotlight, Photos, OCR, Shortcuts. Tauri à venir. macOS Bridge: Spotlight, Photos, OCR, Shortcuts. Tauri coming.
Backend local Fastify + SQLite. /queries, /devices, /bridge, /mcp. Local backend, Fastify + SQLite. /queries, /devices, /bridge, /mcp.
twoody setup, serve, chat, pair, status — un binaire. twoody setup, serve, chat, pair, status — single binary.
Adapter MCP pour Claude Desktop, Cursor, et tout client compatible. MCP adapter for Claude Desktop, Cursor, and any compatible client.
Agent navigateur : Browserbase ou Playwright local, au choix. Browser sidecar: Browserbase or local Playwright, your call.
Local vs Cloud Local vs Cloud
| Capacité Capability | Twoody Local | Twoody Cloud |
|---|---|---|
| Chat LLM (apporte ta clé) Chat LLM (bring your own key) | ||
| Voix temps-réel Real-time voice | Avec ta clé BYO key | |
| Bridge Mac (fichiers, OCR, Shortcuts) Mac Bridge (files, OCR, Shortcuts) | ||
| MCP (Claude Desktop / Cursor) MCP (Claude Desktop / Cursor) | ||
| Agent navigateur (Playwright local) Browser agent (local Playwright) | ||
| Twoody Device (RPi / Jetson) Twoody Device (RPi / Jetson) | ||
| Email Twoody (DKIM, multi-domaines) Twoody email (DKIM, multi-domains) | — | |
| SMS / Appels téléphoniques SMS / Phone calls | — | |
| Proactive briefings & nudges Proactive briefings & nudges | — | |
| Flows automatisés (DAG) Automated Flows (DAG) | — | |
| Console équipe / SSO / facturation Team console / SSO / billing | — | |
| Support, SLA, audit log Support, SLA, audit log | — |
Email, SMS, appels et fonctions équipe restent propriétaires : ils dépendent de Postmark, Twilio et de la facturation multi-tenant. Les gérer en self-hosted demanderait de relayer votre propre SMTP / Twilio. Email, SMS, calls and team features stay proprietary: they depend on Postmark, Twilio and multi-tenant billing. Self-hosting them means bringing your own SMTP / Twilio relay.
Installation Install
npm i -g twoody
Le launcher JS télécharge le binaire compilé adapté à ta plateforme et vérifie son SHA-256. The JS launcher downloads the compiled binary for your platform and verifies its SHA-256.
curl -fsSL https://twoody.com/install.sh | sh
Détecte macOS / Linux et préfère Homebrew si dispo. Pas besoin de Node. Detects macOS / Linux and prefers Homebrew when available. No Node required.
brew install twoody/tap/twoody
brew upgrade et brew uninstall fonctionnent comme tu t'y attends.
brew upgrade and brew uninstall work as you'd expect.
twoody setup # clé OpenAI/Anthropic/Gemini, port, code de pairing
twoody serve # démarre le serveur local sur :3000
twoody chat # ouvre une session interactive
Pour appairer un Twoody Device : twoody pair imprime un code à 6 chiffres ; tape-le dans le firmware avec --backend=local.
To pair a Twoody Device: twoody pair prints a 6-digit code; enter it in the firmware with --backend=local.
FAQ
BSL, c'est de l'open source ? Is BSL open source?
Pas selon la définition stricte de l'OSI, mais c'est source-available : le code est public, tu peux le lire, le modifier, le compiler, le distribuer et l'utiliser chez toi ou dans ton entreprise. La seule restriction : ne pas en faire une offre commerciale hébergée concurrente. Le 1er mai 2030, le serveur bascule automatiquement en Apache 2.0 — c'est écrit dans la licence elle-même. Not under the strict OSI definition, but it is source-available: the code is public, you can read, modify, build, distribute and use it at home or inside your company. The only restriction: don't sell a competing hosted offering. On May 1st, 2030, the server automatically converts to Apache 2.0 — it's written into the license itself.
Puis-je l'utiliser au boulot ? Can I use it at work?
Oui. L'usage interne (un service IT qui déploie pour ses propres salariés) est explicitement autorisé par la grant additionnelle. Ce qui est interdit pendant la BSL : revendre Twoody Local sous forme de SaaS multi-clients. Yes. Internal use (an IT department deploying it for their own employees) is explicitly allowed by the additional grant. What's blocked while BSL applies: reselling Twoody Local as a multi-tenant SaaS.
Pourquoi pas tout en Apache 2.0 ? Why not Apache 2.0 everywhere?
Le firmware, le bridge, le CLI, le MCP et le browser-agent sont en
Apache 2.0 — zéro friction pour fork, contribuer et distribuer. Seul le
twoody/server est en BSL parce que c'est le seul composant qui pourrait
être empaqueté en "Hosted Twoody" et concurrencer directement notre cloud
commercial. Cette protection nous permet de garder un cloud viable, qui finance
tout le reste de l'open source.
Firmware, bridge, CLI, MCP and browser-agent are Apache 2.0 — zero
friction to fork, contribute, distribute. Only twoody/server is BSL
because it's the one component that could be packaged as "Hosted Twoody" and
compete head-on with our commercial cloud. That protection is what keeps the
cloud viable, which in turn funds the rest of the open source.
Et si je veux les emails Twoody en local ? What if I want Twoody emails locally?
Les emails Twoody (adresses @twoody.com, domaines partagés, DKIM auto,
multi-personas) restent dans le cloud commercial. C'est le cœur de la valeur
ajoutée que paie Plus / Max / Work, et la plomberie multi-tenant ne se transpose
pas proprement en self-hosted. En local tu peux brancher ton propre relay SMTP
si tu veux que Twoody envoie depuis [email protected].
Twoody emails (@twoody.com addresses, shared domains, automatic DKIM,
multi-persona) stay in the commercial cloud. They're the core of what Plus / Max /
Work pay for, and the multi-tenant plumbing doesn't translate cleanly to self-hosted.
On Local you can wire up your own SMTP relay if you want Twoody to send from
[email protected].
Comment contribuer ? How do I contribute?
Chaque dépôt a un CONTRIBUTING.md. Les PRs externes signent un CLA
simple (un clic sur le bot GitHub) pour qu'on puisse continuer à dual-licenser le
cloud commercial. Issues, discussions et bugs : ouvre direct sur le repo concerné.
Each repo has a CONTRIBUTING.md. External PRs sign a lightweight CLA
(one click on the GitHub bot) so we can keep dual-licensing the commercial cloud.
For issues, discussions and bugs: open them on the relevant repo.