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.
# 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 startThe 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
| 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 |
Launch with unclaude web β a full-featured dashboard for managing your agent:
unclaude web # Opens http://localhost:8765
unclaude web --port 9000 # Custom port9 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.
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.
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.
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?"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 behaviorsTask 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
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.
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
Break complex tasks into parallel subtasks across specialized agents:
unclaude swarm "Build a full-stack dashboard with auth, API, and tests" --max-agents 4How 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
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.
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 blockBudget actions: warn (notification), downgrade (switch to cheaper model), block (stop all requests).
Also visible in the web dashboard under the Usage page.
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
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.
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
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 |
Run long tasks without blocking your terminal:
unclaude background "Refactor all Python files to use type hints"
unclaude jobs # Check statusDefine 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 skillSkill 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 extend UnClaude with custom tools and behaviors:
unclaude plugins --list
unclaude plugins --create my-pluginMCP (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" }
}
}
}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"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: FastAPIUnClaude automatically reads this for every interaction.
Auto-detect your project's languages, frameworks, commands, and more:
unclaude scanDetects: package.json, pyproject.toml, Makefile, Dockerfile, CI/CD configs, test runners, linters, and more.
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 }pipx install unclaude# Using pip
pip install unclaude
# From source (for development)
git clone https://github.com/anzal1/unclaude.git
cd unclaude && pip install -e .playwright install chromium# Full interactive setup (recommended for first time)
unclaude setup
# Or just configure the API key
unclaude login
# View current config
unclaude config --showOr use environment variables:
export GEMINI_API_KEY="your-key"
export OPENAI_API_KEY="your-key"
export ANTHROPIC_API_KEY="your-key"| 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 |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
We welcome contributions! See CONTRIBUTING.md.
git clone https://github.com/anzal1/unclaude.git
cd unclaude
pip install -e ".[dev]"
pytestApache 2.0 β Open Source forever.
Built with β€οΈ by Anzal & The Community