Skip to main content

AI Workstation — Build Software, Edit Video, Process Data, and More

Project description


Hauba

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

CI  PyPI  Python  License  Tests  Skills

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

Run a task

hauba run Think → Plan → Execute → Verify → Deliver

30-second setup

hauba init Pick provider → Paste key → Ready to ship

24/7 daemon agent

hauba agent Polls → Claims → Builds locally → Notifies on phone

WhatsApp command center

whatsapp Message bot → Queued → Built on your machine → Results delivered

Compose AI teams

hauba compose Architect → Backend ∥ Frontend → DevOps

Queue + Poll architecture

architecture Your machine ↔ Server relay ↔ Channels



Capabilities

Enterprise-Grade Engine

Powered by GitHub Copilot SDK — the same production-tested runtime behind Copilot. Not a wrapper around ChatGPT. The real agentic backbone.

BYOK — $0 Platform Cost

Bring Claude, GPT-4, or run fully offline with Ollama. Your key, your models. Server owner pays nothing. You control every dollar.

Air-Gap Ready

100% offline with Ollama. No telemetry. No cloud dependency. Deploy in classified environments, air-gapped networks, or just your laptop.

17 Built-in Skills

Full-stack, ML, video editing, data pipelines, DevOps, security — domain expertise as composable .md files. TF-IDF matched to every task.

Ship via WhatsApp

Message your AI team from WhatsApp, Telegram, or Discord. Get results on your phone. 12 commands. Smart routing. Zero false positives.

Zero-Hallucination Ledger

SHA-256 hash chain + bit-vector + WAL. 5 verification gates. If the agent says it's done, it's cryptographically proven.




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-engineeringComplete SaaS builds — 6-milestone playbook
api-design-and-integrationREST, GraphQL, webhooks
code-generationMulti-language, any framework
data-engineeringPipelines, ETL, warehousing
data-processingCleaning, transformation, analysis
debugging-and-repairRoot cause analysis + fixes
devops-and-deploymentDocker, CI/CD, cloud infra
document-generationReports, docs, specs
image-generationImage creation + processing
machine-learningTraining, eval, deployment
refactoring-and-migrationCode modernization
research-and-analysisDeep research, synthesis
security-hardeningAudits, OWASP, hardening
testing-and-qualityTest suites, coverage, QA
video-editingTrim, effects, subtitles
web-scrapingData extraction at scale
automation-and-scriptingWorkflow 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

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

hauba-0.7.1.tar.gz (189.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hauba-0.7.1-py3-none-any.whl (187.7 kB view details)

Uploaded Python 3

File details

Details for the file hauba-0.7.1.tar.gz.

File metadata

  • Download URL: hauba-0.7.1.tar.gz
  • Upload date:
  • Size: 189.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hauba-0.7.1.tar.gz
Algorithm Hash digest
SHA256 1d67d0edeefbd4d6abde83c0e55f9e81385548f9fb36912f621ee2bd984e3641
MD5 ad38864c9b819103ee36a5c5b8648ddf
BLAKE2b-256 31751177a0ad0af429accb6953926a85f8b118c3d7a06b429a53757e0be5852f

See more details on using hashes here.

File details

Details for the file hauba-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: hauba-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 187.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hauba-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 49326cec5562e87a23835e34e984ab23c9aa82cc3614ed3017b559fc3e2b878b
MD5 41aa28ac365475ecf104201608fa3ea3
BLAKE2b-256 85efbd0fd13f594c03bbd0d38de4d511c292ef48292f7b1f0aea3e9deaf2bfbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page