Stop hiring engineers.
Start shipping products.
An AI engineering company in your terminal. Not a chatbot.
Powered by GitHub Copilot SDK · Open Source · MIT License
Install · Demo · Features · Architecture · Website · PyPI
pip install hauba && hauba init && hauba run "build me a SaaS"
One command gives you an AI team that plans architecture, writes production code, runs tests, fixes bugs, and delivers — while you sleep.
The same AI backbone used by GitHub. Now open-source and in your hands.
Your API key. Your machine. Zero platform cost.
We call this BYOK — Bring Your Own Key. The server is just a message queue. Builds always happen on your machine, with your credentials, under your control. Hauba charges nothing. Ever.
Install
pip install hauba
| Platform | Command |
|---|---|
| PyPI | pip install hauba |
| macOS / Linux | curl -fsSL https://hauba.tech/install.sh | sh |
| Windows | irm hauba.tech/install.ps1 | iex |
| Source | git clone https://github.com/NikeGunn/haubaa.git && cd haubaa && pip install -e ".[dev]" |
Optional extras
pip install hauba[all] # everything
pip install hauba[computer-use] # browser + screen automation
pip install hauba[voice] # voice mode (Whisper + TTS)
pip install hauba[web] # web dashboard (FastAPI)
pip install hauba[channels] # WhatsApp, Telegram, Discord
pip install hauba[services] # email (SMTP)
Requirements: Python 3.11+ — nothing else. No Docker. No Redis. No Kubernetes.
Quickstart
hauba init # pick provider, paste key — 30 seconds
hauba run "build a SaaS dashboard with auth" # it plans, you approve, it ships
$ hauba run "build a SaaS dashboard with auth"
Thinking...
Matched skills: full-stack-engineering, api-design, testing
Plan
----
1. Set up project structure
2. Implement JWT authentication
3. Build dashboard components
4. Add Stripe billing integration
5. Write test suite
6. Verify all tests pass
Proceed? [Y/n] y
Executing (5/6)...
[file] src/auth/handler.py CREATED
[file] src/billing/stripe.py CREATED
[bash] pytest tests/ -v PASSED (12 tests)
✓ Task completed — 8 files created, 12 tests passing, 0 errors
Session stays open. Keep building:
> "add rate limiting and CORS"
> "write a Dockerfile for production"
> "deploy to Railway"
See It Work
Capabilities
How It Works
From idea to production in 3 steps.
| Step | You Do | Hauba Does |
|---|---|---|
| 1 | pip install hauba && hauba init |
Sets up workspace, loads 17 skills |
| 2 | Describe what you want in plain English | Plans architecture, shows you for approval |
| 3 | Approve the plan | Writes code, runs tests, fixes bugs, delivers |
Two modes of operation
Local CLI — you're at your computer:
hauba run "build me a landing page" → plans → you approve → builds → done
Queue + Poll — you're on your phone:
WhatsApp message → server queues it → your daemon picks it up
→ builds on YOUR machine with YOUR key → notifies you when done
┌─────────────────────┐ ┌─────────────────────┐
│ YOUR PHONE │ │ YOUR MACHINE │
│ │ │ │
│ WhatsApp │ │ hauba agent │
│ Telegram ────────┼────► │ ├─ poll │
│ Discord │ task │ ├─ claim │
│ │ queue │ ├─ build (BYOK) │
│ ◄─────────────────┼─────── │ └─ notify │
│ "Done! 8 files" │ result │ │
└─────────────────────┘ └─────────────────────┘
▲ │
│ hauba.tech │
└──── (relay) ────────┘
The server never sees your API key. It's a stateless relay.
Daemon Agent
Your AI engineer that runs 24/7. Never sleeps. Never takes PTO.
hauba agent --server https://hauba.tech
| Polls | Server every 10s for tasks from any channel |
| Claims | Auto-picks up queued tasks |
| Builds | Locally with your API key |
| Reports | Progress every 15s — live updates on your phone |
| Tracks cost | Alerts when spend exceeds $5 (configurable) |
| Auto-retries | Up to 3 attempts on failure |
| Remote cancel | Kill any task from WhatsApp mid-build |
Channels
WhatsApp · Telegram · Discord
Message your bot. Get results on your phone. 12 commands:
| Command | Effect |
|---|---|
| "build me a dashboard" | Queued for your daemon |
/tasks |
List tasks with live status |
/cancel <id> |
Cancel a running task |
/retry <id> |
Retry a failed task |
/web <url> |
Fetch + summarize any URL |
/email <to> <subj> | <body> |
Send email |
/reply <msg|off> |
Auto-reply mode |
/usage |
Cost and usage stats |
/status |
Health check |
/plugins |
Active plugins |
/feedback <msg> |
Send feedback |
/new |
Clear session |
Smart routing: build requests go to queue, chat gets instant responses.
hauba setup whatsapp # interactive Twilio wizard
Compose
docker-compose for AI agents. Define your team. Let them build.
# hauba.yaml
team: "my-saas"
model: "claude-sonnet-4-5-20250929"
agents:
architect:
role: "Senior Software Architect"
skills: [system-design, api-design]
backend:
role: "Backend Engineer"
skills: [fastapi, auth, database]
depends_on: [architect]
frontend:
role: "Frontend Engineer"
skills: [nextjs, tailwind, react]
depends_on: [architect]
devops:
role: "DevOps Engineer"
skills: [docker, ci-cd, monitoring]
depends_on: [backend, frontend]
output: "./output"
hauba compose up "build a SaaS with auth and Stripe billing"
Backend + frontend run in parallel. DevOps waits for both. Circular dependency detection built in.
Skills
17 built-in. Human-readable .md files. Install your own.
full-stack-engineering | Complete SaaS builds — 6-milestone playbook |
api-design-and-integration | REST, GraphQL, webhooks |
code-generation | Multi-language, any framework |
data-engineering | Pipelines, ETL, warehousing |
data-processing | Cleaning, transformation, analysis |
debugging-and-repair | Root cause analysis + fixes |
devops-and-deployment | Docker, CI/CD, cloud infra |
document-generation | Reports, docs, specs |
image-generation | Image creation + processing |
machine-learning | Training, eval, deployment |
refactoring-and-migration | Code modernization |
research-and-analysis | Deep research, synthesis |
security-hardening | Audits, OWASP, hardening |
testing-and-quality | Test suites, coverage, QA |
video-editing | Trim, effects, subtitles |
web-scraping | Data extraction at scale |
automation-and-scripting | Workflow automation |
hauba skill list # see all
hauba skill show full-stack # inspect
hauba skill install ./custom.md # add yours
hauba skill create my-skill # scaffold
TaskLedger
Zero trust. Full verification. Every task passes 5 cryptographic gates:
GATE 1 PRE-EXECUTION Ledger must exist before work begins
GATE 2 DEPENDENCY All upstream tasks VERIFIED
GATE 3 COMPLETION SHA256(prev_hash + task_id + artifact_hash)
GATE 4 DELIVERY Full gate check at every level
GATE 5 RECONCILIATION plan_count === ledger_count
Bit-vector state tracking. SHA-256 hash chain. Write-Ahead Log. Crash-safe. Tamper-evident.
Plugins
Extend Hauba with async Python plugins. 7 lifecycle hooks.
from hauba.plugins.base import BasePlugin
class MyPlugin(BasePlugin):
name = "my-plugin"
async def on_message(self, channel, sender, text):
if "urgent" in text.lower():
return "Prioritizing your task!"
return None
async def on_task_complete(self, task_id, output):
... # your logic
def create_plugin():
return MyPlugin()
hauba plugins install ./my_plugin.py
hauba plugins list
hauba plugins remove my-plugin
Hooks: on_load · on_unload · on_message · on_task_complete · on_task_queued · on_startup · on_shutdown
Supported Models
| Provider | Models | Offline |
|---|---|---|
| Anthropic | Claude Opus 4.6 · Sonnet 4.5 · Haiku 4.5 | — |
| OpenAI | GPT-4o · o3 | — |
| Azure | Any Azure OpenAI deployment | — |
| Ollama | Qwen 2.5 Coder · Llama 3 · any local model | Yes |
hauba config llm.provider anthropic
hauba config llm.model claude-sonnet-4-5-20250929
Architecture
┌───────────────────────────┐
│ CHANNELS │
│ WhatsApp · Telegram │
│ Discord · Voice · Web │
└─────────────┬─────────────┘
│
┌──────▼──────┐
│ SERVER │ hauba.tech
│ Task Queue │ relay only
│ Webhooks │ zero builds
└──────┬──────┘
│ poll 10s
┌──────▼──────┐
│ DAEMON │ your machine
│ CopilotSDK │ YOUR key
│ 17 skills │ TF-IDF match
│ TaskLedger │ SHA-256
└─────────────┘
Source layout
src/hauba/
├── cli.py # 20+ commands (Typer + Rich)
├── engine/copilot_engine.py # Core — GitHub Copilot SDK
├── daemon/
│ ├── agent.py # 24/7 polling daemon
│ └── queue.py # Task queue with TTL + retry
├── channels/
│ ├── whatsapp_webhook.py # WhatsApp bot (12 commands)
│ ├── telegram.py # Telegram
│ ├── discord.py # Discord
│ └── voice.py # Whisper STT + edge-tts
├── skills/
│ ├── loader.py # .md parser
│ └── matcher.py # TF-IDF matching
├── plugins/ # base · loader · registry
├── ledger/
│ ├── tracker.py # bit-vector + hash chain
│ ├── wal.py # Write-Ahead Log
│ └── gates.py # 5 verification gates
├── memory/store.py # SQLite + TTL + compaction
├── services/
│ ├── email.py # SMTP
│ └── reply_assistant.py # auto-reply
├── tools/ # bash · files · git · fetch · browser · screen
├── compose/ # hauba.yaml parser + DAG runner
├── core/ # config · constants · events
├── ui/ # Rich terminal + FastAPI web
└── bundled_skills/ # 17 .md files
Tech stack
| Runtime | Python 3.11+ · asyncio |
| AI Engine | GitHub Copilot SDK |
| CLI | Typer · Rich |
| Storage | SQLite (aiosqlite) |
| Validation | Pydantic v2 |
| HTTP | httpx |
| Logging | structlog (JSON) |
| Web | FastAPI · WebSocket |
| Channels | Twilio · python-telegram-bot · discord.py |
| Voice | Whisper · edge-tts |
| Browser | Playwright |
| Quality | ruff · pyright · pytest |
CLI reference — 20+ commands
CORE
hauba init setup wizard
hauba run "task" [--no-interactive] execute a task
hauba status config + last task
hauba doctor system diagnostics
hauba logs [--lines 50] view logs
hauba config <key> [value] get/set config
DAEMON
hauba agent [--server URL] start 24/7 daemon
hauba tasks [--server URL] list tasks
hauba cancel <task_id> cancel task
hauba retry <task_id> retry task
hauba usage cost summary
COMPOSE
hauba compose up "task" [-f file] run agent team
hauba compose validate [-f file] validate yaml
SKILLS
hauba skill list list skills
hauba skill show <name> inspect skill
hauba skill install <path> add skill
hauba skill create <name> scaffold skill
PLUGINS
hauba plugins list list plugins
hauba plugins install <path.py> add plugin
hauba plugins remove <name> remove plugin
CHANNELS
hauba setup whatsapp whatsapp wizard
hauba email <to> <subj> [body] send email
hauba web <url> fetch url
hauba reply <message|off> auto-reply
hauba feedback <message> feedback
UI
hauba voice voice mode
hauba serve [--port 8420] web dashboard
hauba api [--port 8080] REST API
hauba replay <id> [--speed 2] replay session
Deployment
Server runs at hauba.tech on Railway. Handles webhooks and task queuing. All builds execute on user machines.
Server environment variables
TWILIO_ACCOUNT_SID=...
TWILIO_AUTH_TOKEN=...
TWILIO_WHATSAPP_NUMBER=whatsapp:+1...
HAUBA_LLM_API_KEY=... # server chat only
HAUBA_SMTP_HOST=smtp.gmail.com # optional
Testing
pytest tests/ -v # 432 tests, 0 failures
| Matrix | |
|---|---|
| Ubuntu · macOS · Windows | All passing |
| Python 3.11 · 3.12 · 3.13 | All passing |
| ruff + pyright | All passing |
Contributing
git clone https://github.com/NikeGunn/haubaa.git && cd haubaa
pip install -e ".[dev]" && pytest tests/ -v
Conventional commits: feat: · fix: · refactor: · test: · docs:
See CONTRIBUTING.md.
MIT License — LICENSE
Stop hiring. Start shipping.
Website ·
PyPI ·
Issues ·
Releases
Built by Nikhil Bhagat and community · Powered by GitHub Copilot SDK
Metadata
Release files for hauba 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hauba-0.9.0.tar.gz | 217.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hauba-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 431.5 kB
Release files / hauba-0.9.0.tar.gz
| Download URL | hauba-0.9.0.tar.gz |
|---|---|
| Size | 217.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0218dab99538fe85a08b6d818a852be519a8544e9797e992a3a50ab8e13daba5
|
|
BLAKE2b-256 checksum How to use checksums |
d941b86f00e223a4bf6108b8168dba28353cc5a2bf7dcb94e724f6467df1bd85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / hauba-0.9.0-py3-none-any.whl
| Download URL | hauba-0.9.0-py3-none-any.whl |
|---|---|
| Size | 213.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba3130ae0ffcbdfd9c6a710f3d421c9dc6d9aae31ddda38b3f2f0a0b7bb6f24c
|
|
BLAKE2b-256 checksum How to use checksums |
701715be7ccbaceebc585e099a6832c4c7a0ec755aae002b9027948924eb52b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|