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).
- Premier lancement
- Choisir le cerveau
- Utiliser votre propre modèle (URL d'inférence)
- Donner des outils à Tohru : les serveurs MCP
- Confirmation des actions
- Pièces jointes, dictée, voix
- Dépannage
- 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).
- Collez dans Adresse du serveur l'adresse que le fournisseur vous a donnée (
https://est ajouté s'il manque). - 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).
- 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 :
- Tohru ne voit jamais votre mot de passe ; il reçoit un jeton d'accès limité à ce serveur, conservé dans le trousseau de cet appareil et renouvelé automatiquement (chaque appareil s'identifie une fois) ;
- S'identifier auprès du serveur… rouvre la page si vous l'avez fermée ; Se déconnecter de ce serveur efface l'autorisation.
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
- À la connexion, il appelle
initializepuistools/listsur chaque serveur, en parallèle, avec 12 s de délai : un serveur éteint apparaît en orange sans gêner les autres. - Le champ
instructionsrenvoyé parinitializeest ajouté à la consigne système (3 000 caractères au plus par serveur) : c'est l'endroit des règles communes aux outils d'un serveur. Le mode d'emploi d'un outil appartient à sa description. - Un appel d'outil dispose de 420 s. Un outil en échec renvoie son erreur au modèle, qui la signale.
- Avec Apple Intelligence, le résultat d'un outil est plafonné à 12 000 caractères (contexte de 32 768 jetons) ; un outil dont le schéma d'entrée ne se traduit pas pour Apple Intelligence est signalé dans le panneau d'état et réservé au modèle à URL.
- La liste des serveurs est enregistrée sur l'appareil, sans aucun secret : jetons, clés et autorisations sont dans le trousseau.
4.7 Pour les fournisseurs de serveurs MCP
Pour que vos utilisateurs n'aient qu'une adresse à coller :
- Transport :
streamable-httpsurhttps://(certificat d'une autorité publique, Let's Encrypt par exemple : aucune manipulation de certificat côté utilisateur). - Nom : renseignez
serverInfo.title(ouname) dans la réponse àinitialize, ouresource_namedans les métadonnées de ressource protégée ; Tohru en tire le nom proposé. Mettez les règles communes dansinstructionset le mode d'emploi de chaque outil dans sa description ; annotez les outils (readOnlyHint,destructiveHint). - Authentification : suivez la spécification d'autorisation MCP (révision 2025-11-25) :
- réponse
401avecWWW-Authenticate: Bearer resource_metadata="…", scope="…"; - métadonnées de ressource protégée (RFC 9728) à
/.well-known/oauth-protected-resource; - serveur d'autorisation publiant ses métadonnées (RFC 8414 ou OpenID Connect), PKCE
S256annoncé danscode_challenge_methods_supported, paramètreresource(RFC 8707) accepté ; - inscription du client par document de métadonnées (
client_id_metadata_document_supported) — l'identifiant de Tohru esthttps://r0o.wtf/tohru/oauth/client.json, son adresse de retourhttps://r0o.wtf/tohru/oauth/callback, client public (token_endpoint_auth_method: none) — ou, à défaut, par inscription dynamique (RFC 7591,registration_endpoint) ; - si la page de connexion envoie une politique
Content-Security-Policyavecform-action, elle doit autoriser l'origine de l'adresse de retour (https://r0o.wtf) : sinon le navigateur bloque le retour vers l'application après l'envoi du formulaire ; - jeton de rafraîchissement (
refresh_token) recommandé : Tohru renouvelle seul l'accès. - Une simple clé d'API en
Authorization: Bearerreste possible (§ 4.2). - Publiez un lien d'ajout (§ 4.4) sur votre page d'assistance.
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
- Bouton + ou glisser-déposer : images, PDF, documents Word. Le PDF est lu sur l'appareil (reconnaissance de caractères pour les pages numérisées).
- Micro : dictée transcrite sur l'appareil, dans la langue de l'appareil ; la réponse à une question dictée est lue à voix haute (Réglages › Général : « Lire chaque réponse à voix haute »).
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é
- Les conversations sont enregistrées sur l'appareil uniquement ; jetons, clés et autorisations OAuth dans le trousseau. La connexion à un serveur protégé se fait sur la page de son fournisseur : Tohru ne voit pas votre mot de passe.
- Avec Apple Intelligence, les requêtes sont traitées par Private Cloud Compute d'Apple ; avec un modèle à URL, elles vont au serveur que vous avez désigné ; les appels d'outils vont à vos serveurs MCP.
- Le développeur de Tohru ne reçoit aucune donnée : ni compte, ni statistique, ni publicité.
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).
- First Launch
- Choosing the Engine
- Using Your Own Model (Inference URL)
- Giving Tohru Tools: MCP Servers
- Confirming Actions
- Attachments, Dictation, Voice
- Troubleshooting
- 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).
- Paste into Server address the address the provider gave you (
https://is added if missing). - 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).
- 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:
- Tohru never sees your password; it receives an access token limited to this server, kept in this device's keychain and renewed automatically (each device signs in once);
- Sign in to the server… reopens the page if you closed it; Sign out of this server erases the authorization.
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.
4.4 Add Links
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
- On connecting, it calls
initializethentools/liston each server, in parallel, with a 12 s timeout: a server that is down appears in orange without affecting the others. - The
instructionsfield returned byinitializeis added to the system prompt (up to 3,000 characters per server): this is where rules shared by a server's tools belong. How to use a tool belongs in its description. - A tool call has 420 s. A failing tool returns its error to the model, which reports it.
- With Apple Intelligence, a tool's result is capped at 12,000 characters (32,768-token context); a tool whose input schema cannot be translated for Apple Intelligence is flagged in the status panel and reserved for the model by URL.
- The server list is stored on the device without any secrets: tokens, keys and authorizations are in the keychain.
4.7 For MCP Server Providers
So that your users only have an address to paste:
- Transport:
streamable-httpoverhttps://(a certificate from a public authority, such as Let's Encrypt: no certificate handling for the user). - Name: fill in
serverInfo.title(orname) in theinitializeresponse, orresource_namein the protected resource metadata; Tohru derives the suggested name from it. Put shared rules ininstructionsand each tool's usage in its description; annotate tools (readOnlyHint,destructiveHint). - Authentication: follow the MCP authorization specification (revision 2025-11-25):
- a
401response withWWW-Authenticate: Bearer resource_metadata="…", scope="…"; - protected resource metadata (RFC 9728) at
/.well-known/oauth-protected-resource; - an authorization server publishing its metadata (RFC 8414 or OpenID Connect), with PKCE
S256listed incode_challenge_methods_supportedand theresourceparameter (RFC 8707) accepted; - client registration through a metadata document (
client_id_metadata_document_supported) — Tohru's client ID ishttps://r0o.wtf/tohru/oauth/client.json, its redirect URIhttps://r0o.wtf/tohru/oauth/callback, public client (token_endpoint_auth_method: none) — or, failing that, dynamic registration (RFC 7591,registration_endpoint); - if the login page sends a
Content-Security-Policywithform-action, it must allow the redirect URI's origin (https://r0o.wtf): otherwise the browser blocks the return to the app after the form is submitted; - a refresh token (
refresh_token) is recommended: Tohru renews access on its own. - A plain API key sent as
Authorization: Bearerremains possible (§ 4.2). - Publish an add link (§ 4.4) on your support page.
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
- + button or drag and drop: images, PDFs, Word documents. PDFs are read on the device (with text recognition for scanned pages).
- Microphone: dictation transcribed on the device, in the device language; the reply to a dictated question is read aloud (Settings › General: “Read Every Response Aloud”).
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
- Conversations are stored on the device only; tokens, keys and OAuth authorizations in the keychain. Signing in to a protected server happens on its provider's page: Tohru does not see your password.
- With Apple Intelligence, requests are processed by Apple's Private Cloud Compute; with a model by URL, they go to the server you specified; tool calls go to your MCP servers.
- The developer of Tohru receives no data: no account, no analytics, no advertising.