https://github.com/zanni098/anomalithic
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).
https://github.com/zanni098/anomalithic
Last synced: 7 days ago
JSON representation
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).
- Host: GitHub
- URL: https://github.com/zanni098/anomalithic
- Owner: zanni098
- License: apache-2.0
- Created: 2026-06-15T20:24:10.000Z (8 days ago)
- Default Branch: main
- Last Pushed: 2026-06-15T20:40:07.000Z (8 days ago)
- Last Synced: 2026-06-15T22:20:45.969Z (8 days ago)
- Language: TypeScript
- Size: 47.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: docs/security/threat-model-ads.md
- Roadmap: ROADMAP.md
Awesome Lists containing this project
README
# ⬛ Anomalithic
### One open-core, model-agnostic agent runtime to rule them all.
[**Live site →**](https://anomalithic.vercel.app) · [Architecture](./ARCHITECTURE.md) · [Roadmap](./ROADMAP.md) · [Ad spec](./docs/specs/thinking-impressions.md)
[](https://github.com/zanni098/Anomalithic/actions/workflows/ci.yml)



---
Anomalithic is an AI agent runtime designed to match the capability of tools like
Claude Code while staying **provider-agnostic** and **self-hostable**. It runs for
minutes or days, spawns teams of sub-agents, speaks MCP, loads **Claude *and* Codex
skills**, fires lifecycle hooks, remembers across sessions — and funds itself with a
thinking-time ad network that pays watchers **50/50** in stablecoin.
The name is *anomaly* + *-lithic* (stone / monolith): the one monolithic agent.
## ✦ The killer feature — get paid while agents think

Advertisers pay a monthly fee to place a small link + short blurb that appears
**only while the agent is thinking**. Watchers earn for those impressions, split
**50/50** between the platform and the watcher, paid in **USDC on Base**. Always
toggleable.
The trust anchor already ships: every thinking window mints a **runtime-signed
impression** (`packages/core/src/impression.ts`) that the ad ledger verifies before
crediting a watcher — impressions can only be minted by the runtime, never spoofed by
a client timer. See the frozen [impression spec](./docs/specs/thinking-impressions.md).
## ✦ Build agents visually — drag, drop, wire, export
Compose providers, prompts, tools, code, and sub-agents on a canvas, wire them
together, and export an Anomalithic agent definition — **[try it live](https://anomalithic.vercel.app/builder)**. No code required, but code is a first-class node.
## ✦ The whole agent, not a wrapper
Ten focused, open-source packages compose into one capable agent — each tested,
typed, and small enough to read in a sitting.
| Package | What it does |
|---|---|
| `@anomalithic/providers` | Any model — Anthropic, OpenAI, OpenRouter, Ollama, or any OpenAI-compatible endpoint |
| `@anomalithic/core` | Agent loop, typed event bus, **signed thinking-impressions**, tool registry |
| `@anomalithic/mcp` | Model Context Protocol stdio client + tool adapter |
| `@anomalithic/skills` | Loads Claude `SKILL.md` **and** Codex `AGENTS.md` into one skill system |
| `@anomalithic/hooks` | Lifecycle hooks: SessionStart, Pre/PostToolUse, Stop, Thinking |
| `@anomalithic/orchestrator` | Durable task store, atomic checkout, dependency graph, budgets — run for hours/days |
| `@anomalithic/memory` | File-backed cross-session memory + recall |
| `@anomalithic/security` | Secret redaction, permission policy, path sandbox, audit log |
| `@anomalithic/os` | The agentic-OS **kernel** that composes every package into one runtime |
| `@anomalithic/cli` | The `anomalithic` CLI — `run`, `skills`, `memory`, `mcp` |
The product, running — a quiet ad shows only during the thinking window, and each
window mints one signed impression:
```console
$ anomalithic run "explain MCP" --ads
✦ thinking…
💡 Your ad here while agents think — https://anomalithic.vercel.app/ads
MCP is an open protocol that lets agents call external tools and data
sources over a uniform JSON-RPC interface.
[anthropic:claude-sonnet-4-6] 1 turn(s), 10+5 tokens, 1 impression(s)
```
## ✦ Quickstart
```bash
pnpm install
pnpm build
# Offline demo (no API key needed):
node packages/cli/dist/index.js run -p mock "hello"
# Real model — copy .env.example to .env and add a key:
cp .env.example .env # set ANTHROPIC_API_KEY or OPENAI_API_KEY
node packages/cli/dist/index.js run "explain MCP in one sentence"
# Point at any OpenAI-compatible endpoint (OpenRouter, Ollama, local):
ANOMALITHIC_PROVIDER=openai OPENAI_BASE_URL=http://localhost:11434/v1 \
node packages/cli/dist/index.js run -m llama3.1 "hi"
```
## ✦ Platforms
- **CLI + TUI** — `anomalithic run`, `chat`, full-screen `tui`, `serve` (local HTTP runtime), plus `skills` / `memory` / `mcp` / `plugins` _(shipping)_
- **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)_
- **TUI** — full-screen interactive sessions _(roadmap)_
- **Messaging gateway** — WhatsApp, Telegram, Slack, Discord, Signal _(roadmap)_
- **Mobile** — _(later)_
See the full plan in [ROADMAP.md](./ROADMAP.md).
## ✦ Develop
```bash
pnpm build # build all packages (turbo)
pnpm test # run all tests (vitest) — 11 suites
pnpm typecheck # tsc --noEmit across the workspace
pnpm lint # biome check
```
The website lives in [`apps/web`](./apps/web) (Next.js, deployed to Vercel).
## ✦ License
**Open-core.** The runtime packages and the desktop shell are Apache-2.0
(see [LICENSE](./LICENSE)); the hosted ad marketplace, payout wallet, and advertiser
portal are proprietary. Details in [LICENSING.md](./LICENSING.md).

