Technical

The detail,
for whoever wants it.

Nothing here is a claim we would not show you the code for. If a mechanism has an edge, the edge is on this page too.

01

What it needs

Chip
Apple Silicon. M1 or newer. There is no Intel build.
macOS
11 Big Sur or later.
Download
Signed with an Apple Developer ID and notarised by Apple. It opens without warnings and without right-click tricks.
Install
Drag to Applications. Updating keeps your microphone and accessibility permissions.

02

What it drives

troth has no model of its own and sells you no tokens. It drives what you already have, and the way it connects differs per engine.

ClaudeSubscriptionThe Claude plan you already pay for.
ChatGPTSubscriptionYour ChatGPT plan, including image generation.
KimiSubscriptionKimi for Coding, all tiers.
LocalNothingA model running on your own Mac. No account, no key, no network.
GeminiAPI keyYour own Google AI key.
DeepSeekAPI keyYour own key.
GrokAPI keyYour own xAI key.
QwenAPI keyYour own Alibaba key.
OpenRouterAPI keyYour own key, and through it whatever OpenRouter carries.
Anything elseAPI keyAny endpoint that speaks the OpenAI API. Paste the base URL.

03

When your plan hits its limit

This is the hour that ruins an afternoon: the provider you pay for says you are done for now. troth treats that as a routing problem, not as your problem.

Failover
The request moves to the next engine you have configured, in order, and answers from there. You are not asked to pick.
Cooldown
A provider that refuses is set aside for 15 seconds. If it refuses again the wait doubles: 30 seconds, then 60, then 120, capped at 5 minutes. One success clears the record.
Why back off
Hammering a provider that just rejected you is how a short block becomes a long one. Waiting longer each time is what a careful human would do.
Ordering
The chain is ordered by what the request actually needs, so a small question is not sent to the most expensive engine you own.

04

What it refuses to pay for twice

Most of what an assistant spends goes on re-reading things it has already read. troth keeps a local cache of exactly those retrievals, and the saving lands in tokens rather than only in speed.

What is cached
File reads and searches, the two things an assistant repeats most while it works through a codebase.
The key
Tool, arguments, working directory, and a hash of the file's own contents. Change one byte and the key changes, so a stale answer is not possible.
On a hit
The underlying read never runs. The cached bytes go straight into the conversation, so the request that follows is smaller. The saving is in tokens, not just in time.
Shared
The background hooks and the tools write to the same store, so whatever one warms up, the other serves.
Where it lives
On your Mac, in the same local database as everything else troth remembers.

Three further savings come from routing rather than caching: context it already holds is never re-sent, small questions go to small models, and background work does not sit on a paid context window while it waits.

05

Running a model on your own Mac

A local model costs nothing per token and sends nothing anywhere. Here is exactly how far the app takes you, and where you still do a step yourself.

The model
Pick one and troth downloads it for you with real byte-by-byte progress, either through Ollama or straight from Hugging Face into a folder in your home directory.
The runtime
You need Ollama or llama.cpp installed first. troth does NOT install it for you yet. When it is missing the app says so plainly rather than pretending to be ready.
Then
The local engine sits in the same picker as everything else, and you can send a single question to it or make it the default.
Cost
Nothing per token, forever. Your electricity is the whole bill.

06

Voice

Dictation
Speech to text on the machine itself. No key and no upload. A global hotkey works in any app, not only in troth.
Optional cloud
You can point speech recognition at a service with your own key if you prefer it. Off unless you turn it on.
Meetings
Captures what is said and hands you the transcript.

07

Where your memory lives

The thing that makes troth worth having is also the thing you would least like to hand to someone else. So it is not handed to anyone.

Stored in
A single SQLite database in your home folder. Not a cloud account. Not ours.
Survives
Switching model, closing the app, and rebooting. What it learned on Claude is there when you use a local model.
Leaves your Mac
Nothing. The app has no telemetry and no account to sync to.
Removable
Delete the database and troth forgets, completely and immediately. Nothing is held anywhere else.

08

Your keys

The rule
The model receives the result of a call. It never receives the credential that made the call.
How
Keys live in a vault the model cannot read. The tool performs the request and returns only what came back.
Why it matters
A prompt that talks the model into revealing your keys gets nothing, because there was nothing there to reveal.

09

Tools and MCP

troth speaks MCP, so it can drive tools you already use and tools you write yourself.

Included
Shell, cached retrieval, precise file editing, memory, and a gateway that carries the rest.
Adding your own
Describe or paste a server and it is staged as a pending entry. It does nothing until you approve it. A model cannot grant itself a new tool.
Images
Generated through your own ChatGPT plan or your own Google key, saved as a file on your Mac.

10

Licence and updates

Trial
7 days of the full app. No account, no card, and it works offline.
Purchase
One payment. No subscription.
Macs
3 per licence. Release one from your account page at any time to free the slot.
Updates
12 months included. After that the version you have keeps working, with no expiry and no phone-home.
Refund
The trial is the try-before-you-buy. See the refunds page for the rest.

The core is open source under the AGPL and you are welcome to read any of this for yourself. The repository is the same code the app runs.