Deploy & operate AI agent fleets on infrastructure you control.
The self-hosted, runtime-neutral control plane for OpenClaw and Hermes agents — deploy, monitor, and operate them from one operator surface, Apache 2.0. Run on Docker or Kubernetes today, use NemoClaw sandboxes experimentally, and track Proxmox as a planned execution target.
📚 Documentation · Quick Start · Self-Hosting · Architecture · How Nora Compares · Changelog · Public Site · Create Account
- MCP — shipped. A control-plane MCP server (
@noraai/mcp-server, published to the official MCP Registry) plus per-agent MCP server management — operate the fleet from Claude Code / Desktop / Cursor, and wire MCP tools into individual agents. - OpenTelemetry GenAI — available. OTLP + Prometheus export of runtime telemetry under the
gen_ai.*semantic conventions — per-exchange chat spans plus token/cost/resource metrics flow into the Grafana / Datadog / Langfuse stack you already run. (Per-tool-call sub-spans depend on runtime event streams and remain on the roadmap.) - A2A — on the roadmap. Agent Cards / Agent-to-Agent discovery for managed OpenClaw and Hermes agents.
- Isolation, per deploy target. Standard Docker and Kubernetes runs use container namespaces plus operator-set CPU / RAM / disk limits; the experimental NemoClaw profile hardens untrusted code with a non-root user, all Linux capabilities dropped,
no-new-privileges, Landlock + seccomp, and default-deny egress; Proxmox VM placement (planned) is the future hardware-isolation tier. See the isolation model.
Nora is the self-hosted AI agent ops platform for running autonomous agent fleets on infrastructure you control, whether you standardize on OpenClaw, Hermes, or keep both available in the same operator surface.
Most teams running agents in production eventually rebuild the same layer around the runtime itself: deploy workflows, secrets, monitoring, logs, terminal, Agent Hub templating, and a separate admin surface. Nora exists so that layer doesn't have to be rewritten every time the runtime conversation changes.
In one place: deploy OpenClaw and Hermes runtimes, migrate existing runtimes via uploaded bundles or live Docker/SSH inspection, manage provider keys with sync to running runtimes, validate agents through runtime-specific surfaces, browse and edit live runtime files, install Agent Hub starter templates, review monitoring and account event history, and connect channels and integrations from the same control plane. Operator workflows live under /app; platform-wide admin lives under /admin.
→ Why Nora · Runtime model · Deployment footprint
macOS / Linux / WSL2:
curl -fsSL https://raw.githubusercontent.com/solomon2773/nora/master/setup.sh | bashWindows (PowerShell):
iwr -useb https://raw.githubusercontent.com/solomon2773/nora/master/setup.ps1 | iexWindows requires PowerShell 7+. The default Windows PowerShell 5.1 is not supported — run the command above from a
pwsh7 session.
The installer verifies prerequisites, generates or preserves secrets, optionally creates a bootstrap admin, picks free local ports when the defaults are busy, and starts the stack. Once it finishes, open the URL printed by setup. Local mode defaults to http://localhost:8080, but setup may select another port such as 8081 on a busy workstation. Then follow the first-15-minutes walkthrough.
For manual setup, environment variables, public-domain mode, TLS, Kubernetes, NemoClaw, and planned Proxmox configuration, see the docs:
- Self-hosting guide
- Environment variables reference
- Provisioner backends (Docker and k3s/Kubernetes are GA; NemoClaw is experimental; Proxmox is planned)
- TLS and public domains
- Fronting a launch with Cloudflare — edge caching, rate limiting, and spike absorption for the single-host deploy
Full docs live at noradocs.solomontsao.com. The MDX source is in docs/.
| Section | What's there |
|---|---|
| Quick Start | Install and validate your first agent in 15 minutes |
| Concepts | Architecture, agents, runtimes, workspaces, LLM providers, Agent Hub |
| Configuration | Platform modes, env vars, provisioner backends, TLS / public domains |
| Guides | Deploy agent, providers, integrations, channels, monitoring, alert rules, backups, Agent Hub, NemoClaw |
| API Reference | Auth, workspaces, agents, channels, integrations, providers, monitoring, alert rules |
| Support | FAQ, troubleshooting |
Nginx
├── / → frontend-marketing (Next.js)
├── /app/* → frontend-dashboard (Next.js)
├── /admin/* → admin-dashboard (Next.js)
└── /api/* → backend-api (Express.js)
├── PostgreSQL
├── Redis + BullMQ (deployments, clawhub-jobs, backups, alert-deliveries)
├── worker-provisioner
├── worker-backup
└── runtime adapters/profiles (Docker GA · k3s/k8s GA · NemoClaw experimental · Proxmox planned)
Full architecture write-up — system map, queue/worker boundaries, RBAC, migration contract, deployment topologies — is in docs/concepts/architecture.
| Layer | Technology |
|---|---|
| Reverse proxy | Nginx |
| Frontends | Next.js 16, React 19, Tailwind CSS |
| Backend API | Express.js 5, Node.js 24 LTS |
| Auth | JWT, HttpOnly cookies, bcryptjs, provider OAuth bridge |
| Database | PostgreSQL 15 |
| Queue | BullMQ + Redis 7 |
| Runtime families | OpenClaw, Hermes |
| Provisioning backends | Docker and k3s/Kubernetes (GA); NemoClaw (experimental sandbox); Proxmox (planned) |
| Secrets at rest | AES-256-GCM (provider keys, integrations, backups) |
Workspace-scoped API keys (bearer-only, prefixed nora_, HMAC-hashed at rest, scope-based) drive a stable subset of the REST surface. Issue keys at /app/workspaces/<id>/api-keys.
export NORA_TOKEN="nora_..."
curl -H "Authorization: Bearer $NORA_TOKEN" https://your-nora.example.com/api/agentsA small CLI lives in cli/ (@noraai/cli): run nora login once to save your host and API token, then nora workspaces, nora agents, and nora monitoring wrap the same REST surface. nora doctor runs an admin-only control-plane health check, and nora mcp launches the MCP stdio server. See the API reference for the supported endpoints and scopes.
Operate Nora from Claude Code, Claude Desktop, or Cursor: the mcp-server/ package (@noraai/mcp-server) exposes the same API as Model Context Protocol tools — deploy agents, control their lifecycle, and read fleet metrics, events, and per-agent cost from any MCP client. Destructive deletion stays disabled unless explicitly opted in.
claude mcp add nora \
--env NORA_API_URL=https://your-nora.example.com \
--env NORA_API_KEY=nora_... \
-- npx -y @noraai/mcp-serverSee the MCP guide for Claude Desktop/Cursor config, the tool list, and security notes.
Current roadmap items:
- High priority - NemoClaw experimental hardening: mature the experimental secure-sandbox profile across enablement, NVIDIA key and model configuration, OpenShell policy controls, approvals, gateway health, logs, terminal access, telemetry, and end-to-end validation.
- Proxmox execution target: complete the planned LXC deployment path for standard, Hermes, and NemoClaw-backed runtimes, with stronger API/SSH validation, template handling, lifecycle operations, log streaming, telemetry, and smoke coverage.
- Hermes/OpenClaw parity: close runtime gaps across validation, deployment readiness, logs, terminal access, monitoring, integration setup, and failure reporting.
- First-run operator UX: tighten the setup path for workspaces, LLM providers, provisioning backends, the first agent deploy, and recommended smoke checks.
- Account-scoped monitoring: add account-level health views that roll up workspace, agent, runtime, cost, and alert signals with drill-downs where operators need detail.
- Auth and key-sync hardening: strengthen session and API-key boundaries, provider key propagation, audit trails, key rotation, and recovery from partial sync failures.
- Agent Hub ergonomics: improve template discovery, install/configure flows, version metadata, setup guidance, and post-install validation.
# Docker (recommended)
docker compose up -d
docker compose logs -f backend-api
# Tests
cd backend-api && npx jest --no-watchman
cd e2e && npm testDetailed contributor guidance, subtree ownership, and development commands live in CLAUDE.md. For deeper repo work, read CONTRIBUTING.md, the root AGENTS.md, and the nearest subtree AGENTS.md.
New here? Browse good first issues for small, self-contained starting points, then skim CONTRIBUTING.md.
Strong contribution areas: runtime adapter work · operator and admin UX · provisioning and lifecycle orchestration · integrations and channels · test and CI hardening · self-hosted deployment ergonomics.
Typical workflow: fork → branch (feature/...) → commit → pull request.
This project is open source under the Apache License 2.0.