How the pieces fit together, and which repository owns what.
Nimbus is a local-first AI agent framework. Your machine holds the index and makes the decisions; cloud services are connectors, never the system of record. That single constraint shapes the whole ecosystem: there is one gateway that owns your data, one contract that everything speaks, and a set of surfaces that reach you where you already work.
┌──────────────────────────────┐
│ YOUR MACHINE │
surfaces │ │ connectors
──────── │ ┌──────────────────────┐ │ ──────────
VS Code ─────┐ │ │ Nimbus Gateway │ │ ┌── Google, Microsoft
web clipper ────┼──►│ │ · private SQLite │──►│──┼── GitHub, GitLab, Jira
Raycast ─────┤ │ │ · agent engine │ │ ├── Slack, Notion, …
CLI / TUI ─────┘ │ │ · HITL consent gate │ │ └── ~80 services, MCP only
│ └──────────────────────┘ │
│ JSON-RPC 2.0 IPC │
└──────────────────────────────┘
Everything a surface can do, it does by asking the gateway over local IPC. No surface talks to a cloud service directly, and the gateway never calls a cloud API except through an MCP connector.
This is the load-bearing architectural rule of the whole ecosystem:
| Package | License |
|---|---|
@nimbus-dev/sdk — the contract |
MIT |
@nimbus-dev/client — the typed IPC client |
MIT |
Nimbus — the gateway |
AGPL-3.0 |
MIT code may flow into AGPL. The reverse would infect. So shared types must
live in nimbus-sdk and be imported by the gateway — never the other way
around. The licence choice is not decoration; it is what keeps the dependency
arrow pointing in the only direction that works.
| Repo | Role | License |
|---|---|---|
Nimbus |
The gateway daemon, connectors, index, agents and the JSON-RPC surface | AGPL-3.0 |
nimbus-sdk |
The contract. Dependency-free TypeScript types for authoring connectors and extensions | MIT |
nimbus-client |
Typed JSON-RPC IPC client — the only supported path from a client to the gateway | MIT |
Where the capability reaches a human.
| Repo | Role |
|---|---|
nimbus-vscode |
VS Code / Open VSX extension — ask, search, chat participant, SCM tooling |
nimbus-web-clipper |
Chrome + Firefox MV3 extension, over the gateway's paired HTTP surface |
nimbus-raycast |
Raycast quick-ask (scaffold) |
nimbus-statuspage |
On-call and status pages from indexed incidents, alerts and DORA metrics (scaffold) |
nimbus-postmortem |
Incident postmortem drafts from indexed incidents, deploys and implicated changes (scaffold) |
The CLI and TUI ship inside the Nimbus repo rather than separately.
Surfaces marked (scaffold) hold a vision README and a build prompt but no implementation yet. They are sequenced in the gateway's roadmap, not here — this document says what exists, not what happens next.
| Repo | Role |
|---|---|
create-nimbus-connector |
Scaffolding generator for first-party-style MCP connectors |
nimbus-mcp-servers |
Standalone MCP servers derived from Nimbus connectors, usable by any MCP client |
nimbus-connector-registry |
Signed index and publisher-key directory for the connector marketplace |
nimbus-recipes |
Community hub for shareable, signed recipes (.nimbus-recipe.yaml) |
awesome-nimbus |
Curated list of connectors, recipes, extensions and resources |
| Repo | Role |
|---|---|
homebrew-tap |
Homebrew tap (macOS / Linux) |
scoop-bucket |
Scoop bucket (Windows) |
linux-repo |
GPG-signed apt/yum repository, published per stable release |
Windows also ships through winget; installers are built in the Nimbus repo.
| Repo | Role |
|---|---|
.github |
Org profile, shared community-health defaults, CLA, this document |
nimbus-security |
Public security model, invariant catalogue, vulnerability disclosure |
nimbus-benchmarks |
Public performance benchmarks and trend dashboards |
Each document owns exactly one question. If two disagree, the one whose question it is wins.
| Question | Owner |
|---|---|
| What the gateway does, and which surfaces come next | Nimbus/docs/roadmap.md |
| How it gets built, reviewed and shipped | Nimbus/docs/infrastructure-roadmap.md |
| Which RPCs the client exposes — the width of the client surface | nimbus-client/ROADMAP.md |
| The authoring contract and its versioning | nimbus-sdk/docs/ROADMAP.md |
| Any one surface's own detail | that surface's own ROADMAP.md |
| How the ecosystem fits together | this document |
There is deliberately no separate cross-surface roadmap. Sequencing — which surface should exist next and why that one first — is a product question and belongs in the gateway's roadmap alongside everything else it sequences. A second sequencing document only creates two files claiming the same authority.
These hold across every repository in the ecosystem. They are architectural constraints, not preferences:
- Local-first — the machine is the source of truth; the cloud is a connector.
- Human-in-the-loop is structural — the consent gate lives in the execution engine, not in a prompt. It cannot be bypassed or configured away.
- No plaintext credentials — secrets live only in the OS vault (Windows DPAPI / macOS Keychain / Linux libsecret). Never in logs, IPC or config.
- MCP as the connector standard — the engine never calls a cloud API directly.
- Platform equality — Windows, macOS and Linux are equally supported; CI gates on all three.
- AGPL-3.0 core, MIT SDK — the dual licence is intentional and directional.
Start with CONTRIBUTING.md and the
Code of Conduct. Contributions require signing the CLA;
the bot will guide you on your first pull request.
To report a vulnerability, see SECURITY.md — use GitHub
private vulnerability reporting on the affected repository.