The gist.rs network
Private by default.
Better together.
Run it on your machine for free. Pay only for the hard part. Share results if you want to — opt-in, counts only, never your text — and everyone’s version gets better. One network, one account, three products.
How it works
Free on your machine. Hosted only when it is unsure.
Every product here answers the same three questions the same way.
Free, on your machine
Reflex (decisions) and cargo refine (code fixes) run locally. Nothing leaves your machine unless you say so.
Pay only for the hard part
When Reflex is not sure, Rethink will answer on our servers once its hosted lane opens. One gist.rs account. Pay per answer only where the free floor abstains — free trial credit (TUNA) first, then KAT. Pricing is published when the hosted lane opens.
Better together
Opt in to share stats — counts only, never your text. They are checked, pooled into a shared corpus, and come back to every user as better rules.
Step by step: what goes in and what comes out
1 · The free floor decides
Reflex answers decisions and cargo refine fixes code, both on your machine — no account, nothing leaves. Reflex answers when it is sure and abstains when it is not; this deploy question is one it abstained on (every outcome comes back null).
IN · a typed question, on your machine
{ "state": "The staging deploy of release candidate 4.2 finished but the error budget is down to 12 percent and two health endpoints are flapping after the rollout. Rollback is one command. Decide what happens next.", "questions": [ { "id": "route", "kind": "choice", "prompt": "Route this ticket to the team that owns it.", "options": [ "deploy-ops", "billing-support" ] }, { "id": "promote", "kind": "noul", "prompt": "Should the rollout be promoted to production right now?" }, { "id": "severity", "kind": "score", "prompt": "How severe is this situation?", "options": [ "routine", "needs-attention", "critical" ] } ] }captured from the reflex 0.2.4 release binary, 2026-10-03 · POST /decide (abstained request)
OUT · not sure: every outcome is null
{ "answers": [ { "question_id": "route", "outcome": null, "probabilities": [0.52583224, 0.47416782], "confidence": 0.0019263625 }, { "question_id": "promote", "outcome": null, "probabilities": [0.49452087], "confidence": 0.00008660555 }, { "question_id": "severity", "outcome": null, "probabilities": [0.3601853, 0.2878931, 0.35192165], "confidence": 0.004379213 } ], "routing": { "lane": "modelless", "reason": "modelless corpus routing: ops=3 support=0; fused abstain (score+distance) armed; drafter-only=1" }, "calibration": { "method": "none", "temperature": 1.0 } }captured from the reflex 0.2.4 release binary, 2026-10-03 · POST /decide (abstained response)
2a · Sure → the answer stays here
When the floor is sure, the answer goes straight back to your app and nothing leaves your machine. In the open serve every answer also carries a receipt: the exact build plus hashes of the input and of the decision — hashes, not your data.
IN · POST /decide
{ "state": "The piece leaves no holes under it on the left edge, sits flat on the surface, and the stack stays low.", "questions": [ { "id": "clean", "kind": "noul", "prompt": "Does the stack look clean?" } ] }captured from the reflex 0.2.4 release binary, 2026-10-03 · POST /decide (answered request)
OUT · sure: outcome yes
{ "answers": [ { "question_id": "clean", "outcome": { "noul": { "yes": true } }, "probabilities": [0.51943666], "confidence": 0.51943666 } ], "routing": { "lane": "modelless", "reason": "game-head/tetris (corpus-fitted, decoded arm)" }, "calibration": { "method": "none", "temperature": 1.0 } }captured from the reflex 0.2.4 release binary, 2026-10-03 · POST /decide (answered response)
2b · Not sure → the hosted head ○ illustrative · planned
Only the questions the floor abstained on would go up, to a trained head running on our hosts; the answer comes back with a receipt. The hosted lane is opening — this is the public request it would carry, and its reply is published when the lane opens.
IN · the same question, sent up
{ "state": "The staging deploy of release candidate 4.2 finished but the error budget is down to 12 percent and two health endpoints are flapping after the rollout. Rollback is one command. Decide what happens next.", "questions": [ { "id": "route", "kind": "choice", "prompt": "Route this ticket to the team that owns it.", "options": [ "deploy-ops", "billing-support" ] }, { "id": "promote", "kind": "noul", "prompt": "Should the rollout be promoted to production right now?" }, { "id": "severity", "kind": "score", "prompt": "How severe is this situation?", "options": [ "routine", "needs-attention", "critical" ] } ] }captured from the reflex 0.2.4 release binary, 2026-10-03 · POST /decide (abstained request)
3 · Opt-in stats and receipts
Off unless you switch it on. A stats row holds counts only — how many decisions, how many abstentions — signed by your key, never your text; receipts are hashes anyone can re-check. Runs on the test network today.
4 · The shared corpus
Checked, pooled, public: verified rows land in a corpus anyone can read, with a commitment root per epoch. Test network today.
5 · The next version comes back
The corpus feeds a quality gate. New rules and retrained heads ship only if they pass, and the loop returns to the floor — free, for every machine. Planned: it ships with the hosted lane.
Products
Three products, one journey
Start free with Reflex. Add Rethink for the questions Reflex abstains on (says “I’m not sure” instead of guessing). Use Refine for your Rust code.
Reflex
The free decision engine. Runs on your machine, decides in microseconds without a trained model, and abstains instead of guessing.
reflex.gist.rs →Rethink
Hosted trained decisions for the questions Reflex is not sure about — the hosted lane is opening, it does not serve answers yet. One gist.rs account. Pay per answer only where the free floor abstains — free trial credit (TUNA) first, then KAT. Pricing is published when the hosted lane opens.
rethink.gist.rs →Refine
The code fixer that learns. cargo refine fixes Clippy lints, Rust performance, Dockerfiles and release profiles, plus compile errors — and keeps only the fixes that still compile.
One account
One account, everywhere
A single account works across the network. Here is what the words mean.
- TUNA
- Free trial credit, one grant per account. Where a network’s trial reservoir is funded, new accounts spend TUNA first — refine, rethink, everything on the network — and KAT after it; where it is not, metered use bills KAT directly. The public TUNA counters show the live network’s reservoir.
- KAT
- The network’s metered service credit for paid answers and fixes. No cash value and no redemption right.
- epoch
- The network’s one-week accounting period. Every KAT burn (credit spent) funds the next epoch’s mining pool.
- mining
- Opting in to share records of your own runs — rule verdicts plus the code spans each fix touched, secret-scanned, never whole files, published under MIT once proven. Miners are paid KAT from that pool.
The public ledger
Every balance, burn and payout is on the network’s own ledger, and the views are public.
The network API — accounts, KAT, TUNA and the ledger — answers at
devnet.gist.rs, the live network Refine, Reflex and Rethink share; mainnet.gist.rs opens later. Reflex runs on your machine and does not need it.