Tohru

Tohru — guide d'utilisation

Tohru est un assistant conversationnel pour Mac, iPhone, iPad et iPhone Duo. Il répond avec Apple Intelligence (modèle serveur Private Cloud Compute) dès l'installation, ou avec votre propre modèle désigné par son URL, et il peut utiliser les outils de vos serveurs MCP (Model Context Protocol).

  1. Premier lancement
  2. Choisir le cerveau
  3. Utiliser votre propre modèle (URL d'inférence)
  4. Donner des outils à Tohru : les serveurs MCP
  5. Confirmation des actions
  6. Pièces jointes, dictée, voix
  7. Dépannage
  8. Confidentialité

1. Premier lancement

Rien à configurer : posez votre question. Tohru utilise Apple Intelligence (Private Cloud Compute).

Conditions : un appareil compatible avec Apple Intelligence, Apple Intelligence activée (Réglages › Apple Intelligence et Siri), une connexion à Internet. Les requêtes sont décomptées du quota quotidien de votre compte iCloud ; l'état du quota s'affiche dans Réglages › Général et dans le panneau d'état (pastille en bas de la liste des conversations). La roue crantée ⚙︎ à côté ouvre les réglages ; la loupe, en haut à droite de la liste, cherche dans les conversations ; un balayage vers la gauche supprime une conversation.

2. Choisir le cerveau

Réglages › Général › Cerveau (Mac : menu Tohru › Réglages…, ⌘, ou roue crantée ⚙︎ ; iPhone et iPad : roue crantée ⚙︎ en bas de la liste des conversations). Le menu en bas de la liste des conversations permet aussi de basculer à tout moment.

Cerveau Quand le choisir
Apple Intelligence (Private Cloud Compute) Par défaut : aucun réglage, contexte de 32 768 jetons.
Modèle compatible OpenAI (URL) Modèle local (Ollama, LM Studio…) ou service en ligne : grand contexte, aucun quota Apple.

Les deux cerveaux partagent les conversations, les outils MCP, la consigne système et la température (Réglages › Général). La consigne par défaut suit la langue de l'appareil ; « Rétablir la consigne par défaut » annule une consigne personnalisée.

3. Utiliser votre propre modèle (URL d'inférence)

Réglages › Modèle à URL :

Champ Exemple Rôle
URL http://192.168.1.20:11434/v1 Adresse de l'API compatible OpenAI, terminée en général par /v1. Tohru appelle …/chat/completions et …/models.
Modèle qwen3:8b Nom du modèle. Le bouton Lister interroge …/models et propose les modèles du serveur.
Nom affiché Ollama du salon Facultatif.
Clé Facultative : envoyée en Authorization: Bearer, conservée dans le trousseau (synchronisé par iCloud), jamais dans un fichier. Inutile pour Ollama et LM Studio.
Compte du trousseau inference Nom sous lequel la clé est rangée.
Contexte 32768 Fenêtre annoncée du modèle, en jetons.
Réflexion Réglage du serveur Transmise en reasoning_effort (none, low, medium, high) aux modèles qui raisonnent.

Enregistrer et utiliser ce modèle l'enregistre et le choisit comme cerveau ; Retirer revient à Apple Intelligence.

Adresses usuelles :

Serveur URL
Ollama http://<adresse>:11434/v1 (sur le même Mac : http://localhost:11434/v1)
LM Studio http://<adresse>:1234/v1
vLLM, llama.cpp (llama-server) http://<adresse>:8000/v1 (port selon votre lancement)
Service en ligne l'URL de base « compatible OpenAI » du fournisseur, avec sa clé

Le HTTP non chiffré n'est accepté que vers le réseau local (adresses privées, .local) ; un service sur Internet doit être en HTTPS. Avec Ollama, exposez le serveur au réseau (OLLAMA_HOST=0.0.0.0) et réglez sa fenêtre de contexte (OLLAMA_CONTEXT_LENGTH).

4. Donner des outils à Tohru : les serveurs MCP

Un serveur MCP (Model Context Protocol) met des outils à la disposition de Tohru : rechercher dans une documentation, lire un dossier, piloter un service… Pour l'ajouter, son adresse suffit : Tohru découvre tout seul ses outils et, s'il est protégé, ouvre sa page de connexion. Il n'y a aucun fichier à écrire.

Tohru joint les serveurs MCP en HTTP « streamable » (adresse se terminant en général par /mcp). Les serveurs « stdio », lancés en ligne de commande, ne sont pas joignables depuis un iPhone : leur fournisseur doit les exposer en HTTP (par exemple avec mcp-proxy).

4.1 Ajouter un serveur par son adresse

Réglages › Serveurs MCP › Ajouter un serveur (Mac : menu Tohru › Réglages…, ⌘, ou roue crantée ⚙︎ ; iPhone et iPad : roue crantée ⚙︎ en bas de la liste des conversations › Serveurs MCP).

  1. Collez dans Adresse du serveur l'adresse que le fournisseur vous a donnée (https:// est ajouté s'il manque).
  2. Touchez Se connecter. Tohru interroge le serveur et affiche ses outils ; le Nom est repris de celui que le serveur annonce, vous pouvez le changer. Si le serveur demande de vous identifier, sa page de connexion s'ouvre aussitôt (§ 4.2).
  3. Touchez Enregistrer.

Pour un premier essai, Ajouter l'exemple DeepWiki ajoute un serveur public, sans compte, qui répond sur les dépôts GitHub publics. Demandez ensuite : « Avec DeepWiki, à quoi sert le dépôt modelcontextprotocol/swift-sdk ? »

La liste montre chaque serveur avec son état (nombre d'outils, ou erreur en orange) ; le toucher rouvre sa fiche. Supprimer ce serveur (en bas de la fiche ; sur iPhone et iPad, aussi par balayage dans la liste) le retire après confirmation.

4.2 Serveur qui demande de vous identifier

Pour un serveur protégé, Se connecter ouvre directement la page de connexion du fournisseur (compte, mot de passe, double authentification…), où Tohru se présente sous le nom Tohru AI. Une fois l'accès autorisé, vous revenez dans Tohru et les outils s'affichent :

Cette connexion suit la norme d'autorisation de MCP (OAuth 2.1 avec PKCE). Si le fournisseur vous a remis un identifiant client, saisissez-le dans Options avancées › Identifiant client OAuth ; sinon, Tohru s'identifie de lui-même.

Certains serveurs fournissent plutôt une clé d'API : collez-la dans Options avancées › Jeton d'accès fixe (envoyée en Authorization: Bearer, conservée dans le trousseau). Ne plus envoyer de jeton la retire.

4.3 Serveur à certificat auto-signé

Si le certificat du serveur n'est pas reconnu par le système (serveur personnel, réseau local), la fiche affiche Certificat non reconnu avec son empreinte SHA-256. Comparez-la avec celle que l'administrateur du serveur vous a communiquée (sur le serveur : openssl x509 -in cert.pem -noout -fingerprint -sha256) ; si elles sont identiques, touchez Faire confiance à ce certificat. Tohru n'acceptera ensuite que ce certificat pour ce serveur ; s'il change, la connexion est refusée et l'empreinte vous est de nouveau présentée. Options avancées › Oublier retire cette confiance.

Pour un serveur signé par une autorité privée, collez plutôt le certificat de l'autorité dans Options avancées › Certificat d'autorité (PEM).

4.4 Lien d'ajout

Un fournisseur peut publier un lien qui ouvre directement dans Tohru la fiche pré-remplie du serveur ; il ne reste qu'à toucher Se connecter puis Enregistrer.

https://r0o.wtf/tohru/add?url=https://mcp.example.com/mcp&name=example
tohru://add?url=https://mcp.example.com/mcp&name=example

url est obligatoire, name facultatif ; encodez les deux (encodeURIComponent). Le lien https:// s'ouvre dans Tohru quand l'application est installée, et sinon affiche une page qui y mène.

4.5 Régler les outils d'un serveur

Après Se connecter, la fiche liste les outils du serveur. Chacun se règle : Proposé (le modèle peut l'appeler), Avec confirmation (une carte vous demande votre accord à chaque appel) ou Masqué (jamais proposé au modèle). Un outil qui écrit, envoie ou supprime demande déjà une confirmation (§ 5).

4.6 Ce que Tohru fait de vos serveurs

4.7 Pour les fournisseurs de serveurs MCP

Pour que vos utilisateurs n'aient qu'une adresse à coller :

5. Confirmation des actions

Un outil qui agit (écrit, envoie, supprime, commande…) n'est jamais exécuté sans votre accord : une carte s'affiche sous la réponse avec l'outil et tous ses arguments ; seul Autoriser fait partir l'appel. Refuser, ne pas répondre en 5 minutes ou arrêter la réponse (Stop, ⌘.) vaut refus, et les autres actions de la même réponse sont alors écartées.

Tohru reconnaît un outil qui agit par ses annotations MCP (readOnlyHint, destructiveHint), sinon par le verbe de tête de son nom (send_…, delete_…, create_…, ajouter_……). Le réglage de chaque outil dans la fiche du serveur (§ 4.5) corrige ce classement.

6. Pièces jointes, dictée, voix

7. Dépannage

Symptôme Cause et remède
« Apple Intelligence n'est pas disponible » Activez-la (Réglages › Apple Intelligence et Siri) sur un appareil compatible, ou choisissez un modèle à URL.
« Quota d'Apple Intelligence atteint » Le quota du compte iCloud est épuisé pour le moment : attendez la remise à zéro ou basculez sur un modèle à URL.
« Les garde-fous d'Apple Intelligence ont refusé cette demande » Reformulez, ou utilisez un modèle à URL.
Serveur en orange « connexion requise » Le serveur demande de vous identifier : ouvrez sa fiche, S'identifier auprès du serveur… (§ 4.2).
Serveur en orange « jeton refusé (HTTP 401) » Clé d'API absente ou refusée : corrigez Jeton d'accès fixe dans les options avancées de la fiche (§ 4.2).
Serveur en orange « certificat non reconnu » Certificat auto-signé : ouvrez sa fiche et vérifiez l'empreinte présentée avant de lui faire confiance (§ 4.3), ou collez le certificat de l'autorité.
Rien ne répond sur le réseau local Autorisez « Réseau local » pour Tohru (Réglages › Confidentialité et sécurité › Réseau local).
http:// refusé Le HTTP clair n'est permis que vers le réseau local : utilisez HTTPS pour un serveur sur Internet.

8. Confidentialité

Tohru — User Guide

Tohru is a conversational assistant for Mac, iPhone, iPad, and iPhone Duo. It answers with Apple Intelligence (the Private Cloud Compute server model) right after installation, or with your own model specified by its URL, and it can use the tools of your MCP servers (Model Context Protocol).

  1. First Launch
  2. Choosing the Engine
  3. Using Your Own Model (Inference URL)
  4. Giving Tohru Tools: MCP Servers
  5. Confirming Actions
  6. Attachments, Dictation, Voice
  7. Troubleshooting
  8. Privacy

1. First Launch

Nothing to configure: just ask your question. Tohru uses Apple Intelligence (Private Cloud Compute).

Requirements: a device compatible with Apple Intelligence, Apple Intelligence turned on (Settings › Apple Intelligence & Siri), and an Internet connection. Requests count against the daily quota of your iCloud account; the quota status is shown in Settings › General and in the status panel (the status button at the bottom of the conversation list). The gear ⚙︎ next to it opens Settings; the magnifying glass at the top right of the list searches conversations; a swipe to the left deletes a conversation.

2. Choosing the Engine

Settings › General › Engine (Mac: Tohru menu › Settings…, ⌘, or the gear ⚙︎; iPhone and iPad: the gear ⚙︎ at the bottom of the conversation list). The menu at the bottom of the conversation list also lets you switch at any time.

Engine When to choose it
Apple Intelligence (Private Cloud Compute) Default: no setup, 32,768-token context.
OpenAI-Compatible Model (URL) Local model (Ollama, LM Studio…) or online service: large context, no Apple quota.

Both engines share the conversations, the MCP tools, the System Prompt, and the Temperature (Settings › General). The default prompt follows the device language; “Restore Default Prompt” discards a custom prompt.

3. Using Your Own Model (Inference URL)

Settings › Model by URL:

Field Example Purpose
URL http://192.168.1.20:11434/v1 Address of the OpenAI-compatible API, usually ending in /v1. Tohru calls …/chat/completions and …/models.
Model qwen3:8b Model name. The List button queries …/models and offers the server's models.
Display Name Living room Ollama Optional.
Key Optional: sent as Authorization: Bearer, stored in the keychain (synced through iCloud), never in a file. Not needed for Ollama or LM Studio.
Keychain Account inference Name under which the key is stored.
Context 32768 The model's advertised context window, in tokens.
Reasoning Server Setting Sent as reasoning_effort (none, low, medium, high) to reasoning models.

Save and Use This Model saves it and selects it as the engine; Remove switches back to Apple Intelligence.

Common addresses:

Server URL
Ollama http://<address>:11434/v1 (on the same Mac: http://localhost:11434/v1)
LM Studio http://<address>:1234/v1
vLLM, llama.cpp (llama-server) http://<address>:8000/v1 (port depends on how you launch it)
Online service the provider's “OpenAI-compatible” base URL, with its key

Unencrypted HTTP is accepted only toward the local network (private addresses, .local); a service on the Internet must use HTTPS. With Ollama, expose the server to the network (OLLAMA_HOST=0.0.0.0) and set its context window (OLLAMA_CONTEXT_LENGTH).

4. Giving Tohru Tools: MCP Servers

An MCP (Model Context Protocol) server gives Tohru tools: searching documentation, reading a folder, controlling a service… To add one, its address is all you need: Tohru discovers its tools on its own and, if the server is protected, opens its login page. There is no file to write.

Tohru reaches MCP servers over streamable HTTP (an address usually ending with /mcp). “stdio” servers, launched from the command line, cannot be reached from an iPhone: their provider has to expose them over HTTP (for example with mcp-proxy).

4.1 Adding a Server by Its Address

Settings › MCP Servers › Add a server (Mac: Tohru menu › Settings…, ⌘, or the gear ⚙︎; iPhone and iPad: the gear ⚙︎ at the bottom of the conversation list › MCP Servers).

  1. Paste into Server address the address the provider gave you (https:// is added if missing).
  2. Tap Connect. Tohru queries the server and lists its tools; the Name is taken from the one the server announces, and you can change it. If the server asks you to sign in, its login page opens right away (§ 4.2).
  3. Tap Save.

For a first try, Add the DeepWiki example adds a public server, with no account, that answers questions about public GitHub repositories. Then ask: “Using DeepWiki, what is the modelcontextprotocol/swift-sdk repository for?”

The list shows each server with its status (number of tools, or an error in orange); selecting it reopens its sheet. Delete this server (at the bottom of the sheet; on iPhone and iPad, also by swiping in the list) removes it after confirmation.

4.2 Servers That Ask You to Sign In

For a protected server, Connect opens the provider's login page directly (account, password, two-factor authentication…), where Tohru introduces itself as Tohru AI. Once you allow access, you return to Tohru and the tools appear:

This sign-in follows the MCP authorization standard (OAuth 2.1 with PKCE). If the provider gave you a client ID, enter it under Advanced options › OAuth client ID; otherwise Tohru identifies itself.

Some servers issue an API key instead: paste it into Advanced options › Static access token (sent as Authorization: Bearer, kept in the keychain). Stop sending a token removes it.

4.3 Servers with a Self-Signed Certificate

If the system does not recognize the server's certificate (personal server, local network), the sheet shows Unrecognized certificate with its SHA-256 fingerprint. Compare it with the one the server's administrator gave you (on the server: openssl x509 -in cert.pem -noout -fingerprint -sha256); if they match, tap Trust this certificate. Tohru will then accept this certificate and no other for this server; if it changes, the connection is refused and the fingerprint is shown to you again. Advanced options › Forget removes this trust.

For a server signed by a private authority, paste the authority's certificate into Advanced options › Certificate authority (PEM) instead.

A provider can publish a link that opens the server's prefilled sheet directly in Tohru; all that is left is to tap Connect, then Save.

https://r0o.wtf/tohru/add?url=https://mcp.example.com/mcp&name=example
tohru://add?url=https://mcp.example.com/mcp&name=example

url is required, name optional; encode both (encodeURIComponent). The https:// link opens in Tohru when the app is installed, and otherwise shows a page that leads to it.

4.5 Setting a Server's Tools

After Connect, the sheet lists the server's tools. Each one can be set to Offered (the model may call it), With confirmation (a card asks for your approval at every call) or Hidden (never offered to the model). A tool that writes, sends or deletes already asks for confirmation (§ 5).

4.6 What Tohru Does with Your Servers

4.7 For MCP Server Providers

So that your users only have an address to paste:

5. Confirming Actions

A tool that acts (writes, sends, deletes, issues commands…) is never run without your consent: a card appears below the reply showing the tool and all of its arguments; only Allow sends the call. Declining, not answering within 5 minutes, or stopping the reply (Stop, ⌘.) counts as a refusal, and the other actions in the same reply are then discarded.

Tohru recognizes a tool that acts by its MCP annotations (readOnlyHint, destructiveHint), or otherwise by the leading verb of its name (send_…, delete_…, create_…, ajouter_……). Each tool's setting in the server's sheet (§ 4.5) overrides this classification.

6. Attachments, Dictation, Voice

7. Troubleshooting

Symptom Cause and fix
“Apple Intelligence is not available” Turn it on (Settings › Apple Intelligence & Siri) on a compatible device, or choose a model by URL.
“Apple Intelligence quota reached” The iCloud account's quota is used up for now: wait for it to reset or switch to a model by URL.
“Apple Intelligence’s guardrails declined this request” Rephrase, or use a model by URL.
Server in orange, “sign-in required” The server asks you to sign in: open its sheet, Sign in to the server… (§ 4.2).
Server in orange, “token rejected (HTTP 401)” API key missing or rejected: correct Static access token in the sheet's advanced options (§ 4.2).
Server in orange, “unrecognized certificate” Self-signed certificate: open its sheet and check the fingerprint shown before trusting it (§ 4.3), or paste the authority's certificate.
Nothing responds on the local network Allow “Local Network” for Tohru (Settings › Privacy & Security › Local Network).
http:// rejected Plain HTTP is allowed only toward the local network: use HTTPS for a server on the Internet.

8. Privacy