▟▙        ●   ●
     ▟██▙       ▌ ‿ ▐
    ▟████▙     ▗▟███▙
  ▗▟██████▙▄▄▄▄▟████▙
  ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▛▘
$ turris turi --idle — dozing by the prompt
TURRIS MERCATUS v0.109.1-alpha · open source

The financial assistant
that lives in your house.

Turi is a locally-hosted market companion — chat with him about your book, and he answers from models running on your own hardware. No cloud required, no keys leaving the machine, and hard-coded rails between any model and your money.

100% local-first rails gate every order self-hosted · yours
NVDA 128.40RKLB +41.1%BTC 96,400AVGO +2.0%SMCI −3.3%ASTS +4.2%SMR +29.9%INTC −8.7%TSM +1.2%NVDA 128.40RKLB +41.1%BTC 96,400AVGO +2.0%SMCI −3.3%ASTS +4.2%SMR +29.9%INTC −8.7%TSM +1.2%
The assistant

Ask about money. Get answers with receipts.

Quick questions run on the quick-prompt model; deep runs read quotes, news and your thesis notes before they speak. Mention a CLI job mid-chat — "restart the service" — and the assistant hands it straight to Turi's terminal.

Any news on ASTS?
No fresh headlines in 24h. Still a moonshot — up +20.1% on your book, no catalyst today.
gemma-4-26b · your GPU · 61 tok/s
The coordinator

Turi runs the floor.

The terminal mascot is also the chief coordinator: he takes your brief, files a ticket, and walks it through 13 review departments — each agent working in its own Docker sandbox. Nothing merges, nothing trades, without clearing the desks.

Regime
trend 62 · chop 25 · panic 13
$ turris route "add Sortino to analytics"
→ ticket #6 · Intake → … → Release
sandboxed · PR-only · you approve merges
One brain, every surface

WebUI · CLI · iPhone · Apple Watch

Widgets, Lock Screen and watch complications render from the same data — and the same turi.js sprite spec feeds every terminal, widget and complication.

Local model API

Your GPU is the backend.

llama.cpp hosts your GGUF models behind a local, OpenAI-compatible endpoint. Auto-tune finds the fastest stable settings for your hardware; a REST API exposes your portfolio, quotes and runs to your own scripts. On iPhone, chat can even fall back to on-device models (Apple Foundation, Llama 3.2) when you're off-network.

engine  127.0.0.1:8790 · gemma-4-26b · 61 tok/s
api     :8789 · Bearer tokens · tailnet-only
The rails

Models propose. Rails decide.

Enforced in code, not prompts: agentic account only, equities only, position caps, daily order limits, live re-quotes, and blocked trades become proposals you approve — from the phone, the watch, or not at all.

one tradable account8% position capblocked → proposalre-auth before trades
And the rest of the tower

Everything a market brain needs.

In the wild

The same book, on every screen.

homelab.crested-owl.ts.net:8789 — Turris Mercatus
Web dashboard
WebUIthe full dashboard, served from your homelab
iPhone app
iPhone · widgets · Siri · on-device chat
turris — zsh — 96×28
Turris CLI
CLIturris help — Turi hosts the menu · same on PowerShell
Apple Watch app
Apple Watchcrown-scrollable stack · complications for every dial