{"id":50963100,"url":"https://github.com/gabrielvuksani/wotann-code","last_synced_at":"2026-06-18T16:33:00.188Z","repository":{"id":351371052,"uuid":"1210690685","full_name":"gabrielvuksani/wotann-code","owner":"gabrielvuksani","description":"the agentic coding harness","archived":false,"fork":false,"pushed_at":"2026-06-01T06:43:22.000Z","size":29897,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T04:20:46.742Z","etag":null,"topics":["agent-framework","ai-agent","anthropic","claude","computer-use","free-tier","harness","llm","mcp","norse","ollama","openai","provider-agnostic","swift","tauri","typescript"],"latest_commit_sha":null,"homepage":"https://wotann.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielvuksani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-14T16:59:17.000Z","updated_at":"2026-06-08T01:50:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gabrielvuksani/wotann-code","commit_stats":null,"previous_names":["gabrielvuksani/wotann"],"tags_count":96,"template":false,"template_full_name":null,"purl":"pkg:github/gabrielvuksani/wotann-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielvuksani%2Fwotann-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielvuksani%2Fwotann-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielvuksani%2Fwotann-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielvuksani%2Fwotann-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielvuksani","download_url":"https://codeload.github.com/gabrielvuksani/wotann-code/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielvuksani%2Fwotann-code/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34499405,"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-18T02:00:06.871Z","response_time":128,"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-framework","ai-agent","anthropic","claude","computer-use","free-tier","harness","llm","mcp","norse","ollama","openai","provider-agnostic","swift","tauri","typescript"],"created_at":"2026-06-18T16:32:58.997Z","updated_at":"2026-06-18T16:33:00.180Z","avatar_url":"https://github.com/gabrielvuksani.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# WOTANN\n\n**The All-Father of AI agent harnesses.**\n\nOne install. Your providers. Every channel. Full autonomy.\n\n\u003cp\u003e\n  \u003ca href=\"https://github.com/gabrielvuksani/wotann/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/gabrielvuksani/wotann/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/gabrielvuksani/wotann/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"MIT License\"\u003e\u003c/a\u003e\n  \u003ca href=\"#requirements\"\u003e\u003cimg src=\"https://img.shields.io/badge/node-%E2%89%A522.13-43853d.svg?logo=node.js\u0026logoColor=white\" alt=\"Node 22.13+\"\u003e\u003c/a\u003e\n  \u003ca href=\"#platforms\"\u003e\u003cimg src=\"https://img.shields.io/badge/macOS%20%C2%B7%20Linux%20%C2%B7%20Windows%20%C2%B7%20iOS-supported-555.svg\" alt=\"Platforms\"\u003e\u003c/a\u003e\n  \u003ca href=\"#headline-capabilities\"\u003e\u003cimg src=\"https://img.shields.io/badge/providers-25-0A84FF.svg\" alt=\"25 providers\"\u003e\u003c/a\u003e\n  \u003ca href=\"#headline-capabilities\"\u003e\u003cimg src=\"https://img.shields.io/badge/channels-25%2B-0A84FF.svg\" alt=\"25+ channels\"\u003e\u003c/a\u003e\n  \u003ca href=\"#by-the-numbers\"\u003e\u003cimg src=\"https://img.shields.io/badge/tests-passing-green.svg\" alt=\"tests passing\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://wotann.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/wotann.com-Norse%20themed-8B5CF6.svg\" alt=\"wotann.com\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://aaif.io/\"\u003e\u003cimg src=\"https://img.shields.io/badge/AAIF-Agentic%20AI%20Foundation-0094FF.svg\" alt=\"AAIF aligned\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\n\u003cstrong\u003eWOTANN treats the LLM as just the inference call.\u003c/strong\u003e\u003cbr/\u003e\nMemory, tools, sandbox, orchestration, learning — all come from the harness.\u003cbr/\u003e\nInference comes from a remote subscription or API-key provider you configure.\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\n\u003c/div\u003e\n\n---\n\n## Why WOTANN\n\nMost agent frameworks lock you to a vendor, degrade quietly when a model can't tool-call, and hand you a single UI. WOTANN inverts that. It lives at the layer above inference so your configured lab subscription or API-key provider remains replaceable without moving agent execution off your machine.\n\n|   | Most agents | **WOTANN** |\n|---|---|---|\n| **Provider** | Locked to one vendor | **25 providers** via openai-compat router; Anthropic + OpenAI subscriptions OR API keys |\n| **Capabilities** | Tool-calling, vision, thinking gated by model support | **Capability augmentation** normalizes provider capabilities |\n| **Inference economics** | Resold tokens or bundled inference | **BYO subscription or API key**: the user pays the lab |\n| **Memory** | Short-lived prompt context | **8-layer persistent**: SQLite + FTS5 + vector + graph-RAG + episodic + temporal + provenance |\n| **Surfaces** | One UI | **CLI + TUI + Desktop + iOS + Watch + CarPlay + 25 messaging channels** |\n| **Autonomy** | Vibes | **Proof bundles** (tests + typecheck + diff + screenshots) on every completion |\n| **Lock-in** | Total | Zero — swap models mid-session, export all state |\n\n---\n\n## Quick Start\n\n```bash\n# Try without installing (any platform — needs Node 22.13+)\nnpx wotann@latest\n\n# One-line install (macOS or Linux)\ncurl -fsSL https://raw.githubusercontent.com/gabrielvuksani/wotann/main/install.sh | bash\n\n# Windows (PowerShell — see install.ps1)\nirm https://wotann.com/install.ps1 | iex\n\n# Or from npm (any platform)\nnpm install -g wotann\n\n# Initialize a workspace\nwotann init\n\n# Start the always-on engine\nwotann engine start\n\n# Launch the TUI\nwotann\n```\n\n### Windows install\n\nWOTANN runs on Windows 10/11 with Node.js 22.13+. The bash installer above is POSIX-only — Windows users have three supported paths:\n\n```powershell\n# PowerShell one-liner (downloads and runs install.ps1)\nirm https://raw.githubusercontent.com/gabrielvuksani/wotann/main/install.ps1 | iex\n\n# Or from npm (when published) — works on every Node-supported OS\nnpm install -g wotann\n\n# Or run without installing (npx pulls the latest published version)\nnpx wotann@latest\n```\n\nNode.js prerequisite on Windows: `winget install OpenJS.NodeJS.LTS` (Node 22.13+ required). The PowerShell installer enforces this; the npm path surfaces a friendly preflight error on older Node.\n\nAgent execution and trust enforcement run on your machine. Inference uses a provider subscription or API key that you configure; WOTANN does not run local models or silently route prompts to anonymous public endpoints.\n\n```bash\n# Use frontier models when you want them\nexport ANTHROPIC_API_KEY=sk-ant-...\nexport OPENAI_API_KEY=sk-...\nexport GEMINI_API_KEY=AIza...\n\n# ChatGPT/Codex and Claude subscription paths are supported too\nwotann onboard\n```\n\nThere is no anonymous zero-config inference tier. If no authenticated remote processor is configured, WOTANN reports that honestly.\n\n---\n\n## A Minute of WOTANN\n\n```bash\n# Fix failing tests autonomously — with a proof bundle\n$ wotann autonomous \"fix the failing tests in src/memory\"\n  [1/8] verification: 3 failing tests detected\n  [2/8] strategy: minimal-change (preferred — tests are green-adjacent)\n  [3/8] patch: memory/store.ts:441 null-check added, memory/hybrid.ts:88 guard\n  [4/8] verification: tests + lint + typecheck all green · 46.01s\n  [5/8] proof bundle: artifacts/proof-2026-04-20-133801.tar.gz\n  [6/8] crystallize: skill saved as skills/fix-null-check-memory-store.md\n  SUCCESS in 3 cycles · $0.42 · 47,000 tokens\n\n# Compare three models blind, side-by-side\n$ wotann arena \"refactor this function for readability\"\n  ─── A ──────────  ─── B ──────────  ─── C ──────────\n  [Opus output]     [GPT-5.4 output]  [Gemini 3 Pro output]\n  Blind choice: B (revealed: GPT-5.4)\n\n# Same conversation, phone tap\n$ wotann link\n  Scan QR on iPhone. Token transferred via ECDH. Session mirrored.\n```\n\n---\n\n## Headline Capabilities\n\n### Provider freedom (the moat)\n\nRemote providers share one router with authenticated fallback chaining: `preferred → other configured remote processors`. Local runtimes and anonymous endpoints are excluded from executable fallback. If configured processors exhaust, WOTANN reports that honestly.\n\nRuntime providers can be added without editing source: drop a strict `provider.json` under `.wotann/providers/\u003cname\u003e/` with an OpenAI-compatible `baseUrl`, model list, capabilities, and an `auth.envKey`. WOTANN validates the manifest, refuses token-bearing manifests, and routes it through the same provider registry as built-ins.\n\n```\nAnthropic API    Anthropic Subscription   OpenAI    Codex (ChatGPT OAuth)\nGitHub Copilot   OpenRouter               Gemini    HuggingFace\nAzure            Bedrock                  Vertex    Mistral\nDeepSeek         Perplexity               xAI       Together\nFireworks        SambaNova                Groq      Cerebras\n```\n\n### The harness amplifies provider capabilities\n\n`capability-augmenter` injects tool-calling, vision (via OCR + a11y tree), and extended thinking prompts into configured providers that lack native support. The trust layer stays independent of any one model family.\n\n### Multi-surface, one agent, one memory\n\n| Surface | What you get |\n|---|---|\n| **CLI** | 78+ commands incl. `init`, `engine`, `autonomous`, `arena`, `link`, `enhance`, `cost` |\n| **TUI** | Ink-rendered REPL · Obsidian Precision theme · voice push-to-talk · slash commands · OSC 133 blocks |\n| **Desktop** (Tauri 2) | Chat / Editor (Monaco) / Workshop / Exploit / Trust / Integrations · Command palette ⌘K · Computer Use panel |\n| **iOS** (SwiftUI) | Phase C chat · Phase D work tab with filter pills · Phase E onboarding wizard |\n| **Apple Watch** | Quick actions (run tests, build, lint, approve, voice) via WCSession |\n| **CarPlay** | Hands-free dispatch with list + detail templates |\n| **Widgets + Live Activities** | Cost + agent status widgets · Dynamic Island progress |\n| **Share Extension** | Send any text/URL into a WOTANN conversation from any iOS app |\n| **Siri Intents** | AskWOTANN · CheckCost · EnhancePrompt |\n| **Channels (25+)** | Telegram · Slack · Discord · Signal · WhatsApp · iMessage · Teams · Matrix · Mastodon · WeChat · LINE · Viber · DingTalk · Feishu · Email · SMS · Webhooks · GitHub bot · IDE bridge · IRC · Google Chat · webchat · + more |\n\n### Autonomous with proof, not vibes\n\n```bash\nwotann autonomous \"fix the failing tests in src/memory\"\n```\n\nRuns **Ralph mode** (verify-fix loop) + **self-healing** (provider fallback) + **8-strategy escalation** (decompose, research-first, minimal-change, revert-and-retry, fresh-context, different-model, ask-for-help). Doom-loop detector prevents infinite cycles. Every completion ships a **proof bundle**: tests, typecheck, lint, diff summary, optional screenshots. Trust UI surfaces them to you.\n\n### Intelligence you can inspect\n\n- **Guardian** post-response LLM-as-judge review (`WOTANN_GUARDIAN=1`)\n- **Self-consistency voting** — N parallel samples with confidence score\n- **Council deliberation** — 3-stage multi-provider peer review + chairman synthesis\n- **Unified knowledge fabric** — single search API across memory / context-tree / graph-RAG / vector / FTS5, with deterministic retrieval fallbacks when no authenticated remote embedding processor is configured\n- **Context replay** — priority-weighted reassembly under an explicit token budget\n- **Dream pipeline** — nightly consolidation 02:00-04:00, extracts skills from successful runs\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│  Surfaces                                                           │\n│  CLI · TUI · Desktop (Tauri) · iOS · Watch · CarPlay · 25 channels  │\n└──────────────────┬───────────────────────────┬──────────────────────┘\n                   │                           │\n                   ▼                           ▼\n┌─────────────────────────────────────────────────────────────────────┐\n│  KAIROS Daemon (always-on, ~/.wotann/kairos.sock)                   │\n│  Session-token auth · 15s tick · cron · heartbeat · event triggers  │\n└──────────────────┬───────────────────────────┬──────────────────────┘\n                   │                           │\n                   ▼                           ▼\n┌─────────────────────────────────────────────────────────────────────┐\n│  WotannRuntime (composition root)                                   │\n│  ┌─────────────┐ ┌─────────────┐ ┌────────────┐ ┌────────────────┐  │\n│  │ 41-layer    │ │ 85 intel    │ │ 79 orch    │ │ 31-event hooks │  │\n│  │ middleware  │ │ modules     │ │ modules    │ │ + DoomLoop     │  │\n│  └─────────────┘ └─────────────┘ └────────────┘ └────────────────┘  │\n│  ┌─────────────┐ ┌─────────────┐ ┌────────────┐ ┌────────────────┐  │\n│  │ 8-layer     │ │ 4-layer     │ │ 25 prov    │ │ Skill registry │  │\n│  │ memory      │ │ Computer Use│ │ + fallback │ │ + MCP registry │  │\n│  └─────────────┘ └─────────────┘ └────────────┘ └────────────────┘  │\n└──────────────────┬──────────────────────────────────────────────────┘\n                   │\n                   ▼\n         Inference call (the only thing the LLM does)\n```\n\nSee [`docs/CAPABILITY_ADAPTATION_MATRIX.md`](docs/CAPABILITY_ADAPTATION_MATRIX.md) for how the harness equalizes capabilities across model tiers.\n\n---\n\n## By the Numbers\n\n|   |   |\n|---|---|\n| **Source** | 2,551 TypeScript files in the current tree (1,380 `src` · 1,171 `tests`) |\n| **Middleware** | 41 PIPELINE layers (in `src/middleware/pipeline.ts`) |\n| **Providers** | 25 entries in `PROVIDER_DEFAULTS` (7 distinct adapter backends + capability augmentation) |\n| **Channels** | 41 modules in `src/channels/` |\n| **Surfaces** | 7 (CLI · TUI · Desktop · iOS · Watch · CarPlay · Channels) |\n| **Memory layers** | 8 (FTS5 · vector · graph-RAG · episodic · semantic · temporal · working · archival) |\n| **Intelligence modules** | 85 in `src/intelligence/` (auto-reviewer · verification-cascade · DAP · karpathy-principles · …) |\n| **Orchestration patterns** | 79 modules in `src/orchestration/` (coordinator · waves · PWR · Ralph · council · squads · canary · …) |\n| **Skills** | 138 `SKILL.md` entries under `skills/` + 18 `BUILT_IN` code-embedded guards |\n| **Hook events** | 31 (28 producer-wired · 3 advisory) with 23 BUILT_IN guards |\n\n---\n\n## Project Structure\n\n```\nsrc/\n├── core/             Composition root (WotannRuntime) · agent bridge · types\n├── providers/        25 entries in PROVIDER_DEFAULTS · router · rate limiter · format translator\n├── middleware/       41-layer PIPELINE in `pipeline.ts` + TTSR streaming\n├── intelligence/     85 modules that meaningfully affect model behavior\n├── orchestration/    79 modules — coordinator · waves · PWR · Ralph · council · squads · canary · ...\n├── memory/           80 modules · SQLite + FTS5 · 8 layers · vector · graph-RAG · episodic\n├── context/          5 compaction strategies · legacy local-runtime code slated for subtraction\n├── prompt/           Engine · 18 prompt modules · instruction provenance\n├── hooks/            31 events (28 producer-wired · 3 advisory) · 23 guards · DoomLoop\n├── computer-use/     4-layer perception + action stack (text-mediated for any model)\n├── channels/         25+ adapters + DM pairing + node registry\n├── voice/            Push-to-talk · authenticated remote STT/TTS adapters\n├── learning/         autoDream · instincts · skill-forge · pattern-crystallizer\n├── identity/         Persona system · soul/identity loading · Norse mythology\n├── security/         Anti-distillation · PII redaction · sandbox · guardrails · SSRF guard\n├── telemetry/        Cost tracker · session analytics · audit trail\n├── marketplace/      MCP registry · skill marketplace · ACP agent discovery\n├── ui/               Ink TUI · 20 themes · voice controller · diff engine · OSC 133 blocks\n├── desktop/          Tauri config · companion server · app state\n├── mobile/           iOS handlers · pairing · haptics · live activities\n└── daemon/           KAIROS engine · IPC · RPC · cron · heartbeat\n\ndesktop-app/          Tauri 2 desktop (React + Rust) · ⌘K command palette\nios/                  SwiftUI app (5 targets — main · Intents · Widgets · Watch · Share)\ndocs/                 Architecture references (auth · surface parity · capability adaptation · build)\ndesign-brief/         Design system: tokens · brand identity · surface guidelines · reference shots\nskills/               138 SKILL.md entries (progressive disclosure; 18 BUILT_IN guards)\n```\n\n---\n\n## Commands\n\n| Command | Purpose |\n|---------|---------|\n| `wotann init` | Initialize workspace |\n| `wotann engine` | Start the KAIROS daemon |\n| `wotann run \u003cprompt\u003e` | Non-interactive — execute a prompt with full harness intelligence |\n| `wotann doctor` | Health diagnostics |\n| `wotann arena` | Compare models blind side-by-side |\n| `wotann autonomous \u003ctask\u003e` | Autonomous execution with proof bundle |\n| `wotann link` | Pair an iPhone via PIN or Bonjour |\n| `wotann onboard` | Interactive provider setup |\n| `wotann voice` | Push-to-talk voice mode |\n| `wotann loop \"prompt\" --interval 5m` | Self-pacing recurring prompt |\n| `wotann channels` | Manage messaging channel adapters |\n| `wotann cost` | Predict or review session cost |\n\nRun `wotann --help` for the full 78+ command surface.\n\n---\n\n## Platforms\n\n- **macOS 13+** — full support including desktop DMG (ad-hoc signed)\n- **Linux** — CLI + daemon (TUI optional)\n- **Windows 11** — CLI + daemon (Tauri build supported)\n- **iOS 18+** — companion app (TestFlight pending — clone + build in the meantime)\n- **watchOS 11+** — Watch companion (paired via iPhone)\n\n---\n\n## Requirements\n\n- **Node ≥ 22.13** (current LTS; install via `winget install OpenJS.NodeJS.LTS` on Windows or `brew install node@22` on macOS)\n- **macOS 13+ / Linux / Windows 11**\n- **Optional**: Python 3.11+ (for camoufox stealth browser backend), Xcode 16 (iOS builds)\n\n---\n\n## Privacy\n\nAgent execution and trust enforcement run locally. Inference payloads go only to the configured lab provider. Telemetry is opt-out and triple-gated — industry-standard `DO_NOT_TRACK=1` is honored, plus WOTANN-specific `WOTANN_NO_TELEMETRY=1`, plus a sentinel file at `~/.wotann/no-telemetry`.\n\n```bash\nexport WOTANN_NO_TELEMETRY=1\n```\n\nNo data leaves your machine unless you explicitly send it to a provider you chose. No `phone-home`. No analytics pings. No crash reporting without consent.\n\n---\n\n## Configuration\n\nPer-user config lives in `~/.wotann/`:\n\n```\n~/.wotann/\n├── wotann.yaml              # Providers · channels · MCP servers\n├── session-token.json       # 256-bit daemon RPC auth token (chmod 0600)\n├── memory.db                # SQLite + FTS5 — gitignored\n├── sessions/                # Per-session JSON snapshots\n├── dreams/                  # Dream-pipeline outputs\n├── episodes/                # Episodic memory\n├── logs/                    # Daily JSONL daemon logs\n└── identity/                # SOUL.md · IDENTITY.md · AGENTS.md · etc.\n```\n\n---\n\n## Authentication\n\nThe daemon enforces session-token auth on every RPC call. Local clients (CLI, desktop, iOS) read `~/.wotann/session-token.json` automatically. For development, set `WOTANN_AUTH_BYPASS=1` — see [`docs/AUTH.md`](docs/AUTH.md).\n\n---\n\n## Documentation\n\n| Doc | What's inside |\n|---|---|\n| [`WOTANN.md`](WOTANN.md) | Project codebook — architecture, conventions, naming, structure |\n| [`identity.md`](identity.md) | Agent persona — voice, tone, character |\n| [`soul.md`](soul.md) | Guiding principles — values, ethics, what the agent will/won't do |\n| [`docs/AUTH.md`](docs/AUTH.md) | Daemon RPC authentication convention |\n| [`docs/CAPABILITY_ADAPTATION_MATRIX.md`](docs/CAPABILITY_ADAPTATION_MATRIX.md) | How tool-calling / vision / thinking are synthesized on weaker models |\n| [`docs/SKILLS.md`](docs/SKILLS.md) | Skill system — frontmatter spec, tool-flow rules, activation, install |\n| [`docs/MCP.md`](docs/MCP.md) | MCP — install/import servers, run WOTANN as a server, scaffold one |\n| [`docs/SEA_BUILD_ENVIRONMENTAL_GATE.md`](docs/SEA_BUILD_ENVIRONMENTAL_GATE.md) | Single-executable (SEA) build environment requirements |\n| [`docs/SELF_HOSTED_RUNNER_SETUP.md`](docs/SELF_HOSTED_RUNNER_SETUP.md) | Self-hosted GitHub Actions runner for SEA + iOS jobs |\n| [`CHANGELOG.md`](CHANGELOG.md) | Version history |\n| [`AGENTS.md`](AGENTS.md) | AAIF AGENTS.md standard compliance file |\n\n---\n\n## Contributing\n\nPull requests welcome. See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the development workflow, coding conventions (TypeScript strict, no `any`, immutable data, 200–400 LOC files), and how the `planner → test-engineer → code-reviewer → verifier` agent dispatch works.\n\nThe short version: fork, branch, TDD, open a PR. CI runs typecheck, lint, build, the full vitest suite, plus a dedicated iOS Simulator build job on every push.\n\n---\n\n## Security\n\nFound a vulnerability? See [`SECURITY.md`](SECURITY.md) for responsible disclosure. The daemon's RPC surface, the sandbox, and the Tauri configuration are the primary review targets.\n\n---\n\n## Acknowledgements\n\nWOTANN's harness ideas borrow generously from the open-source agent ecosystem. Notable inspirations: Hermes Agent (NousResearch), DeepAgents (LangChain), Open-SWE (LangChain), DeerFlow (ByteDance), oh-my-openagent, opcode, eigent, Aider, Cursor, Claude Code, Codex CLI, charmbracelet/crush, oraios/serena, can1357/oh-my-pi, Zed, Goose, and the Agent Communication Protocol (ACP) reference implementations.\n\n---\n\n## License\n\n[MIT](LICENSE) © 2026 Gabriel Vuksani\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003e *\"Think like Odin: see the whole board, pay the price for true knowledge,*\n\u003e *speak directly, build what will last, and let Huginn and Muninn carry the memory forward.\"*\n\u003e\n\u003e — `.wotann/SOUL.md`\n\n\u003cbr/\u003e\n\n\u003csub\u003eBuilt with TypeScript · SwiftUI · Rust · Ink · Tauri 2 · Vite\u003c/sub\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielvuksani%2Fwotann-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielvuksani%2Fwotann-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielvuksani%2Fwotann-code/lists"}