Your data stays where you already keep it.

Open source, running in your infrastructure, under credentials you hold. Or managed by us, in a tenant of your own.

How we think about security.

  • Ownership

    The runtime runs in your infrastructure, under credentials you hold. We keep no copy of your data.

  • Control

    You decide what the agent can reach, per workspace and per person. Set it, change it, revoke it.

  • Visibility

    Every run is recorded — inputs, tool calls, outputs and cost — attributed to a person.

  • Openness

    Apache 2.0. Your reviewer reads the code that handles your data, not our description of it.

Self-hosted or managed. Yours either way.

Compared Self-hosted Apache 2.0, your infrastructure Managed We run it, in an isolated tenant
Runs on Your cluster, VM or laptopA namespace we operate
Your data Never reaches usYours, held to run the service
Credentials Never sent to usPer workspace, never pooled
Model provider Any, including your ownAny, including your own
Encryption at rest Your keysAWS-managed keys
Upgrades When you chooseWe handle it

Every run leaves a record.

Open standards, exported to infrastructure you already run — or, with nothing configured, to nowhere at all.

  • Traces OpenTelemetry over OTLP, to your collector.
  • Logs JSON to stdout, stamped with workspace and trace id.
  • Metrics Rate, errors and duration, on your Prometheus.
  • Ledger Tokens and cost per call, attributed to a person.
conv_8f3a Workspace · Engineering
  • 09:14:02 run.start sarah@acme.co
  • 09:14:03 tool.call crm.search
  • 09:14:05 llm.response 1,204 tokens
  • 09:14:07 tool.call files.write
  • 09:14:09 skill.loaded renewal-review
  • 09:14:11 run.done $0.031

The other workspace isn't blocked. It has no name.

Most isolation is a filter: query everything, then strip what the caller should not see. One wrong predicate and it leaks. Here a session is handed the tool namespace of exactly one workspace, so the identifier that would address a second one does not exist.

Which is why offboarding is not a cleanup job. Credentials sit with their owner and are never pooled, and membership is checked per run.

  • Admin and member roles, against a real identity
  • Personal connections stay outside any workspace
  • Row-level scoping in the database, not the application
A workspace member list showing two people with admin and member roles.

Ready for your security review.

  • SOC 2 Type II

    Ready

    Controls mapped to the Trust Services Criteria and operating. Audit not yet run.

  • GDPR

    On request

    Data processing agreement on request.

  • Vulnerability disclosure

    Published

    security@nimblebrain.ai. Acknowledged in 48 hours, advisory when the fix ships.

Questions a security review asks

Where does the runtime actually execute?
Wherever you put it — Kubernetes, a VM, or a laptop. Self-hosted, that is inside your own boundary and we hold no copy of your data. The managed tier runs the same open-source runtime in a namespace dedicated to you.
Are you SOC 2 certified?
Not yet. The controls a SOC 2 examines are in place and operating, which is what "ready" means here — no audit has been performed. If your procurement requires a report, tell us in the first conversation and we will scope the work.
What happens when someone is offboarded?
Their reach ends on the next run. Credentials sit with the person or workspace that owns them and are never pooled, and membership is re-checked per run rather than captured at setup.
Can we audit what the agent did?
Yes. Every run writes an append-only record of its inputs, tool calls and outputs, attributed to a person and a workspace. Every priced model call writes a ledger line with tokens and cost. Traces go to your OpenTelemetry collector and metrics to your Prometheus.
Who are your subprocessors?
Self-hosted, ours are not in the path: you choose the model provider and the connectors. Managed, the runtime runs on our AWS infrastructure and reaches whichever model provider you configure. The current list goes to your reviewer on request.
Is data encrypted?
Managed, in transit over TLS and at rest on encrypted volumes under AWS-managed keys. Self-hosted, encryption is your storage and transport layer under your own keys.
Can we review the source?
The runtime is Apache 2.0. You can read it, fork it, and keep running the version you hold — the licence cannot be withdrawn from you later.
Which model provider does our data go to?
Whichever one you configure, including one running on your own hardware. The model is a setting rather than a dependency.
How do we report a vulnerability?
security@nimblebrain.ai. We acknowledge within 48 hours, work the fix on a severity-based timeline, follow coordinated disclosure, and publish an advisory on the public repository.

Run it inside your own boundary, or have us stand it up.

Read the docs