Myst keeps your projects, notes and history in one workspace you own, and decides what any model is allowed to see. It never writes a file, and never reaches for the cloud, without telling you.
Myst is not a model with a chat box in front of it. It is the layer that decides what a model gets to see — and keeps what it knows in your workspace, not in a provider's.
Where you ask. Every answer names the sources it used and the model that produced it.
Your real repositories and their Git state — read as they are on disk, not as a snapshot from last week.
Your notes and vault, searched alongside the code rather than in a separate app.
Named procedures Myst can follow. You can read one before it runs, because it is a file, not a prompt nobody can see.
Scoped workers for longer jobs. Each is given a narrow slice of the above, never the whole workspace.
Providers, not memories. A model is handed the context Myst assembled; changing model changes who answers, not what is known.
The gate before anything is written. Myst drafts; you approve; only then does a file change.
Any product can show you its good day. These are the three moments where a system that wanted to look good would round up — and what Myst does instead.
Requests that needed this worker are waiting. Nothing was sent to a cloud provider to cover for it.
The balance update is not atomic — economy_service.py reads and writes in two statements, so two concurrent purchases can both succeed.
Five parts, in the order you meet them on an ordinary day.
Daily brief
What moved in your projects, what is waiting on you, what failed overnight. Assembled from your own workspace — not a feed, and not a summary of the internet.
Second brain
The vault you already keep, read in place. Ask a question and the answer can cite a note from two years ago and the file it describes, in the same breath.
Projects
Branch, diff, history and the actual files on disk. Myst does not work from a stale copy it indexed once, and it does not write to any of it without asking.
Three promises the software keeps mechanically, and one setting that decides how much of your work is allowed to leave the building.
Your projects, vault and workspace live on your machine. When local compute is unavailable, Myst tells you — it does not quietly send private context to a cloud provider to cover the gap.
Each compute worker is a machine you registered, and you can pause or remove it at any time. A worker that is offline is reported offline, never as slow or empty.
Myst drafts a change and shows the exact diff. Approving and applying are separate steps, a rejected proposal is not the same thing as a failed one, and Myst never commits or pushes on its own.
Two settings, changeable at any time: the routing policy in your account preferences, and the cloud-fallback switch that decides whether local-first is allowed to reach out at all.
| Behaviour | Local-only | Local-first | Cloud-enabled |
|---|
Every request is metered from an append-only usage ledger — see your balance, what you used today, and what a heavier request will cost before you send it. Credits are an internal quota, not a subscription charge; there's no payment provider in the loop.
1x credit rate
Standard credit cost — 1 credit per token unit, no markup.
Apply fix to economy_service.py?
1 file. Nothing changes until you confirm.
- balance += amount+ balance = await update_balance_atomic(user_id, amount)
Agents
Give one a task and a narrow slice of the workspace. It reports what it did and what it wants to change; changing anything still needs you.
Compute workers
A desktop, a laptop, a friend's PC with a good graphics card. Myst hands work to whichever is awake, and tells you which one answered. When none are, it says so.
| A local model handles the request | yes | yes | yes |
|---|---|---|---|
| A cloud provider is ever contacted | no | Only when the local model is unreachable, and only if you turned fallback on | yes |
| Anything leaves your machine | no | Only the requests that fall back | yes |
| What happens when the local model is down | The request fails and says so | Falls back, or fails if you did not allow it | A cloud provider answers |
| Routing policy this matches | manual / privacy_first | local_first | fastest / cheapest / best_quality / custom |