{"id":51240733,"url":"https://github.com/gryszzz/open-thymos","last_synced_at":"2026-06-29T00:01:23.514Z","repository":{"id":352290277,"uuid":"1214451720","full_name":"gryszzz/open-thymos","owner":"gryszzz","description":"Make AI agent actions authorized, auditable, and replayable not trust-the-prompt. A Rust execution kernel where signed capability writs + effect-ceiling enforcement gate every tool call, and an append-only hash-chained ledger lets you replay and audit exactly what an agent did and why. Cognition proposes; the runtime governs; the ledger records.","archived":false,"fork":false,"pushed_at":"2026-06-10T00:55:29.000Z","size":6813,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-06-10T02:12:26.422Z","etag":null,"topics":["agent","agent-framework","agentic-ai","autonomous-systems","capability-based-security","framework","ledger","llm","local-ai","machine-action","machine-learning","runtime-security","rust","rust-crate","systems-programming"],"latest_commit_sha":null,"homepage":"https://gryszzz.github.io/open-thymos/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gryszzz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"gryszzz","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"custom":"https://gravatar.com/anthonyleon3530"}},"created_at":"2026-04-18T15:42:52.000Z","updated_at":"2026-06-10T00:55:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gryszzz/open-thymos","commit_stats":null,"previous_names":["gryszzz/thymos","gryszzz/openthymos"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/gryszzz/open-thymos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gryszzz%2Fopen-thymos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gryszzz%2Fopen-thymos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gryszzz%2Fopen-thymos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gryszzz%2Fopen-thymos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gryszzz","download_url":"https://codeload.github.com/gryszzz/open-thymos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gryszzz%2Fopen-thymos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34907985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agent-framework","agentic-ai","autonomous-systems","capability-based-security","framework","ledger","llm","local-ai","machine-action","machine-learning","runtime-security","rust","rust-crate","systems-programming"],"created_at":"2026-06-29T00:01:22.772Z","updated_at":"2026-06-29T00:01:23.447Z","avatar_url":"https://github.com/gryszzz.png","language":"Rust","funding_links":["https://github.com/sponsors/gryszzz","https://gravatar.com/anthonyleon3530"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"./thymos/thymosG.PNG\" alt=\"OpenThymos\" width=\"325\" /\u003e\n\n[![Download](https://img.shields.io/github/v/release/gryszzz/open-thymos?style=for-the-badge\u0026label=⬇%20Download\u0026color=7c5cff)](https://github.com/gryszzz/open-thymos/releases/latest) [![Star on GitHub](https://img.shields.io/badge/⭐_Star-on_GitHub-yellow?style=for-the-badge)](https://github.com/gryszzz/open-thymos) [![License](https://img.shields.io/badge/License-Apache_2.0-blue?style=for-the-badge)](LICENSE) ![Rust](https://img.shields.io/badge/Rust-Execution_Runtime-orange?style=for-the-badge\u0026logo=rust)\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\" align=\"center\"\u003e\n\n#### ◇ Desktop app\n\n\u003cimg src=\"docs/img/desktop-mind.png\" alt=\"OpenThymos Desktop — the Mind reasoning view\" width=\"420\" /\u003e\n\nImmersive, **local-first** GUI — chat, multi-skill runtime, live runs, the 3D\n**Mind** reasoning view, audit + replay. Connect **any model** (Claude, OpenAI,\nOllama / LM Studio, any OpenAI-compatible adapter); your keys never leave your\nmachine.\n\n[![Download the Desktop app](https://img.shields.io/badge/⬇_Download_Desktop_App-7c5cff?style=for-the-badge\u0026labelColor=1c1738)](https://github.com/gryszzz/open-thymos/releases/latest)\n\n\u003csub\u003e[macOS Apple silicon](https://github.com/gryszzz/open-thymos/releases/latest/download/OpenThymos-desktop-macos-arm64.dmg) · [macOS Intel](https://github.com/gryszzz/open-thymos/releases/latest/download/OpenThymos-desktop-macos-x64.dmg) · [Windows `.msi`](https://github.com/gryszzz/open-thymos/releases/latest/download/OpenThymos-desktop-windows-x64.msi) · [Linux `.AppImage`](https://github.com/gryszzz/open-thymos/releases/latest/download/OpenThymos-desktop-linux-x64.AppImage)\u003cbr/\u003eUnsigned; one-time \"Open anyway\". Or build from source (below).\u003c/sub\u003e\n\n\n\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\" align=\"center\"\u003e\n\n#### ▣ CLI + runtime\n\n\u003cimg width=\"1264\" height=\"1054\" alt=\"E898D7D3-78F4-4E88-AF0B-76DEF0616E42_1_206_a\" src=\"https://github.com/user-attachments/assets/aacc08aa-c8b1-418c-8b0d-5b80c1078be7\" /\u003e\n\nTerminal, scriptable, server. No Rust, no clone, no compile.\n\n[![macOS](https://img.shields.io/badge/macOS-1c1738?style=for-the-badge\u0026logo=apple\u0026logoColor=7c5cff)](https://github.com/gryszzz/open-thymos/releases/latest/download/OpenThymos-cli-runtime-macos-arm64.tar.gz) [![Linux](https://img.shields.io/badge/Linux-1c1738?style=for-the-badge\u0026logo=linux\u0026logoColor=7c5cff)](https://github.com/gryszzz/open-thymos/releases/latest/download/OpenThymos-cli-runtime-linux-x64.tar.gz) [![Windows](https://img.shields.io/badge/Windows-1c1738?style=for-the-badge\u0026logo=windows\u0026logoColor=7c5cff)](https://github.com/gryszzz/open-thymos/releases/latest/download/OpenThymos-cli-runtime-windows-x64.tar.gz)\n\n\u003csub\u003emacOS badge = Apple silicon; [Intel build here](https://github.com/gryszzz/open-thymos/releases/latest/download/OpenThymos-cli-runtime-macos-x64.tar.gz). Or one line: `curl -fsSL …/scripts/get.sh | sh` (auto-detects).\u003c/sub\u003e\n\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n\u003csub\u003eAll downloads come from the \u003ca href=\"https://github.com/gryszzz/open-thymos/releases/latest\"\u003e\u003cb\u003elatest stable release\u003c/b\u003e\u003c/a\u003e — the single official production download source (release notes + checksums there). Nightly dev builds are separate and clearly marked.\u003c/sub\u003e\n\n\u003c/div\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🛠 Build from source\u003c/b\u003e — macOS · Linux · Windows (copy-paste)\u003c/summary\u003e\n\n**Prerequisites:** [Rust](https://rustup.rs) and [Node 18+](https://nodejs.org). On **Linux**, also install the webview toolkit:\n\n```bash\n# Debian / Ubuntu (Fedora: dnf install webkit2gtk4.1-devel openssl-devel …)\nsudo apt update \u0026\u0026 sudo apt install -y libwebkit2gtk-4.1-dev build-essential \\\n  curl wget file libssl-dev libayatana-appindicator3-dev librsvg2-dev\n```\n\n**Desktop app** — same commands on every platform:\n\n```bash\ngit clone https://github.com/gryszzz/open-thymos\ncd open-thymos/thymos/clients/desktop\nnpm install\nnpm run dev      # hot-reloading dev window\nnpm run build    # installer → .dmg (macOS) · .msi (Windows) · .AppImage (Linux)\n```\n\n**CLI + runtime** — from source:\n\n```bash\ncd open-thymos/thymos\ncargo run -p thymos-server                # runtime on http://localhost:3001\ncargo run -p thymos-cli -- shell          # interactive governed shell\n```\n\n\u003c/details\u003e\n\n---\n\n**Cognition proposes. The runtime governs. The ledger records.**\n\nA model cannot call a tool, mutate state, spend budget, delegate authority, or erase history  not by convention, by runtime semantics. Every effect passes through a typed proposal, a signed capability writ, a policy trace, and an append-only execution ledger.\n\n```text\nIntent → Proposal → Commit\n```\n\n| Stage | Type | Authority |\n|-------|------|-----------|\n| `Intent` | Emitted by cognition | None — content-addressed, no execution rights |\n| `Proposal` | Compiled by the runtime | Bound to a signed `Writ` + policy trace |\n| `Commit` | Written to the ledger | The only record that mutates world state |\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"VISION.md\"\u003eVision\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"https://gryszzz.github.io/open-thymos/specification/\"\u003eSpecification\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"docs/architecture.md\"\u003eArchitecture\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"https://gryszzz.github.io/open-thymos/replay/\"\u003eReplay\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"https://gryszzz.github.io/open-thymos/capability-writs/\"\u003eCapability Writs\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"docs/rfcs/\"\u003eRFCs\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## What it's for\n\nIf \"the model just did **what?!**\" is an unacceptable failure mode for you, this is the\nkernel that makes agent actions **authorized, auditable, and replayable** instead of\ntrust-the-prompt. Concretely:\n\n- **Agents that touch money, infra, or data.** A model can *propose* anything, but a\n  signed capability writ — tool scopes, effect ceiling (read / write / external /\n  irreversible), budget, time window — decides what actually runs. Effects are enforced\n  *in the compiler*, not by prompt convention.\n- **Audit \u0026 compliance for AI actions.** Every action is an append-only, hash-chained\n  ledger entry recording *what was done, under whose authority, and which policy decision\n  permitted it*. `thymos audit \u003crun-id\u003e` renders that whole trail for a human — the\n  artifact an auditor actually wants.\n- **Post-incident forensics via deterministic replay.** Replay folds committed deltas to\n  reconstruct the exact world state, and *rejects* compiler drift, policy drift, and\n  unsigned commits. \"The agent did something bad on Tuesday\" becomes reproducible and\n  verifiable, not guesswork.\n- **Multi-tenant agent platforms.** Tenant-scoped writs and delegation where a parent\n  mints a child writ that is a *strict subset* of its own authority — so agents you host\n  for others can't exceed granted authority or cross tenant boundaries.\n- **A governance layer under a router.** Routing decides what's *optimal*; THYMOS decides\n  what's *allowed* and proves what *happened*. Routing evidence is recorded for audit but\n  **never** read for authority (see the [WisePick integration](docs/integrations/wisepick.md)).\n- **Human-in-the-loop approval gates.** Irreversible actions can suspend for quorum\n  approval instead of executing — \"the agent drafts the wire transfer; a human signs off.\"\n\n**What it is _not_ (yet):** a turnkey product. It's a reference kernel — see\n[STATUS.md](STATUS.md) for the honest line between what's enforced-and-tested and what's\nstill gated (Postgres on the HTTP path, live-model CI proofs run in CI).\n\n## The Threat Model\n\nOpenThymos treats cognition as **untrusted input**. The runtime enforces this structurally:\n\n- Cognition emits intents — it cannot execute\n- Authority is carried by signed writs — it cannot be asserted inline\n- State is a projection of committed ledger deltas — it cannot be mutated in place\n- Every rejection, approval, and delegation is a ledger event — it cannot be erased\n- Replay proves the world projection from the commit sequence — it cannot call providers or re-run tools\n\nIf a proposal reaches the tool boundary, it was already authorized by a writ, cleared by the compiler, and permitted by the policy engine. The ledger records everything that happened and everything that was refused.\n\n## Execution Model\n\nThe compiler is a pure function:\n\n```\n(Intent, Writ, World, ToolRegistry, PolicyEngine) → Proposal\n```\n\nA proposal is one of three outcomes:\n\n- **Staged** — authority, budget, time window, scope, and policy all passed. Reaches the tool boundary.\n- **Suspended** — policy returned `RequireApproval { channel, reason }`. Written to the ledger as `PendingApproval`.\n- **Rejected** — writ check, budget, scope, or policy `Deny` failed. Written to the ledger as `Rejection`.\n\nOnly a `Staged` proposal executes. Only a `Commit` mutates world state.\n\n## Five Runtime Guarantees\n\nThese are invariants, not goals. They are checked structurally by the runtime, recorded in the ledger, and verifiable by replay.\n\n| | Guarantee |\n|--|-----------|\n| **I** | A valid ledger can be folded into the same world projection under the recorded commit sequence. |\n| **II** | Cognition cannot execute tools or mutate state directly. The provider boundary is enforced at the type level. |\n| **III** | Only staged proposals may reach the tool boundary. Only commits may mutate projected world state. |\n| **IV** | Tool scopes, budgets, time windows, effect ceilings, tenant boundaries, and delegation bounds are checked before execution. |\n| **V** | Policy decisions are recorded as proposal traces and cannot be erased by a client surface. |\n\n## Enforcement \u0026 Hardening\n\nThese make the guarantees above structural rather than aspirational. Each is in\nthe runtime today and covered by tests:\n\n- **Effect-ceiling enforcement.** The compiler rejects any tool whose declared\n  effect class (`Read` / `Write` / `External` / `Irreversible`) exceeds the\n  writ's effect ceiling — *before* the tool runs. A read-only writ cannot drive\n  an external or irreversible tool even when the tool name is in scope.\n- **Auditable commits.** Every commit records the originating `intent_id`, the\n  `policy_trace` that authorized it, and a `policy_set_hash` of the active rule\n  set — so a permitted action's *why* lives in the ledger, not just its *what*.\n- **Signed commits (optional).** A runtime configured with a commit-signing key\n  ed25519-signs every commit; replay can require each commit verify against the\n  corresponding public key.\n- **Secret redaction.** Tool observations pass through a redactor before they\n  enter the append-only ledger (and before cognition re-reads them), so\n  credentials are not written to permanent storage.\n- **Model-spend budgeting.** Cognition token/USD usage is debited against the\n  writ budget; a run halts when the model budget is exhausted, not only when\n  tool-call budget is.\n- **Fork-proof append.** The ledger enforces a unique `(trajectory, seq)`\n  invariant inside an immediate transaction, so concurrent writers cannot fork\n  a trajectory's chain.\n- **Drift detection on replay.** Replay can pin the compiler version, the\n  policy-set hash, and commit signatures — flagging compiler, policy, or\n  identity drift long after a run.\n- **Writ revocation + anti-replay.** A capability can be pulled at runtime (the\n  compiler rejects it, with a one-level child cascade); every writ carries a\n  nonce so it is individually identifiable.\n- **Idempotency.** An `External` / `Irreversible` tool executes at most once per\n  content-addressed proposal — retries and re-approvals return the prior commit.\n- **Multi-party approval.** A suspended proposal can require M-of-N distinct\n  approvers; any explicit denial vetoes. Irreversible, non-compensable tools can\n  be gated to *require* approval.\n- **Compensation / saga rollback.** Compensable tools are undone newest-first —\n  including across delegated child trajectories — and each rollback is itself a\n  recorded, replayable commit.\n- **External anchoring.** A Merkle root over a trajectory's entries gives\n  third-party tamper-evidence on top of the internal hash chain.\n- **Pluggable clock.** Time-window checks read an injectable clock (an attested\n  source, or a fixed clock in tests), not the bare host wall clock.\n- **Declarative policy.** Signed JSON policy bundles loadable at runtime\n  (`eq/ne/gt/lt/in/contains` + `all/any/not` over intent / writ / world), in\n  addition to in-process Rust policies.\n- **Routing evidence (advisor integration).** Optional provider routing metadata\n  is recorded immutably in the ledger (excluded from `ProposalId`) and never read\n  for authority — plus a safe, pull-based `/routing-outcomes` feedback export\n  that leaks no workload content. See [WisePick integration](docs/integrations/wisepick.md).\n\nFor the precise, adversarially-written line between *proven*, *gated*, and *not\nbuilt*, see **[STATUS.md](STATUS.md)**. Replay verifies and folds the ledger — it\ndoes not (and for an LLM cannot) re-execute cognition or tools.\n\n## Capability Writs\n\nAuthority is carried by ed25519-signed capability writs. A writ declares:\n\n- who issued the authority (issuer pubkey)\n- which subject may act (subject pubkey)\n- which tools are in scope (glob patterns)\n- which effects are allowed (effect ceiling)\n- how much budget is available (tokens, tool calls, wall clock, USD millicents)\n- when the authority is valid (not_before, expires_at)\n- whether the subject may subdivide authority (delegation bounds)\n\nChild writs must be strict subsets of parent writs. Cross-tenant delegation is forbidden. Provider identity grants no authority.\n\n## Replay\n\nReplay is a proof procedure over the execution ledger:\n\n```bash\nthymos replay run_847 --verify --fold-world --policy-trace\n```\n\nThe verifier walks every ledger entry, recomputes hashes, checks the parent chain, verifies sequence continuity, re-applies committed deltas in order, and reports the compiler versions seen. It cannot call providers. It cannot execute tools. It cannot mutate state.\n\n```bash\ncargo test -p thymos-ledger --features sqlite bench -- --include-ignored --nocapture\n```\n\nPhase I baseline (macOS arm64, SQLite in-memory, mock provider, 1 root + 1000 commits):\n\n```text\nreplay_speed   ~12,400 entries/sec   (hash verify + parent chain + world fold)\nledger_folding ~656,000 commits/sec  (delta application only)\nexec_overhead  ~1.35 ms/proposal     (compile + policy + tool execute + ledger append)\n```\n\n## Workspace\n\nThe runtime is implemented as a Rust workspace under [`thymos/`](thymos):\n\n| Crate | Responsibility |\n|-------|----------------|\n| `thymos-core` | Intent, Proposal, Commit, Writ, World, structured deltas |\n| `thymos-compiler` | Pure proposal compilation — writ check, budget, scope, policy, type |\n| `thymos-policy` | Policy evaluation, `PolicyDecision`, `PolicyTrace` |\n| `thymos-ledger` | Append-only entries, BLAKE3 hash chain, replay verifier |\n| `thymos-runtime` | IPC cycle, approvals, delegation, projection, resume |\n| `thymos-cognition` | Provider abstraction — emits intents, no authority |\n| `thymos-tools` | Rust tool contracts, JSON manifests, MCP bridges, observed effects |\n| `thymos-server` | HTTP runtime server — sessions, approvals, SSE streams |\n| `thymos-cli` | Terminal access to the runtime — `thymos replay`, `thymos run` |\n\n## Quick Start\n\nFive steps. The default model is an offline **mock**, so steps 1–2 need no keys.\n\n**1 · Install the `thymos` command**\n\n```bash\ncargo install --path thymos/crates/thymos-cli\nthymos          # ← the home screen: what it does, every command, example tasks\n```\n\n**2 · Start the runtime** (in its own terminal)\n\n```bash\ncd thymos\ncargo run -p thymos-server      # http://localhost:3001 · mock model by default, no key needed\n```\n\n**3 · Connect a real model** *(optional — mock works offline)*\n\n```bash\nthymos setup                    # shows every option: API keys + local LLMs\nthymos use openai               # or anthropic · groq · ollama · gemini · … then add the key it names\n# restart the server so it picks the model up\n```\n\n**4 · Give it a task and watch it work**\n\n```bash\nthymos run \"Map this repo and summarize how the runtime boundary works\" --follow --scopes fs_read,grep\n```\n\nYou'll watch **Intent → Proposal → Commit** stream live, then a summary. `thymos tools`\nlists every real-world action the agent can take (shell, http, fs, mcp…).\n\n**5 · See the governance**\n\n```bash\nthymos audit  \u003crun-id\u003e          # the full trail: each action, its policy verdict, + replay proof\nthymos replay \u003crun-id\u003e          # verify the ledger folds to its world\n```\n\n\u003e **In a hurry?** `./scripts/quickstart.sh` runs one governed end-to-end proof with the\n\u003e offline mock — no install, no keys. Pass a task + `ANTHROPIC_API_KEY=…` to prove it on a real model.\n\n\n**Install options (CLI + runtime)** — prebuilt for macOS / Linux / Windows, no toolchain:\n\n```bash\n# one line (macOS / Linux) — installs to ~/.local/bin, github-only, no telemetry\ncurl -fsSL https://raw.githubusercontent.com/gryszzz/open-thymos/main/scripts/get.sh | sh\nbrew install gryszzz/tap/thymos                                   # Homebrew\ndocker run --rm -p 3001:3001 ghcr.io/gryszzz/openthymos-runtime:latest   # Docker\n```\n\nOr grab a binary directly from the\n[latest release](https://github.com/gryszzz/open-thymos/releases/latest), unpack,\nand run `thymos-server` then `thymos shell`. The desktop app is a **client** of\nthis same governed runtime — it can't bypass the `Intent → Proposal → Commit`\nboundary. Scope + honest status: [docs/rfcs/desktop-app.md](docs/rfcs/desktop-app.md).\n\n### Run a dev build \u0026 track changes\n\nWant the latest unreleased code (e.g. the freshest CLI/UI) instead of a tagged\nrelease? Build from source — every binary reports its exact build:\n\n```bash\ngit clone https://github.com/gryszzz/open-thymos \u0026\u0026 cd open-thymos/thymos\ncargo run -p thymos-server                       # dev runtime\ncargo run -p thymos-cli -- shell                 # dev CLI\ncargo install --path crates/thymos-cli           # put the dev `thymos` on PATH\n\nthymos --version                                 # e.g. \"thymos 0.5.0 (a1b2c3d)\"\ngit log --oneline -10                            # the changes that build contains\n```\n\n`thymos --version` prints `\u003cversion\u003e (\u003cgit-sha\u003e)`, so you can always tell which\nbuild you're on and map it to a commit. Desktop dev mode:\n`cd clients/desktop \u0026\u0026 npm install \u0026\u0026 npm run dev` (hot-reloads the UI).\n\n**Nightly builds** (no toolchain): once the Nightly workflow has run, the\n[`nightly`](https://github.com/gryszzz/open-thymos/releases/tag/nightly)\nprerelease carries fresh binaries rebuilt from `main` each day:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/gryszzz/open-thymos/main/scripts/get.sh | THYMOS_VERSION=nightly sh\n```\n\n**Multi-agent delegation** — a parent mints a child writ ⊆ its own authority, the\nchild runs on its own trajectory, the ledger shows the lineage, replay reconstructs both:\n\n```bash\ncargo run --example delegation_lineage -p thymos-runtime   # see docs/demos/delegation-lineage.md\n```\n\n**Verify everything** (mock cognition, SQLite, governance enforced): `cd thymos \u0026\u0026 cargo test --workspace`.\nRun it on a real model, a **Postgres** ledger, or production-shaped mode — see\n**[Getting Started](docs/getting-started.md)**. Gated proofs (`live_provider`,\n`postgres_integration`) run when their secrets are present; see [STATUS.md](STATUS.md).\n\nThe Postgres HTTP runtime path is active only when the server is built with\n`--features postgres` *and* `THYMOS_POSTGRES_URL` is set; otherwise it falls\nback to SQLite. Confirm the live backend in `/health` via `\"ledger\":\"postgres\"`.\n\n### Use (almost) any model\n\nCognition is a swappable proposer — it only emits intents; the runtime governs\nevery effect no matter the model. Native **Anthropic** and **OpenAI** adapters,\nplus one-name presets for every major OpenAI-compatible provider and local\nruntime. `thymos providers` lists them all.\n\n```bash\n# Hosted: name the provider, set its key, start.\nTHYMOS_DEFAULT_PROVIDER=groq GROQ_API_KEY=… cargo run -p thymos-server\n# Local (no key): just have the runtime running.\nTHYMOS_DEFAULT_PROVIDER=ollama THYMOS_DEFAULT_MODEL=llama3.2 cargo run -p thymos-server\n# Per run — a preset, or any OpenAI-compatible URL directly:\nthymos run \"…\" --provider openrouter --model openai/gpt-4o-mini\nthymos run \"…\" --provider openai --base-url https://your-host/v1 --model your-model\n```\n\nPresets: `openai` · `groq` · `openrouter` · `together` · `deepseek` · `mistral` ·\n`xai` · `fireworks` · `nvidia` · `cerebras` · `gemini` · `perplexity` ·\n`huggingface` · `ollama` · `lmstudio` · `vllm` · `llamacpp` · `localai`. Keys are\nread **server-side** — only a provider *name* crosses the wire, never a key.\n\n## Repository\n\n| Path | Purpose |\n|------|---------|\n| [`thymos/`](thymos) | Rust workspace — runtime, compiler, ledger, policy, tools, server, CLI |\n| [`docs/`](docs) | Specification, architecture, replay, capability writs, invariants |\n| [`docs/rfcs/`](docs/rfcs) | Accepted RFCs for protocol-level changes |\n| [`docs/benchmarks.md`](docs/benchmarks.md) | Benchmark matrix, reporting format, Phase I baseline |\n| [`GOVERNANCE.md`](GOVERNANCE.md) | Project authority and decision process |\n| [`RFC_TEMPLATE.md`](RFC_TEMPLATE.md) | Protocol change template |\n\n## Design Philosophy\n\nOpenThymos is not a model wrapper. It is an execution substrate with durable runtime semantics.\n\nThe existing agent ecosystem collapses cognition and execution into one loop  a model chooses a tool, calls it, reads the result, and continues. That design is easy to demo and hard to govern. Tool calls happen before authority is modeled. Policy is applied as application code. State is reconstructed from logs after the fact, if at all.\n\nOpenThymos separates intent from authority, authority from compilation, and compilation from execution. None of these boundaries are optional.\n\nThe goal is not to maximize surface area. The goal is to define small, durable runtime semantics for governed cognition  semantics that remain legible decades from now.\n\n\u003cimg width=\"1402\" height=\"1122\" alt=\"0700A45D-0DDB-4919-B931-23FCAC999AAA\" src=\"https://github.com/user-attachments/assets/132526e7-a94b-47fe-b80b-9dc72c88e9a2\" /\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgryszzz%2Fopen-thymos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgryszzz%2Fopen-thymos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgryszzz%2Fopen-thymos/lists"}