daemion
v0.1.1
Published
Persistent autonomous AI copartner system
Readme
Daemion
Your computer. Your Projects. Your Ideas. Anywhere.
A hyper-exstensible Claude Daemon built on Claude Agent SDK. It's a modular UX for Claude that lives on your machine, remembers your conversations, and works while you're away. It can build anything you ask, and is reachable from your phone, or any computer you pair.
Why Daemion?
Daemion gives Claude a home on your computer. Not a chat window that disappears when you close it. A real home, with memory, routines, and the ability to build new things for itself.
It remembers what you talked about last week. It runs jobs while you sleep. It creates agents that specialize in what you care about. When you ask for something that doesn't exist yet, it builds a new extension for itself.
Everything is an extension. Agents, jobs, apps, commands, themes. All stored as data, all created at runtime. You don't configure Daemion. You use it, and it grows around what you need.
Features
💬 Chat · Persistent conversations with memory that carries across sessions
🤖 Agents · Specialized assistants with their own personality, threads, and scheduled tasks
🧠 Daemion Agent · The main orchestration agent. Coordinates jobs, routes to the right model, manages threads, and connects to the knowledge graph. This is the agent you talk to.
📈 Pulse Agent · Self-improvement engine. Analyzes how you use the system and files proposals to make it better — new agents, smarter prompts, better workflows. You review and approve.
⏰ Jobs · Autonomous work on a schedule. Daily briefings, monitors, health checks.
🛠️ Apps · Ask for a tool and get a full web app, rendered inline with a split-panel workspace
✅ Plan / Act · Reviews a plan before acting. You approve, then it executes.
🔑 Pairing · QR code or 6-digit code to connect any device in seconds
📱 Mobile · Works on any phone or tablet, locally or through Tailscale
🖥️ Terminal · Full SSH access to your machine from any paired device. Restart the gateway, tail logs, run scripts, manage files. Your phone becomes a remote control.
🎨 Themes · Warm and dark, switchable from Settings
Getting Started
1. Install and start
For end users: npm install -g daemion && daemion start is all you need. Pair via QR.
For development (web app):
git clone https://github.com/zenchantlive/daemion.git
cd daemion/app && npm install && npm run devOpen http://localhost:3000.
Daemion runs best on Windows through WSL2 (Windows Subsystem for Linux). This gives you a full Linux environment with zero compatibility issues.
One-time WSL2 setup:
# Run in PowerShell as Administrator
wsl --installRestart your computer when prompted, then open "Ubuntu" from the Start menu.
Inside WSL2 (Ubuntu terminal):
# Install Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt install -y nodejs
# Install Claude CLI and log in
npm i -g @anthropic-ai/claude-code
claude
/login
# Install and start Daemion
npm install -g daemion
daemion startIn a second WSL2 terminal (for development only):
git clone https://github.com/zenchantlive/daemion.git && cd daemion/app && npm install && npm run devOpen http://localhost:3000 in your Windows browser. WSL2 forwards ports automatically.
2. Pair your device
The gateway prints a QR code and 6-digit code on startup:
[gateway] ── Pair a device ──────────────────────────
[gateway] Scan this QR code or enter the code below:
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █ ... █ ▄▄▄▄▄ █
[gateway] ── or enter this code ──
[gateway] 8 3 7 2 9 1
[gateway] Expires in 10 minutesPoint your phone camera at the QR → app opens → paired. Or type the 6 digits in the browser. Once paired, you stay connected.
3. Remote access
Install Tailscale on your computer and phone. Same account on both. Done — the app includes a setup guide at Settings > Remote Access.
How It Works
Phone / Browser Your Computer
─────────────── ──────────────
Tailscale
Web App (PWA) ──────────────→ Gateway (HTTP/WebSocket)
or LAN │
┌────┴────┐
SQLite Claude
(extensions, (Agent SDK)
threads, │
turns) Memory
(Neo4j)Everything runs locally + Claude Code. No cloud accounts, no external dependencies beyond the Claude API.
Architecture & Development
src/core/ Engine kernel (triggers, context, invoker, memory)
src/gateway/ Local gateway (HTTP/WS + SQLite + OTP pairing)
src/schema/ Zod schemas (jobs, agents, protocols, extensions)
agents/ Agent identities (YAML + system prompt + soul)
jobs/ Autonomous work units (YAML config + prompt)
protocols/ Multi-agent patterns (escalate, review, debate)
system/ Service config (launchd, systemd, pm2)
app/ Next.js 15+ PWA (mobile-first interface)
docs/ Architecture, PRD, specsnpm run check # typecheck + lint + format + test
npm run gateway # start gateway (contributors only — end users run `daemion start`)
npm run gateway:dev # start with debug logging
npm run test # vitest (680+ tests)
npm run typecheck # tsc --noEmitAuth: Authorization: Bearer <token> (obtained via OTP pairing).
| Method | Path | Description |
| ------ | --------------- | ----------------------------- |
| GET | /health | Status (unauthenticated) |
| POST | /pair | OTP pairing (unauthenticated) |
| GET | /pair/refresh | Regenerate OTP |
| POST | /chat | Send message |
| POST | /chat/stop | Stop response |
| GET | /threads | List threads |
| POST | /threads | Create thread |
| GET | /extensions | List extensions |
| POST | /extensions | Create/update extension |
| GET | /briefing | AI daily briefing |
| GET | /soul | Read base soul |
| PUT | /soul | Update base soul |
| GET | /costs | Usage costs |
| GET | /proposals | Pending proposals |
| POST | /run/:job | Trigger job |
| POST | /reseed | Sync from disk |
| GET | /utcp | External agent discovery |
See src/gateway/server.ts for the full list.
| Layer | Technology | | --------- | ------------------------------------------------- | | Language | TypeScript 5.7+ (strict, NodeNext) | | Runtime | Node.js 22+ | | AI | Claude via @anthropic-ai/claude-agent-sdk | | Memory | Neo4j + Ollama embeddings | | Storage | SQLite (better-sqlite3) | | Service | launchd (macOS) / systemd (Linux) / pm2 (Windows) | | Transport | HTTP/WebSocket + Tailscale | | App | Next.js 15+, Tailwind CSS v4 | | Testing | Vitest (680+ tests) | | Pairing | OTP + QR code |
- macOS — full support, launchd service
- Linux — full support, systemd user service
- Windows — supported, terminal gracefully degrades without build tools
Native modules (node-pty, better-sqlite3) use prebuilds where available.
Everything is an extension — agents, jobs, apps, commands, themes, and more. Extensions are data stored in SQLite, not code. The agent can create, modify, and manage them at runtime without restarting the gateway.
Extension types: agent, job, command, theme, action, renderer, integration, app, artifact, capability, control.
- Pure functions over classes
- Named exports only
- One purpose per file (~200 lines max)
- kebab-case files, camelCase functions, PascalCase types
- No
any, noconsole.log(structured logger) - Colocated tests:
foo.ts+foo.test.ts
Documentation
- Architecture — substrates, extension model, gateway design
- PRD — productization roadmap
- Contributing — adding agents, jobs, and extensions
License
Private. Not yet open source.
