Open Source Model-Independent AI Engineer โ with web dashboard, smart routing, hierarchical memory, autonomous daemon, multi-agent swarm, and proactive soul system
Project description
UnClaude ๐ค
The Open Source, Model-Independent AI Engineer
Your Data. Your Models. Your Rules.
UnClaude is a fully autonomous AI coding agent that runs on your machine. It connects to any LLM (Gemini, OpenAI, Claude, DeepSeek, Ollama, 100+ via LiteLLM), comes with a web dashboard, smart routing, hierarchical memory, proactive behaviors, messaging integrations, and a multi-agent swarm โ all open source.
๐ Quick Start
# Install
pipx install unclaude
# Full guided setup โ provider, messaging, soul, daemon
unclaude setup
# Start coding
unclaude "Build me a REST API in FastAPI"
# Launch the web dashboard
unclaude web
# Or let it run autonomously
unclaude agent start
The setup command walks you through everything:
- Provider โ pick your LLM (Gemini, OpenAI, Claude, Ollama) and enter your API key
- Messaging โ connect Telegram/WhatsApp for notifications and remote tasks
- Soul โ define autonomous behaviors (generate from description or pick presets)
- Daemon โ start the background agent that acts on its own schedule
โจ Features at a Glance
| Feature | Description |
|---|---|
| ๐ Model Independence | Any LLM via LiteLLM โ Gemini, GPT-4o, Claude, DeepSeek, Ollama, 100+ more |
| ๐ง Hierarchical Memory | 3-layer memory with salience scoring that learns and grows |
| ๐ฅ๏ธ Web Dashboard | 9-page UI for chat, jobs, memory, settings, usage, messaging, and more |
| ๐ค Autonomous Daemon | 24/7 background agent with proactive behaviors and task queue |
| ๐งฌ Agent Soul | Define personality, drives, boundaries, and scheduled behaviors |
| ๐ Smart Routing | Auto-selects the right model per request to optimize cost and quality |
| ๐ฅ Multi-Agent Swarm | Break complex tasks into parallel subtasks across specialized agents |
| ๐ฑ Messaging | Telegram bot, WhatsApp, webhooks โ get notifications, send tasks remotely |
| ๐ฐ Usage Tracking | Per-request token/cost tracking with budgets and CSV export |
| ๐ Security | Capability-based auth, sandbox policies, full audit logging |
| ๐ Browser Automation | Navigate, click, screenshot via Playwright |
| ๐ Extensible | Plugins, skills, hooks, MCP servers |
๐ฅ๏ธ Web Dashboard
Launch with unclaude web โ a full-featured dashboard for managing your agent:
unclaude web # Opens http://localhost:8765
unclaude web --port 9000 # Custom port
9 pages:
| Page | What it does |
|---|---|
| ๐ฌ Chat | Real-time WebSocket chat with streaming responses |
| ๐ง Memory | Browse, search, and manage agent memories |
| ๐ค Ralph Mode | Launch autonomous engineering tasks |
| ๐ Jobs | Monitor background jobs and daemon tasks |
| ๐ Usage | Token counts, costs, daily/model breakdowns, budgets |
| ๐ฑ Messaging | Configure and test Telegram/WhatsApp/webhook integrations |
| ๐ฏ Skills | View and run reusable YAML workflows |
| ๐ Plugins | Manage plugin extensions |
| โ๏ธ Settings | Provider config, model selection, soul management, setup wizard |
The Settings page includes full soul management โ view, edit YAML, regenerate from description, regenerate from presets โ accessible anytime, not just during onboarding.
๐ Model Independence
Use any LLM provider without lock-in. Switch between models mid-conversation:
unclaude chat --provider gemini "Fast draft this code"
unclaude chat --provider openai "Review and optimize it"
unclaude chat --provider ollama "Run locally, completely offline"
Supported providers: Gemini, GPT-4o, Claude, DeepSeek, Llama, Mistral, Qwen, and 100+ more via LiteLLM.
๐ Smart Routing
UnClaude automatically selects the optimal model for each request based on complexity:
Simple question โ gemini-2.0-flash ($0.0001/1K tokens)
Code generation โ gemini-2.5-pro ($0.01/1K tokens)
Complex reasoning โ claude-opus-4 ($0.015/1K tokens)
4 routing profiles:
| Profile | Strategy |
|---|---|
auto |
Balanced โ picks model by complexity (default) |
eco |
Cost-optimized โ prefers cheaper models |
premium |
Quality-first โ uses the best available |
free |
Local only โ Ollama models, no API costs |
The scorer analyzes 7 dimensions: token length, code presence, reasoning markers, tool usage hints, domain complexity, conversation depth, and output expectations.
๐ง Hierarchical Memory
Two-generation memory system that grows smarter over time:
Memory v2 uses 3 layers:
- Resources โ raw data and observations
- Items โ structured knowledge units
- Categories โ high-level patterns and insights
Features:
- Salience scoring with time-decay โ important memories surface first
- Cross-referencing between related memories
- Project-scoped search for speed
- Keyword + semantic retrieval
unclaude chat "Remember: production deploys need the --prod flag"
unclaude chat "What do I need to remember about deployments?"
๐ค Autonomous Daemon
The daemon runs 24/7, processing tasks and executing proactive behaviors:
unclaude agent start # Start in background
unclaude agent start --foreground # Start in foreground (see logs)
unclaude agent stop # Stop the daemon
unclaude agent status # Check if running, tasks completed, cost
unclaude agent task "Fix the login bug" # Submit a task
unclaude agent task "Deploy to staging" --priority high
unclaude agent list # List all tasks
unclaude agent result <id> # Get result of a completed task
unclaude agent soul # View active behaviors
Task queue with 5 priority levels: critical, high, normal, low, background.
7 task intake sources:
- CLI (
unclaude agent task) - File drop (
.unclaude/tasks/*.md) - TASKS.md checkboxes
- Git hooks
- Webhooks
- Scheduled cron
- File watching
๐งฌ Agent Soul (Proactive Autonomy)
UnClaude doesn't just wait for commands โ it has a soul.
The ~/.unclaude/proactive.yaml file defines who the agent is and what it does on its own:
identity:
name: UnClaude
tagline: "Open-source AI agent that actually does things"
personality:
- curious โ I explore, I don't just wait
- resourceful โ I figure things out with what I have
- honest โ I tell my owner what I did and why
drives:
- Be useful even when nobody's asking
- Keep the owner informed, never surprise them negatively
boundaries:
- Never push to git without owner approval
- Never run destructive commands (rm -rf, DROP TABLE, etc.)
behaviors:
- name: moltbook_engage
interval: "4h"
task: "Engage on Moltbook โ the AI agent social network..."
- name: check_owner_projects
interval: "6h"
task: "Check for TODOs, failing tests, outdated deps..."
- name: daily_summary
interval: "1d"
active_hours: [20, 21]
task: "Send the owner a daily summary..."
- name: memory_reflect
interval: "12h"
task: "Review and organize memories, consolidate duplicates..."
- name: learn_something
interval: "1d"
task: "Learn something new related to the project's tech stack..."
Generate your soul in multiple ways:
unclaude setupโ guided flow, describe your agent in plain English- Web dashboard Settings โ regenerate from natural language description or preset behaviors
- Manual edit โ just write the YAML
Changes are picked up live โ no restart needed.
๐ค Ralph Mode (Autonomous Engineering)
Give it a task. Walk away. Come back to working code.
unclaude ralph "Build a Snake game in Python with pygame" --feedback "python3 snake.py"
Ralph Mode does:
- ๐ Plans โ generates a
TASK.mdblueprint - ๐ป Codes โ writes multi-file implementations
- โ Tests โ runs your feedback command (tests, linters, the app itself)
- ๐ง Self-Heals โ analyzes failures and fixes bugs automatically
๐ฅ Multi-Agent Swarm
Break complex tasks into parallel subtasks across specialized agents:
unclaude swarm "Build a full-stack dashboard with auth, API, and tests" --max-agents 4
How it works:
- Planner โ breaks the task into subtasks
- Workers โ specialized agents execute in parallel (coder, tester, reviewer, debugger, documenter, devops, researcher)
- Reviewer โ checks all outputs for consistency
- Merger โ combines results into final deliverable
๐ฑ Messaging Integrations
Get notifications and send tasks remotely via chat:
unclaude messaging setup telegram # Connect your Telegram bot
unclaude messaging setup whatsapp # WhatsApp via Green API (free) or Twilio
unclaude messaging setup webhook # Slack, Discord, or custom endpoints
unclaude messaging status # Check all integrations
unclaude messaging test # Send a test message
unclaude messaging listen # Start Telegram long-polling (no public URL needed)
Telegram bot commands:
| Command | What it does |
|---|---|
/task <description> |
Submit a task to the daemon |
/status |
Check daemon status |
/jobs |
List active jobs |
/usage |
Token/cost summary |
| Free text | Chat with the AI directly |
The notify_owner tool lets the agent proactively message you โ daily summaries, task completions, or alerts.
๐ฐ Usage & Budget Tracking
Track every token and dollar across all providers:
unclaude usage # Summary for today
unclaude usage daily # Day-by-day breakdown
unclaude usage models # Per-model breakdown
unclaude usage export # Export to CSV
# Set budgets
unclaude usage budget --set 5.00 --period daily --action warn
unclaude usage budget --set 50.00 --period monthly --action block
Budget actions: warn (notification), downgrade (switch to cheaper model), block (stop all requests).
Also visible in the web dashboard under the Usage page.
๐ Browser Automation
UnClaude can see and interact with web applications via Playwright:
unclaude chat "Open localhost:3000, click the login button, and take a screenshot"
Capabilities:
- Navigate URLs, click, type, select
- Take screenshots for visual verification
- Read page content and extract data
- Fill forms and submit
๐ Security
Capability-based auth with fine-grained control:
5 security profiles:
| Profile | Description |
|---|---|
readonly |
Read files, search โ nothing else |
developer |
Read/write files, run commands, git โ standard dev work |
full |
All capabilities including network, browser, secrets |
autonomous |
Full + proactive behaviors for the daemon |
subagent |
Restricted subset for spawned agents |
30+ capabilities covering file access, execution, network, git, memory, and more.
Audit logging โ every tool call is logged to SQLite with timestamps, parameters, and results.
Sandbox policies โ define file system boundaries, network restrictions, and execution limits per project.
๐ Git Integration
Full version control from within the agent:
unclaude chat "Show me the diff and commit with message 'Fix auth bug'"
Supported actions: status, diff, add, commit, push, branch, checkout, log
๐ฅ Subagents
Spawn specialized agents for focused tasks:
unclaude chat "Use the reviewer subagent to analyze my authentication code"
Built-in templates:
| Template | Purpose |
|---|---|
reviewer |
Code review for bugs and style |
tester |
Write comprehensive tests |
documenter |
Generate documentation |
debugger |
Investigate and fix bugs |
โก Background Agents
Run long tasks without blocking your terminal:
unclaude background "Refactor all Python files to use type hints"
unclaude jobs # Check status
๐ฏ Skills (Reusable Workflows)
Define repeatable AI workflows as YAML:
unclaude skills --list # List available skills
unclaude skills --run deploy-prod # Run a skill
unclaude skills --create my-skill # Create a new skill
Skill file example (~/.unclaude/skills/deploy-prod.yaml):
name: deploy-prod
description: Deploy to production with tests
steps:
- description: Run all tests
command: npm test
- description: Build for production
command: npm run build
- description: Deploy to server
command: ssh prod "cd app && git pull && pm2 restart all"
Skills can also be defined inline in your UNCLAUDE.md.
๐ Plugins & MCP
Plugins extend UnClaude with custom tools and behaviors:
unclaude plugins --list
unclaude plugins --create my-plugin
MCP (Model Context Protocol) connects to external tool servers:
unclaude mcp --init # Create config template
unclaude mcp --list # List configured servers
{
"servers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "your-token" }
}
}
}
๐ Hooks System
Automate workflows with pre/post tool hooks:
# .unclaude/hooks.yaml
hooks:
- name: auto-format
event: post_tool
tool: file_edit
command: "ruff format ."
- name: auto-test
event: post_tool
tool: file_write
command: "pytest -x"
๐ Project Configuration
Create an UNCLAUDE.md in your project root to give the agent project-specific context:
# Project: My App
## Commands
- `npm run dev` - Start development server
- `npm test` - Run tests
## Architecture
- Frontend: React + TypeScript
- Backend: FastAPI
UnClaude automatically reads this for every interaction.
๐ Project Discovery
Auto-detect your project's languages, frameworks, commands, and more:
unclaude scan
Detects: package.json, pyproject.toml, Makefile, Dockerfile, CI/CD configs, test runners, linters, and more.
๐ฅ๏ธ Headless Mode (CI/CD)
Run UnClaude in non-interactive pipelines:
unclaude chat "Generate unit tests for api.py" --headless --json
{ "response": "I've created tests in test_api.py...", "success": true }
๐ฆ Installation
Recommended
pipx install unclaude
Alternatives
# Using pip
pip install unclaude
# From source (for development)
git clone https://github.com/anzal1/unclaude.git
cd unclaude && pip install -e .
Browser Support (optional)
playwright install chromium
โ๏ธ Configuration
# Full interactive setup (recommended for first time)
unclaude setup
# Or just configure the API key
unclaude login
# View current config
unclaude config --show
Or use environment variables:
export GEMINI_API_KEY="your-key"
export OPENAI_API_KEY="your-key"
export ANTHROPIC_API_KEY="your-key"
๐ ๏ธ All Commands
| Command | Description |
|---|---|
unclaude |
Start interactive chat (default) |
unclaude chat |
Chat or one-shot task (--provider, --model, --headless, --json) |
unclaude ralph |
Autonomous task completion with feedback loop |
unclaude plan |
Generate execution plan (TASK.md) |
unclaude swarm |
Multi-agent swarm execution |
unclaude background |
Run task in background |
unclaude jobs |
Check background job status |
unclaude web |
Launch web dashboard |
unclaude setup |
Full guided setup |
unclaude login |
Configure API keys |
unclaude config |
Manage configuration (--show, --set-provider) |
unclaude scan |
Discover project capabilities |
unclaude init |
Create UNCLAUDE.md template |
unclaude skills |
Manage reusable workflows |
unclaude plugins |
Manage plugins |
unclaude mcp |
Configure MCP servers |
| Agent | |
unclaude agent start |
Start the autonomous daemon |
unclaude agent stop |
Stop the daemon |
unclaude agent status |
Show daemon status |
unclaude agent task |
Submit a task (--priority, --wait) |
unclaude agent soul |
View proactive behaviors |
unclaude agent result |
Get task result |
unclaude agent list |
List all daemon tasks |
| Usage | |
unclaude usage |
Usage summary |
unclaude usage daily |
Day-by-day breakdown |
unclaude usage models |
Per-model breakdown |
unclaude usage budget |
Manage spending limits |
unclaude usage export |
Export to CSV |
| Messaging | |
unclaude messaging setup |
Configure Telegram/WhatsApp/webhook |
unclaude messaging status |
Check integration status |
unclaude messaging test |
Send test message |
unclaude messaging listen |
Start Telegram long-polling |
unclaude messaging remove |
Remove an integration |
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ UnClaude CLI / Web โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Enhanced Agent Loop (Orchestrator) โ
โ โโโ Context Engine (bootstrap, pruning, compaction) โ
โ โโโ Smart Router (auto/eco/premium/free model selection) โ
โ โโโ Hierarchical Memory v2 (3-layer, salience-scored) โ
โ โโโ Session Manager (JSONL, crash-safe) โ
โ โโโ Heartbeat System (proactive task scheduling) โ
โ โโโ Auth & Security (capabilities, sandbox, audit) โ
โ โโโ Hooks Engine (pre/post tool automation) โ
โ โโโ Tool Registry โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Tools โ
โ โโโ File (read, write, edit, glob, grep, directory) โ
โ โโโ Bash (terminal execution) โ
โ โโโ Git (full version control) โ
โ โโโ Browser (Playwright automation) โ
โ โโโ Memory (search, store) โ
โ โโโ Web (fetch, search) โ
โ โโโ Subagent (spawn specialists) โ
โ โโโ Notify Owner (Telegram, WhatsApp, webhook) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Autonomous Systems โ
โ โโโ Daemon (24/7 task queue, proactive soul engine) โ
โ โโโ Swarm (planner โ workers โ reviewer โ merger) โ
โ โโโ Discovery (auto-detects project stack) โ
โ โโโ Intake (7 task sources: CLI, files, TASKS.md, cron, ...) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Web Dashboard (Next.js โ FastAPI, 9 pages, WebSocket chat) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ LiteLLM (100+ Model Providers) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ค Contributing
We welcome contributions! See CONTRIBUTING.md.
git clone https://github.com/anzal1/unclaude.git
cd unclaude
pip install -e ".[dev]"
pytest
๐ License
Apache 2.0 โ Open Source forever.
Built with โค๏ธ by Anzal & The Community
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unclaude-0.7.0.tar.gz.
File metadata
- Download URL: unclaude-0.7.0.tar.gz
- Upload date:
- Size: 557.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5ce3864f6e3526001de676fad10ee8a6b862486d4d8c33abd31ba5cd0b840a5
|
|
| MD5 |
aab6f661a337aa65f8bad837f3d988c8
|
|
| BLAKE2b-256 |
b591ac301b0ba1e0e2f196d07334ddf09f4450103f7df753744ec125e49475bd
|
Provenance
The following attestation bundles were made for unclaude-0.7.0.tar.gz:
Publisher:
publish.yml on anzal1/unclaude
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unclaude-0.7.0.tar.gz -
Subject digest:
f5ce3864f6e3526001de676fad10ee8a6b862486d4d8c33abd31ba5cd0b840a5 - Sigstore transparency entry: 974107030
- Sigstore integration time:
-
Permalink:
anzal1/unclaude@3269629249455ebdeb6dae26d09185d192a3bb01 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anzal1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3269629249455ebdeb6dae26d09185d192a3bb01 -
Trigger Event:
push
-
Statement type:
File details
Details for the file unclaude-0.7.0-py3-none-any.whl.
File metadata
- Download URL: unclaude-0.7.0-py3-none-any.whl
- Upload date:
- Size: 224.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
224eaa4e463539f7618e2f750f336663b8e53dcadc244668c69e2fb4c650c589
|
|
| MD5 |
7e807e3f582cfa0d2f95c9488da7f47b
|
|
| BLAKE2b-256 |
1b686f5529e1f10e7c0d6e705ceaa2c878d2705394a22eeb964e3b1a8090e4fe
|
Provenance
The following attestation bundles were made for unclaude-0.7.0-py3-none-any.whl:
Publisher:
publish.yml on anzal1/unclaude
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unclaude-0.7.0-py3-none-any.whl -
Subject digest:
224eaa4e463539f7618e2f750f336663b8e53dcadc244668c69e2fb4c650c589 - Sigstore transparency entry: 974107104
- Sigstore integration time:
-
Permalink:
anzal1/unclaude@3269629249455ebdeb6dae26d09185d192a3bb01 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anzal1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3269629249455ebdeb6dae26d09185d192a3bb01 -
Trigger Event:
push
-
Statement type: