Show HN: Nova – open-source AI orchestrator that works with you
Nova is a self-hosted, open-source multi-agent AI platform with 24 specialist agents, event-driven automation, two-phase governance, local model execution, and extensive integrations.
Notifications You must be signed in to change notification settings
Fork 0
Star 1
BranchesTags
Open more actions menu
Folders and files
NameName
Last commit message
Last commit date
Latest commit
History
154 Commits
154 Commits
.agent/skills
.agent/skills
.agents/skills/nano-banana-2
.agents/skills/nano-banana-2
.claude
.claude
.rtk
.rtk
.windsurf/skills
.windsurf/skills
config
config
daemon
daemon
db
db
deploy
deploy
docs
docs
public
public
scripts
scripts
services
services
setup
setup
src
src
supabase/migrations
supabase/migrations
tests
tests
workers/nova-site
workers/nova-site
.dockerignore
.dockerignore
.env.example
.env.example
.gitignore
.gitignore
.mcp.example.json
.mcp.example.json
CLAUDE.md
CLAUDE.md
CONTRIBUTING.md
CONTRIBUTING.md
Caddyfile
Caddyfile
DEPLOY.md
DEPLOY.md
INSTALLER.md
INSTALLER.md
LICENSE
LICENSE
README.md
README.md
RELEASES.md
RELEASES.md
SECURITY.md
SECURITY.md
SETUP.md
SETUP.md
bootstrap.sh
bootstrap.sh
bun.lock
bun.lock
package.json
package.json
requirements-memwright.txt
requirements-memwright.txt
skills-lock.json
skills-lock.json
tsconfig.json
tsconfig.json
Repository files navigation
A self-hosted AI team that runs your operation — and asks before it acts.
Nova is a self-hosted, open-source AI platform: a team of 24 specialist agents plus an automation layer that reacts to events and runs the repeatable work in the background. You reach it from Telegram, Slack, Discord, or a terminal — or a webhook, a metric, or a connector event fires it — and it runs on your own model subscriptions and your own machine, with human approval where it matters.
Website · Documentation · Quick start · MIT license
message ──▶ channel ──▶ relay ──▶ orchestrator ──▶ planner or (Telegram/ │ classify │ decompose into event Slack/ │ (heuristic → │ subtasks with (webhook, Discord/ │ pattern cache → │ dependencies) metric, terminal) │ LLM) │ connector) ▼ ▼ agent-router ◀── 24 specialist agents │ prepare ──▶ approve ──▶ execute (safe) (your gate) (ships/spends/sends)
What it is
Multi-agent, not a chatbot. 24 specialist agents (marketing, ops, data, legal, and more — each just a markdown file). A message is classified cheaply, then answered directly, routed to one specialist, or decomposed into a dependency-ordered plan run across several. An optional distributed executive board (7 reasoning personas) can deliberate on strategic questions.
Event-driven, not just a chat bot. A message is one trigger; a webhook, a metric crossing a threshold, a connector event, or a semantic match is another. Any of them can run an agent or a playbook (a reusable SOP), and durable processes carry multi-day work across waits and restarts. Nova runs the operation in the background, not only when you ask.
Two-phase execution + governance. For interactive requests the safe half — research, drafts, generation — runs freely; then an inline Approve / Revise / Cancel gate; only after you approve does the consequential half — publish, send, spend — run. Autonomous paths (schedules, automations) are pre-authorized and governed by spending caps, role-based permissions, and content policies that can hard-block. Agents also earn autonomy over time (a per-category ladder).
Your models, your machine. It drives the official vendor CLIs (Claude Code, Gemini, Codex) as subprocesses, so it runs on subscriptions you already pay for instead of metered API tokens — and it also supports any OpenAI-compatible API (OpenRouter, DeepSeek, xAI, local Ollama/vLLM). It does not reuse or extract tokens. Storage is local split SQLite; embeddings run locally (all-MiniLM-L6-v2, 384-dim). Your keys, your data. MIT licensed.
What it does
Core orchestration
24 specialist agents + task decomposition with dependency resolution and parallel execution
Two-phase approval gate + an earned-autonomy ladder (ask → notify → auto-within-caps)
Persistent memory (facts, goals, tasks) with local semantic recall
Knowledge base (RAG) — feed it PDFs, docs, and URLs; retrieved across agents with citations, on personal / team / per-agent scopes
Multi-channel: Telegram (primary), Slack, Discord, terminal (nova chat / nova connect); WhatsApp per-user
Workboards — boards of typed cards with stages you define: create one with nova workboard create or ask a specialist agent to put a set of results on a board ("put these leads on a board"); agents fill and move cards, you drag them across stages in the dashboard, and a stage can optionally queue a playbook or agent task when a card enters it, behind the same approval gate
Business automation
Playbooks — reusable, versioned, parameterized SOPs
Automations — an event (webhook, metric, connector, or semantic match) runs an agent or playbook, with dedupe, rate limits, retries, and a dead-letter queue
Durable processes — multi-day flows that wait for a timer or event and resume, surviving restarts
Document extraction — schema → strict, type-checked JSON from PDFs/DOCX
Connectors — two-way Stripe, Shopify, Zendesk, HubSpot (read + write)
Connected data — query HTTP JSON/CSV, read-only SQLite, or a connector read action
ROI reporting — tasks automated, hours saved, and value vs. cost
Governance & hardening
Compliance policies — spend caps, approval routing, and PII/content checks that can hard-block (prevent execution even after approval)
Role-based permissions (capabilities) and out-of-office delegation
Exactly-once idempotency, advisory locks (no double-fire), and AES-256-GCM encrypted secrets
Foundations
13 MCP servers (Notion, Google Workspace, Playwright, Cloudflare, ClickUp, GoHighLevel, Firecrawl, Tavily, Exa, and more) — called via mcp2cli, where agents discover tools on demand instead of loading every schema into context
45 skills (image/doc generation, research writing, and more) invoked by agents as needed
Scheduler + proactive services (morning briefings, smart check-ins)
Voice — inbound and outbound calls via Twilio; voice messages transcribed with Groq or local Whisper
A unified nova CLI and a web dashboard
How it works
Every incoming message is classified through three tiers, cheapest first:
Heuristic — short, simple messages skip straight to the model (no classifier LLM call).
Pattern cache — a request that matches a plan that worked before reuses it, skipping classification.
LLM classification — only genuinely new, complex asks pay for a cheap classify call (simple / routed / complex).
Complex requests are decomposed into subtasks with dependencies; independent branches run in parallel, each on a specialist agent with its own tools and MCP access. Consequential actions run in the execute phase, which waits for your approval (or runs under an earned autonomy grant with a spending cap). Prepared artifacts — copy, images, files — flow from prepare into execute.
Honest about the boundaries
Nova connects to real accounts and can spend real money, so it's worth being precise about what protects you:
The approval gate is the default safety boundary — not a sandbox. Sandboxed execution is opt-in and off by default: agent tools run unsandboxed on your host. A hardened Docker sandbox exists (NOVA_SANDBOX_BACKEND=docker) but is not the default, and if Docker isn't installed it falls back to unsandboxed with a warning. Run it as a dedicated user / on a VPS, and turn on the Docker sandbox if that matters to you.
"Asks before it acts" is about interactive requests. Things you set up in advance to run on their own — scheduled tasks, automations, and durable-process steps — are pre-authorized when you create them and run without a fresh prompt each time (that's the point of automating). The controls on those autonomous paths are the earned-autonomy ladder with spending caps and the hard-block compliance policies (which stop execution even there).
It's young and solo-built. ~390 unit tests across the suite, but no end-to-end tests of the full automation chain yet, and it's a broad surface for one maintainer. The connector set is a starter four. Read the code before you trust it with the keys.
On top of the approval gate, four controls are on by default: least-privilege agent env (NOVA_AGENT_ENV_STRICT), an egress leak firewall that redacts/blocks secrets leaving the system (NOVA_LEAK_FIREWALL), an untrusted-input firewall that neutralizes tool/web/email content before it reaches an agent prompt (NOVA_UNTRUSTED_FIREWALL), and a dashboard that binds loopback-only unless DASHBOARD_PASS is set. Run nova doctor --security to grade your deployment.
Quick start
Prerequisites
Bun (curl -fsSL https://bun.sh/install | bash)
The Claude Code CLI installed and authenticated (or another supported provider)
A Telegram account and a bot token from @BotFather
Option A: One-line install (recommended)
curl -fsSL https://mynova.space/install | bash
That clones Nova to ~/nova, installs anything missing (Bun, the Claude Code CLI), and launches a guided setup wizard (nova init) that connects Telegram and an AI provider — no file editing, and it can auto-detect your Telegram user ID. The wizard is resumable.
Prefer to clone yourself? git clone https://github.com/djbelieny/nova.git && cd nova && bash bootstrap.sh does the same. Just checking prerequisites? bash bootstrap.sh --check reports what's installed and changes nothing.
Option B: Manual setup
git clone https://github.com/djbelieny/nova.git cd nova bun run setup # install deps, create .env
edit .env with your tokens/keys
bun run test:telegram # verify bot token bun run start # start Nova
The nova CLI
After setup, one nova command runs everything:
nova start # start the relay (main process) nova chat # talk to Nova in your terminal nova connect # attach to a running Nova, with live activity + inline approvals nova dashboard # web dashboard nova doctor # health check nova init # (re-)run the setup wizard
capabilities
nova kb add # feed the knowledge base nova playbook run # run a saved SOP nova automation add … # event → workflow nova process | data | roi | extract # processes, connected data, ROI, extraction
governance
nova policy add … # spend caps, approval routing, content checks nova access grant … # role-based capability grants nova ooo set @teammate # out-of-office delegation nova connector set … # store connector secrets, encrypted at rest
The underlying bun run entry points still work; advanced scripts (test:*, exec:*) are exposed through bun run.
Project structure
src/
relay.ts # entry point — channels, coordination, service startup
orchestrator.ts # classification, two-phase gate, autonomy ladder, hard-block
planner.ts # task decomposition, parallel execution, artifacts
agent-router.ts # agent catalog, tool/skill/MCP mapping, prompt construction
memory.ts # intent tags, context injection
db.ts # split SQLite + sqlite-vec, encrypted credentials
embeddings.ts # local all-MiniLM-L6-v2
ai-provider.ts / ai-router.ts / provider-registry.ts # subscription CLIs + OpenAI-compatible
knowledge.ts # RAG knowledge base
playbooks.ts automation-engine.ts process-engine.ts # automation suite
extraction.ts policy.ts roi.ts data-sources.ts
connectors/ # Stripe, Shopify, Zendesk, HubSpot
permissions.ts delegation.ts locks.ts # governance
mcp2cli.ts sandbox/ # MCP-via-CLI, opt-in Docker sandbox
channels/ # telegram, slack, discord, cli, whatsapp
providers/ # claude, gemini, codex, groq
cli.ts # the unified nova command
services/ # task dispatcher, automation poller, proactive services
.claude/agents/ # 24 specialist agents (+ executives/) as markdown
.claude/skills/ # 45 skills
Documentation
mynova.space/docs — every feature, command, and configuration opt
[truncated for AI cost control]