Everything you need to deploy and operate your AI agent fleet.
Deploy AskAlf in 60 seconds:
git clone https://github.com/SprayberryLabs/askalf.git cd askalf && ./setup.sh docker compose -f docker-compose.selfhosted.yml up -d
Open http://localhost:3001 and complete the 5-step onboarding wizard.
Runs on Linux, macOS, and Windows — anything with Docker.
API server, agent runtime, execution engine, scheduler, orchestration
React SPA, mission control, embedded Claude CLI + Codex terminals
Tool server for agents: tickets, memory, search, docker, security
Database with vector embeddings for 10-layer cognitive memory
Pubsub, rate limiting, session cache, queue management
Privacy-respecting web search for agent research
7 core agents + unlimited custom specialists spawned on demand:
| Agent | Role |
|---|---|
| Backend Dev | API routes, database, server-side logic, bug fixes |
| Frontend Dev | React components, UI features, CSS, styling |
| QA | Tests, validation, regression detection, coverage |
| Infra | Docker, deployments, infrastructure, CI/CD |
| Security | Vulnerability scanning, dependency audits, secret detection |
| Watchdog | Health checks, incident detection, monitoring, alerting |
| Writer | Documentation, changelogs, runbooks, technical writing |
Custom specialists are created on the fly for domain-specific tasks — Terraform, ML Ops, HIPAA compliance, iOS builds, Salesforce, and anything else. They're first-class agents with tickets, memory, and coordination.
The Code tab provides full Claude CLI and OpenAI Codex terminal sessions inside the dashboard. These are real PTY sessions via xterm.js — not wrappers. Your agents' context, MCP tools, and knowledge graph are all available.
10-layer brain system with pgvector embeddings:
5-step setup on first launch:
Mission control with orbital fleet visualization, real-time heartbeat, cost telemetry, and event ticker.
Natural language task dispatch. Type what you need — the intent parser routes to the right agent(s).
Embedded Claude Code and OpenAI Codex terminal sessions with full platform MCP tools.
Agent management, builder for custom agents, skill templates, delegation graph.
Tickets, costs, executions, timeline, orchestrator, providers, guardrails, audit log, workflows, deploy.
Real-time WebSocket event stream with agent and type filtering.
Memory browser, knowledge graph visualization, analytics with consolidation cycles.
Profile, appearance, providers (AI keys), API keys, cost controls, integrations (22), channels (15), devices (12).
12 adapter types for connecting devices to your fleet:
CLI Agent · Docker · SSH · Kubernetes · Browser · Desktop · VS Code · Android · iOS · Raspberry Pi · Arduino/ESP32 · Home Assistant
npm install -g @askalf/agent
# Connect this device to your fleet askalf-agent connect <your-api-key> # Connect to a self-hosted instance askalf-agent connect <your-api-key> --url wss://your-server.com # Run as a background daemon askalf-agent daemon # Check connection status askalf-agent status # Disconnect askalf-agent disconnect
| Flag | Description | Default |
|---|---|---|
--url <url> | Server WebSocket URL | wss://askalf.org |
--name <name> | Device display name | System hostname |
--version | Show version | |
--help | Show help |
Config is stored in ~/.askalf/agent.json. The agent auto-detects capabilities (shell, git, docker, node, python) and reports them to the fleet.
Generate API keys in Settings → API Keys. Keys use the fk_ prefix, PBKDF2 hashing, per-key rate limits, and optional expiration. Use them with the CLI agent or the REST API.
Route all outbound agent traffic through an encrypted VPN tunnel using Gluetun. Your agents' API calls, web searches, and external requests are encrypted and anonymous. Supports 30+ VPN providers.
ProtonVPN (WireGuard — recommended):
ProtonVPN (OpenVPN):
# WireGuard (faster, recommended) VPN_SERVICE_PROVIDER=protonvpn VPN_TYPE=wireguard WIREGUARD_PRIVATE_KEY=your-wireguard-private-key VPN_SERVER_COUNTRIES=Switzerland
# OR OpenVPN VPN_SERVICE_PROVIDER=protonvpn VPN_TYPE=openvpn OPENVPN_USER=your-openvpn-username OPENVPN_PASSWORD=your-openvpn-password VPN_SERVER_COUNTRIES=Switzerland
docker compose -f docker-compose.selfhosted.yml --profile vpn up -d
To also route SearXNG searches through the VPN, swap the search config:
# In docker-compose.selfhosted.yml, change the searxng volume: # from: ./infrastructure/searxng/settings.yml # to: ./infrastructure/searxng/settings-vpn.yml
This enables Google, Google Scholar, Mojeek, and Qwant (blocked without VPN) and routes all search traffic through the tunnel.
Change VPN_SERVER_COUNTRIES to any country your provider supports:
VPN_SERVER_COUNTRIES=Netherlands VPN_SERVER_COUNTRIES=Japan VPN_SERVER_COUNTRIES=United States
Not on ProtonVPN? Change VPN_SERVICE_PROVIDER. Gluetun supports:
Mullvad · NordVPN · Surfshark · ExpressVPN · Private Internet Access · Windscribe · CyberGhost · IPVanish · AirVPN · and 30+ more.
Automatic container recovery. If any AskAlf container fails its health check, Autoheal restarts it automatically. Zero-downtime self-healing. Already included in the compose file — runs by default.
Full source available on GitHub: github.com/SprayberryLabs/askalf
Email support@askalf.org or open an issue on GitHub.