Local-first, self-hosted, autonomous multi-agent coding swarm.
Combines the power of Claw-style tool harness with Hermes-style persistent memory, auto-skill creation, and self-improvement. Defaults to 100% local via Ollama, but supports any remote model (OpenAI, Groq, xAI/Grok, DeepSeek, etc.) via API keys with auto model fetching.
- Defaults to fully local (Ollama)
- Optional cloud models via simple
python main.py llmselector + API key (auto-fetches model list) - Full user control + explicit approval for every destructive action
- Agents that learn and improve themselves over time
# Windows PowerShell - Install
cd D:\hermes; python -m venv .venv; .\.venv\Scripts\Activate.ps1; pip install -r requirements.txt
# Then start DAEDALUS daemon
python main.py daedalusD:\hermes\
โโโ core/
โ โโโ tools.py # Full Claw harness (file, bash, git, search)
โ โโโ react_loop.py # Custom ReAct + tool-calling engine
โ โโโ daedalus_daemon.py # Autonomous background scanner/fixer
โ โโโ dashboard_events.py # Global event broadcaster for 3D dashboard
โโโ hermes/
โ โโโ memory.py # SQLite + ChromaDB hybrid memory
โ โโโ skills/ # Auto-generated reusable YAML skills
โ โโโ soul.md # Living user + project preference memory
โ โโโ self_improve.py # (future) prompt + skill evolution
โโโ agents/
โ โโโ orchestrator.py # Swarm coordinator
โ โโโ architect.py
โ โโโ coder.py
โ โโโ tester.py
โ โโโ scribe.py
โโโ backend/
โ โโโ dashboard_api.py # FastAPI + WebSocket for 3D dashboard
โโโ dashboard/ # React 19 + Three.js 3D frontend
โ โโโ src/
โ โ โโโ components/ # Reusable 3D React components
โ โ โโโ hooks/ # useDashboard (WebSocket), useStore (state)
โ โ โโโ types/ # TypeScript interfaces
โ โ โโโ App.tsx
โ โ โโโ main.tsx
โ โ โโโ index.css
โ โโโ index.html
โ โโโ vite.config.ts
โ โโโ tailwind.config.js
โ โโโ package.json
โโโ interfaces/
โ โโโ messaging.py # Unified send_message + command parser (Telegram/Discord/WhatsApp)
โโโ config.yaml
โโโ main.py # Beautiful CLI + `bot` subcommand
โโโ bot_orchestrator.py # Central 24/7 multi-platform bot + optional dashboard
โโโ requirements.txt
โโโ run_daedalus.bat
โโโ run_forever.bat # Auto-restarting bot service (Windows)
โโโ run_dashboard.bat # Launch 3D dashboard (Windows)
โโโ run_dashboard.sh # Launch 3D dashboard (Linux/Mac)
โโโ run_all.bat # Launch everything (Windows)
โโโ run_service.py # NSSM / systemd / Task Scheduler ready entrypoint
โโโ README.md
- Python 3.11+
- Git
- Ollama (for local mode) โ optional if you only use remote providers
Copy & paste this single command into PowerShell:
cd D:\hermes; python -m venv .venv; .\.venv\Scripts\Activate.ps1; pip install -r requirements.txtAlternatively, for cmd.exe:
cd D:\hermes & python -m venv .venv & .venv\Scripts\activate.bat & pip install -r requirements.txtOr step-by-step (if you prefer):
cd D:\hermes
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txtollama serveIn another terminal (for local use):
ollama pull qwen2.5-coder:7b # or bigger
ollama pull deepseek-coder-v2:16b
ollama pull nomic-embed-textFor remote models (OpenAI, Groq, xAI, DeepSeek...): just run
python main.py llmIt will let you pick provider, paste API key โ auto-fetches all available models, pick one with arrows/numbers, and it becomes the new default instantly. No code changes needed anywhere.
python main.py --help
python main.py status
python main.py swarm "Create a FastAPI hello-world endpoint with Pydantic models and tests"Double-click run_daedalus.bat or:
python -m core.daedalus_daemon
# or one-shot
python -m core.daedalus_daemon --onceDAEDALUS will wake up every 15 minutes (configurable), find issues, and propose fixes โ always asking for your approval on changes.
Run this any time to switch models or add cloud providers:
python main.py llmWhat happens:
- Shows current provider/model
- Lists all supported providers (OpenAI, Groq, xAI/Grok, DeepSeek, Together, Fireworks, Ollama)
- You pick one โ if it needs a key, you paste it
- Auto-fetches the full list of models from that provider's API
- You choose the model (number or name)
- Optional: save the key locally in config.yaml
- From that moment on, every swarm, claw, daedalus call uses the new model automatically.
Examples of direct set (non-interactive):
python main.py llm --set groq llama-3.1-70b-versatile
python main.py llm --list --key sk-... # test fetch without savingSupported env vars (recommended, never saved to disk):
OPENAI_API_KEYGROQ_API_KEYXAI_API_KEYDEEPSEEK_API_KEY- etc.
All ReAct loops, agent calls, and direct make_llm_call now go through the unified manager โ zero changes in agents or tools needed.
Control your entire Daedalus swarm from your phone or Discord server โ no need to be at the terminal.
-
Install extra packages
pip install -r requirements.txt -
Get tokens
- Telegram: Open @BotFather โ
/newbotโ copy token - Discord: https://discord.com/developers/applications โ New Application โ Bot โ Token + enable Message Content Intent + add bot to your server
- WhatsApp: Optional (pywhatkit is unofficial & limited). For real use, get WhatsApp Business API.
- Telegram: Open @BotFather โ
-
Configure allowed users + tokens (edit
config.yamlor use.env)messaging: telegram_token: "123456:ABC-DEF..." discord_token: "your_discord_token" allowed_users: ["987654321"] # your Telegram user id / Discord user id
Or create
.envin project root (recommended):TELEGRAM_BOT_TOKEN=... DISCORD_BOT_TOKEN=... ALLOWED_USERS=123456789,987654321 -
Launch the bot
python main.py bot
Now send in Telegram/Discord:
/goal Create a FastAPI endpoint for user login with JWT /status /daedalus on /helpThe bot will forward the goal to the full multi-agent swarm and reply with the result on the same platform.
-
Simple persistent mode (Windows): Double-click
run_forever.bat(auto-restarts on crash) -
Production Windows Service (recommended): Use NSSM
nssm install DaedalusBot Path: C:\Python311\python.exe Arguments: D:\hermes\run_service.py -
Linux / systemd: Create a simple service file pointing to
python run_service.py -
Optional Web Dashboard (port 8000):
uvicorn bot_orchestrator:dashboard_app --port 8000
Visit http://localhost:8000/status and trigger goals from browser.
All responses, logs, and errors go to logs/bot.log.
The core (core/, agents/, hermes/) is completely untouched โ the bot layer only calls the existing public functions (run_swarm, get_react_loop, etc.).
Real-time cyberpunk command center with 3D AI swarm visualization.
Quick Launch (Windows):
run_dashboard.batManual Launch (Any OS):
# Terminal 1: Backend
python -m uvicorn backend.dashboard_api:app --reload --port 8001
# Terminal 2: Frontend
cd dashboard && npm run devThen open: http://localhost:3000
Features:
- โจ 3D holographic control tower + 5 neon agent avatars with live status animations
- ๐ฏ Click agents to focus/see detailed task info + progress
- ๐ Real-time animated stats rings (tasks, skills, tokens, DAEDALUS)
- ๐ฎ Interactive camera (orbit, zoom, drag to rotate)
- ๐ Live terminal feed (color-coded logs)
- ๐ซ Particle effects synchronized with agent activities
- โก WebSocket real-time updates (<2ms latency)
Integrate with your agents:
from core.dashboard_events import emit_agent_update, emit_log, emit_metrics
emit_agent_update("Coder", "working", "Writing handler", progress=45)
emit_log("โ Tests passed", level="success", agent="Tester")
emit_metrics(tasks_completed=42, skills_created=17)All updates appear instantly on the 3D dashboard! Backend: FastAPI + WebSocket. Frontend: React 19 + Three.js.
Want everything running at once? Use the unified launcher โ starts FastAPI backend, React dashboard, and bot orchestrator simultaneously.
Windows (Batch):
run_bot_and_dashboard.batWindows (PowerShell):
.\run_bot_and_dashboard.ps1Any OS (Python):
python run_unified.pyWhat it does:
- Creates Python venv (if needed)
- Installs all Python dependencies
- Creates
npm installNode modules (if needed) - Starts FastAPI backend on http://localhost:8001
- Starts React dashboard on http://localhost:3000
- Starts bot orchestrator (listens for Telegram/Discord/etc.)
Then open your browser to http://localhost:3000 and watch the 3D swarm in action!
Configuration:
- Copy
.env.exampleโ.envand add your:OPENAI_API_KEY,GROQ_API_KEY, etc.TELEGRAM_BOT_TOKEN,DISCORD_BOT_TOKENALLOWED_USERS(comma-separated IDs)VITE_API_URL,VITE_WS_URL(usually defaults work)
See .env.example for all available options.
| Command | Description |
|---|---|
python main.py swarm "..." |
Full multi-agent swarm (Architect โ Coder โ ...) |
python main.py claw "..." |
Direct powerful ReAct single-agent mode |
python main.py daedalus --once |
One autonomous scan + fix cycle |
python main.py daedalus |
Start the 24/7 background daemon |
python main.py status |
Memory stats + project health |
python main.py llm |
Interactive LLM provider + model selector (auto-fetch models after pasting API key) |
python main.py bot |
Always-on multi-platform bot (Telegram/Discord/WhatsApp) + dashboard support |
- Every file delete, git push, or high-risk shell command requires explicit approval
- All operations confined to the project root (path escape protection)
- Full audit trail in
hermes/hermes.logand SQLite
- Every successful task โ stored in Hermes memory (SQLite + vectors)
- After complex success โ Scribe agent auto-generates a reusable YAML skill in
hermes/skills/ - Every 10 tasks โ self-improvement loop can rewrite prompts/skills (future)
soul.mdaccumulates your preferences and project conventions
- Edit
config.yamlfreely (hot-reloaded in many places) - Add your own tools in
core/tools.pyโ they automatically become available to ReAct - Skills are just YAML โ drop new ones in
hermes/skills/and the swarm will discover them - Run with
PYTHONPATH=.if importing from outside
- FastAPI web dashboard (port 7777)
- Docker-isolated agent execution
- Full self_improve.py with evolutionary prompt optimization
- MCP / A2A protocol support
This is a living local system. The best way to contribute is to:
- Run it on your own repos
- Let DAEDALUS find real issues
- Improve the agents when they make mistakes
- Share interesting auto-generated skills
MIT โ Use freely. Keep it local. Make it better.
Built with โค๏ธ for developers who want a true local AI teammate that gets smarter every day.
- See
README_REWARDS.mdfor the daily Top-20 vs Developer reward mechanics and distribution rules. - A minimal contracts scaffold (Hardhat + Solidity) is available in the
contracts/folder (HerToken,FeeSplitter,RewardDistributor,Staking).
