Skip to content

Nimbus

Your 24/7 Employee.

An AI that logs into your apps, sends emails, updates your CRM, and runs tasks while you sleep. Set it up once, free forever.

Built by Sunday Johnson at Yoodule.

One command installs the CLI, the gateway, and every bundled MCP server. The video walks through Docker prerequisites, the OpenRouter API key step, the optional Agent Dashboard, and importing a workflow.

Two ways to use Nimbus

Self-host

Free forever

  • Runs on your laptop, your server, your CI
  • One-command install on macOS, Linux, Windows
  • Full source, BUSL-1.1 license
  • SHA256-verified, SLSA-attested releases
Get the installer

Nimbus Cloud

Managed · Yoodule-operated

  • We provision, patch, and monitor 24/7
  • Production-grade uptime and incident response
  • Migration help from self-hosted when you're ready
  • Same Nimbus, same MCP servers, no ops burden
Talk to Yoodule

Self-hosting Nimbus is and always will be free. Cloud is for teams who'd rather pay us to run it than to run it themselves.


Why Nimbus

You don't want another tool. You want an employee — one that handles the busywork, learns how you work, and is there at 2 AM when a customer emails. Nimbus is that employee. It plugs into the apps you already use, follows the steps you'd take, and gets smarter every time it runs.

Works while you sleep Schedule a task at any time — daily follow-ups, weekly reports, hourly checks. Nimbus runs them and pings you when it's done.
Uses the apps you already pay for Notion, Gmail, your CRM, your calendar. Nimbus logs in and acts on them — no copy-paste, no exports.
Asks before it does anything risky Sends a draft instead of an email, shows you a plan before it deletes a row. You're always in control.
Heals itself when something breaks A password rotated, a service restarted, an app updated — Nimbus notices and fixes it. You don't get paged.

What it can do

📨 Send follow-up emails

Tell Nimbus "email everyone who downloaded the whitepaper last week but didn't book a call." It writes a draft, waits for your sign-off, and sends.

📊 Build reports from your data

"Pull last month's closed deals, group by industry, and put a chart in the shared Notion page." Done by morning. No spreadsheet wrangling.

🗓️ Triage your inbox

Every morning, Nimbus labels new emails, drafts replies for the obvious ones, and flags the rest for your review. You only look at the ones that need you.

🔁 Run workflows on a schedule

"Every Friday at 4pm, post the week's top wins to #team-channel and email me a summary." Nimbus runs it forever, no maintenance.

🧠 Remembers how you work

The more you use Nimbus, the more it learns. It knows which emails you always archive, which reports matter, and which steps to skip.

🛡️ Never sends anything you haven't approved

Nimbus drafts first, you sign off. It can't send an email, delete a row, or post a message without your click. Full audit trail, every action.


Where it fits in your business

For a founder doing everything

Stop spending Sundays writing follow-up emails and updating your CRM. Hand the repetitive work to Nimbus and use the time for the stuff only you can do.

nimbus start — set up once on your laptop, free forever.

For a small team

Give everyone on the team their own Nimbus employee. They share context, remember what each person prefers, and never lose a customer note.

Every action is signed, audited, and reversible.

For a company that needs control

Run Nimbus inside your own infrastructure, with your own keys and your own audit logs. Or hand it to us and we run it. Same employee either way.

Compare self-host vs. Cloud →


The Semantic Gateway (mcp.json)

For the curious: Nimbus runs on a small config file that lists every app your employee can use. You probably won't need to touch it — Nimbus comes with sensible defaults.

Nimbus aggregates all your stdio and HTTP-based MCP servers into a single interface. When an AI model requests a capability, Nimbus dynamically discovers and executes the appropriate tool using vector embeddings stored in Qdrant.

Configure your active servers by modifying mcp.json in your Nimbus home directory:

{
  "mcpServers": {
    "playwright-mcp": {
      "url": "http://localhost:3100/mcp",
      "transport": "streamable-http"
    },
    "notion-mcp": {
      "url": "https://mcp.notion.com/mcp",
      "transport": "streamable-http",
      "auth": "oauth"
    },
    "linkedin-mcp": {
      "command": "uv",
      "args": ["run", "-m", "linkedin_mcp_server", "--transport", "stdio"]
    }
  }
}

The gateway exposes the MCP transport surface directly — there is no nimbus-utility-mcp wrapper namespace. Two tools do all the work the model needs to discover and act on registered servers:

  1. find_tools — Semantic search across all configured MCP backends (and the validator catalog, via the kind discriminator). Your model asks for "browse linkedin" and gets back only the relevant namespaced tool schemas (<server>_<tool>) it can dispatch against. Read-only.
  2. execute_tool — The generic dispatcher. Takes a tool name returned by find_tools and the arguments, fans the call out to the right backend server, and streams the result back. Read/write annotations depend on the downstream tool — the dispatcher itself never deletes user data.

Other tools live on the same transport for the agent's own bookkeeping — nimbus_agent, nimbus_todo_write, nimbus_get_task_progress_log — but the two above are the surface area for talking to the apps in mcp.json.


CLI Reference

For the technical user: every command Nimbus understands. Most people only need nimbus start and nimbus doctor — the rest is for when something goes sideways.

The nimbus CLI controls the lifecycle of your local containerized workspace.

Command Action
nimbus start Boot services. Provisions and starts all Docker containers (postgres, redis, qdrant, gateway).
nimbus start --build Re-build & boot. Rebuilds Docker images from the current source and boots services cleanly.
nimbus start --gateway Headless mode. Runs only the gateway container — skip the full stack for CI or remote MCP-only use.
nimbus start --fresh Wipe data volumes. Regenerates Postgres/Redis credentials and re-initializes the data directory.
nimbus stop Tear down. Safely terminates all container services and frees system ports.
nimbus upgrade Refresh container images. Pulls new gateway/dashboard images, runs the one-time Qdrant schema migration if needed, and compose up -d --build.
nimbus update [--gateway] Self-update the CLI binary itself. Downloads the platform archive, verifies SHA256 + minisign signature, atomic-replaces the running binary. --gateway also pulls + restarts the gateway container in the same run.
nimbus uninstall Uninstall. Removes the Nimbus CLI, containers, configuration, and ~/.nimbus/.
nimbus doctor Diagnose. Checks Docker, version skew, container health, update freshness, credential drift. Exit code: 0 = clean, 1 = any warning.
nimbus dashboard install Install the optional Agent Dashboard companion.
nimbus dashboard uninstall Remove the Dashboard container and service block.
nimbus dashboard status Show whether the Dashboard is enabled and its container state.
nimbus config <subcommand> Manage ~/.nimbus/.env (list, get, set, unset, append, prepend, remove).
nimbus mcp <subcommand> Manage ~/.nimbus/mcp.json (list, get, set, remove).
nimbus agent "<prompt>" [--model <id>] Send a prompt to the dashboard's nimbus_agent and stream the response. Defaults to openrouter/free.
nimbus activate <key> Activate a license/registration key.
nimbus env-init Populate CLI-owned secrets in ~/.nimbus/.env (idempotent, non-interactive). Does not prompt for OPENROUTER_API_KEY — that's user-owned.

See nimbus --help for the full reference, or the Download page for platform-specific install instructions.

Added in v1.0.5 — nimbus config {append, prepend, remove}

Three new subcommands for comma-separated values (e.g. OPENAI_API_KEYS, OPENROUTER_API_KEYS):

nimbus config append  OPENAI_API_KEYS sk-newkey    # add to the end (dedups by default)
nimbus config prepend OPENAI_API_KEYS sk-priority  # add to the front (dedups by default)
nimbus config remove  OPENAI_API_KEYS sk-oldkey    # drop one or many tokens (CSV)

They mirror the gateway's CSV parser exactly ([a, b, c] / a,b / a\nb\nc are all accepted), and remove deletes the key entirely when the list becomes empty (matches unset semantics). Pass --force to bypass dedup. Available in CLI v1.0.5 and later — earlier releases don't recognize these subcommands.


Ready to give your agent a real runtime?

Want a guided setup? Schedule a 1-on-1 onboarding session and we'll walk through your workspace.

Schedule Onboarding Session →