{"id":50926686,"url":"https://github.com/zanni098/anomalithic","last_synced_at":"2026-06-17T00:01:26.776Z","repository":{"id":365098192,"uuid":"1270545906","full_name":"zanni098/Anomalithic","owner":"zanni098","description":"One open-core, model-agnostic AI agent runtime to rule them all — MCP, skills, hooks, multi-agent, cross-session memory, and a thinking-time ad network (50/50 stablecoin payouts).","archived":false,"fork":false,"pushed_at":"2026-06-15T20:40:07.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T22:20:45.969Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/zanni098.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security/threat-model-ads.md","support":null,"governance":null,"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}},"created_at":"2026-06-15T20:24:10.000Z","updated_at":"2026-06-15T20:40:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zanni098/Anomalithic","commit_stats":null,"previous_names":["zanni098/anomalithic"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/zanni098/Anomalithic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanni098%2FAnomalithic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanni098%2FAnomalithic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanni098%2FAnomalithic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanni098%2FAnomalithic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zanni098","download_url":"https://codeload.github.com/zanni098/Anomalithic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanni098%2FAnomalithic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34428197,"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-16T02:00:06.860Z","response_time":126,"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":[],"created_at":"2026-06-17T00:00:37.121Z","updated_at":"2026-06-17T00:01:26.771Z","avatar_url":"https://github.com/zanni098.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# ⬛ Anomalithic\n\n### One open-core, model-agnostic agent runtime to rule them all.\n\n[**Live site →**](https://anomalithic.vercel.app) \u0026nbsp;·\u0026nbsp; [Architecture](./ARCHITECTURE.md) \u0026nbsp;·\u0026nbsp; [Roadmap](./ROADMAP.md) \u0026nbsp;·\u0026nbsp; [Ad spec](./docs/specs/thinking-impressions.md)\n\n[![CI](https://github.com/zanni098/Anomalithic/actions/workflows/ci.yml/badge.svg)](https://github.com/zanni098/Anomalithic/actions/workflows/ci.yml)\n![License](https://img.shields.io/badge/license-Apache--2.0-blue)\n![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6)\n![Models](https://img.shields.io/badge/models-Claude%20·%20Gemini%20·%20GPT%20·%20Llama%20·%20Ollama-b8502d)\n\n\u003ca href=\"https://anomalithic.vercel.app\"\u003e\u003cimg src=\"./docs/media/home.png\" alt=\"Anomalithic — one agent to rule them all\" width=\"900\" /\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n---\n\nAnomalithic is an AI agent runtime designed to match the capability of tools like\nClaude Code while staying **provider-agnostic** and **self-hostable**. It runs for\nminutes or days, spawns teams of sub-agents, speaks MCP, loads **Claude *and* Codex\nskills**, fires lifecycle hooks, remembers across sessions — and funds itself with a\nthinking-time ad network that pays watchers **50/50** in stablecoin.\n\nThe name is *anomaly* + *-lithic* (stone / monolith): the one monolithic agent.\n\n## ✦ The killer feature — get paid while agents think\n\n\u003cimg src=\"./docs/media/earn.png\" alt=\"Thinking-time ads — 50/50 split\" width=\"900\" /\u003e\n\nAdvertisers pay a monthly fee to place a small link + short blurb that appears\n**only while the agent is thinking**. Watchers earn for those impressions, split\n**50/50** between the platform and the watcher, paid in **USDC on Base**. Always\ntoggleable.\n\nThe trust anchor already ships: every thinking window mints a **runtime-signed\nimpression** (`packages/core/src/impression.ts`) that the ad ledger verifies before\ncrediting a watcher — impressions can only be minted by the runtime, never spoofed by\na client timer. See the frozen [impression spec](./docs/specs/thinking-impressions.md).\n\n## ✦ Build agents visually — drag, drop, wire, export\n\n\u003ca href=\"https://anomalithic.vercel.app/builder\"\u003e\u003cimg src=\"./docs/media/builder.png\" alt=\"Drag-and-drop agent builder\" width=\"900\" /\u003e\u003c/a\u003e\n\nCompose providers, prompts, tools, code, and sub-agents on a canvas, wire them\ntogether, and export an Anomalithic agent definition — **[try it live](https://anomalithic.vercel.app/builder)**. No code required, but code is a first-class node.\n\n## ✦ The whole agent, not a wrapper\n\nTen focused, open-source packages compose into one capable agent — each tested,\ntyped, and small enough to read in a sitting.\n\n| Package | What it does |\n|---|---|\n| `@anomalithic/providers` | Any model — Anthropic, OpenAI, OpenRouter, Ollama, or any OpenAI-compatible endpoint |\n| `@anomalithic/core` | Agent loop, typed event bus, **signed thinking-impressions**, tool registry |\n| `@anomalithic/mcp` | Model Context Protocol stdio client + tool adapter |\n| `@anomalithic/skills` | Loads Claude `SKILL.md` **and** Codex `AGENTS.md` into one skill system |\n| `@anomalithic/hooks` | Lifecycle hooks: SessionStart, Pre/PostToolUse, Stop, Thinking |\n| `@anomalithic/orchestrator` | Durable task store, atomic checkout, dependency graph, budgets — run for hours/days |\n| `@anomalithic/memory` | File-backed cross-session memory + recall |\n| `@anomalithic/security` | Secret redaction, permission policy, path sandbox, audit log |\n| `@anomalithic/os` | The agentic-OS **kernel** that composes every package into one runtime |\n| `@anomalithic/cli` | The `anomalithic` CLI — `run`, `skills`, `memory`, `mcp` |\n\nThe product, running — a quiet ad shows only during the thinking window, and each\nwindow mints one signed impression:\n\n```console\n$ anomalithic run \"explain MCP\" --ads\n✦ thinking…\n💡 Your ad here while agents think — https://anomalithic.vercel.app/ads\nMCP is an open protocol that lets agents call external tools and data\nsources over a uniform JSON-RPC interface.\n[anthropic:claude-sonnet-4-6] 1 turn(s), 10+5 tokens, 1 impression(s)\n```\n\n## ✦ Quickstart\n\n```bash\npnpm install\npnpm build\n\n# Offline demo (no API key needed):\nnode packages/cli/dist/index.js run -p mock \"hello\"\n\n# Real model — copy .env.example to .env and add a key:\ncp .env.example .env            # set ANTHROPIC_API_KEY or OPENAI_API_KEY\nnode packages/cli/dist/index.js run \"explain MCP in one sentence\"\n\n# Point at any OpenAI-compatible endpoint (OpenRouter, Ollama, local):\nANOMALITHIC_PROVIDER=openai OPENAI_BASE_URL=http://localhost:11434/v1 \\\n  node packages/cli/dist/index.js run -m llama3.1 \"hi\"\n```\n\n## ✦ Platforms\n\n- **CLI + TUI** — `anomalithic run`, `chat`, full-screen `tui`, `serve` (local HTTP runtime), plus `skills` / `memory` / `mcp` / `plugins` _(shipping)_\n- **Desktop app** — Tauri shell ([`apps/desktop`](./apps/desktop)) with a [release pipeline](./.github/workflows/release.yml) that builds native Windows `.msi`, macOS `.dmg`, and Linux `.deb` / AppImage — see [docs/desktop.md](./docs/desktop.md) _(pipeline ready)_\n- **TUI** — full-screen interactive sessions _(roadmap)_\n- **Messaging gateway** — WhatsApp, Telegram, Slack, Discord, Signal _(roadmap)_\n- **Mobile** — _(later)_\n\nSee the full plan in [ROADMAP.md](./ROADMAP.md).\n\n## ✦ Develop\n\n```bash\npnpm build        # build all packages (turbo)\npnpm test         # run all tests (vitest) — 11 suites\npnpm typecheck    # tsc --noEmit across the workspace\npnpm lint         # biome check\n```\n\nThe website lives in [`apps/web`](./apps/web) (Next.js, deployed to Vercel).\n\n## ✦ License\n\n**Open-core.** The runtime packages and the desktop shell are Apache-2.0\n(see [LICENSE](./LICENSE)); the hosted ad marketplace, payout wallet, and advertiser\nportal are proprietary. Details in [LICENSING.md](./LICENSING.md).\n\n\u003cdiv align=\"center\"\u003e\n\u003csub\u003eBuilt in the open · \u003ca href=\"https://anomalithic.vercel.app\"\u003eanomalithic.vercel.app\u003c/a\u003e\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzanni098%2Fanomalithic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzanni098%2Fanomalithic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzanni098%2Fanomalithic/lists"}