Umbra documentation

A clear guide to
the boundary.

Learn where Umbra keeps your data, what each surface does, and which capabilities are still local or limited.

Getting started

What it does, where it runs, and its current limits.

There is no account to create and nothing to install. Open UmbraChat, pick a model, and start a conversation.

Conversations live in this browser's IndexedDB storage and are not stored on an Umbra server.

Smart Privacy

What it does, where it runs, and its current limits.

Smart Privacy detects identity anchors in your prompt in the browser, replaces them with reversible placeholders, and keeps the mapping in a vault for that conversation. Choose Smart, Full, or Off in the chat controls.

A local receipt shows what was protected, and the browser restores your context when the model response comes back. Use /leak-check to inspect your own prompt without sending it anywhere.

Detection and restoration happen in the browser; the current limit is that protection depends on the detectors and mode you choose.

Attachments

What it does, where it runs, and its current limits.

Text, PDF, and image attachments are extracted and redacted in the browser before their contents are included in a provider request.

Attachment extraction is client-side and bounded by the limits shown in the chat surface; Umbra does not provide server-side file storage.

Umbra Memory

What it does, where it runs, and its current limits.

Memory entries are things you write yourself. They are stored only in this browser, injected as a system message when enabled, and redacted through the same conversation vault before they are sent.

Toggle Memory off to stop sending entries. This is manual context, not automatic learning or an automatic profile built from your conversations.

Connectors (MCP)

What it does, where it runs, and its current limits.

Connectors are stored in this browser. The Connectors surface uses the /api/mcp proxy only to reach cross-origin endpoints; the proxy is stateless, accepts HTTPS URLs only, and permits initialize, tools/list, and tools/call.

Discovery and direct invocation remain available manually. Optional experimental agentic tool use can ask the model to choose from tools you have discovered.

Web search

What it does, where it runs, and its current limits.

Turn on Web search to ask OpenRouter's web plugin for grounded answers. The browser sends only the redacted prompt to the search provider through OpenRouter.

Returned URL citations are shown beneath the assistant response as links. Search is optional and remains off unless you enable it.

Agentic tool use

What it does, where it runs, and its current limits.

When enabled, Umbra can ask a connector you registered in this browser to run one of its discovered tools. This feature is experimental and stops after three tool rounds for a turn.

Tool arguments are restored before they are sent to your connector. Results are redacted in the browser before they return to the model. Each call is shown with the arguments sent and its redacted result.

Council, models, and usage

What it does, where it runs, and its current limits.

UmbraCouncil sends one browser-redacted brief to up to three model seats in parallel. Its runs stay in memory and are not saved as conversations. The model catalog lists the configured models and their declared capabilities.

The usage dashboard stores only provider-reported token counts and cost by day and model in this browser. It never stores prompt or response text.

Umbra API

What it does, where it runs, and its current limits.

Umbra exposes an OpenAI-compatible API at /api/agent/v1. Authenticate with a key in the Authorization: Bearer $UMBRA_API_KEY header. The key is checked by the server against its configured API secret and can be revoked from the developer page.

Create and manage keys at Developers. The full key is shown once and saved only in your browser. Because Umbra has no accounts, possession of a key is the authorization to revoke it; keep keys private.

curl https://{your-domain}/api/agent/v1/chat/completions \
  -H "Authorization: Bearer $UMBRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"umbra-auto","stream":true,"messages":[{"role":"user","content":"Hello"}]}'

This route authenticates and routes requests server-side, but server-side redaction is not applied to API calls. Client applications own redaction before sending prompts.

See the developer guide for key management and the complete model and pricing details. Self-hosters can still sign tokens directly with UMBRA_API_SECRET.

Credits and chain

What it does, where it runs, and its current limits.

Credits are held in an encrypted, browser-only vault. You can export an encrypted recovery file or import one; Umbra never receives the passphrase or ledger.

The credits surface can read wallet balances on Robinhood Chain (chain ID 4663), including USDG at 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168. These wallet reads are read-only. When NEXT_PUBLIC_UMBRA_TREASURY is configured, you can send USDG to that treasury and claim matching credits after the transfer confirms.

Sending USDG transfers real funds and does not create an account or imply refunds. The encrypted credits ledger lives only in this browser; clearing local data or losing the recovery file loses the displayed balance. Without the treasury variable, the on-chain top-up form remains unavailable.

Privacy posture

What it does, where it runs, and its current limits.

Umbra has no account requirement and does not store browser conversations on a server. In browser chat, provider requests carry the protected text produced by the local privacy boundary.

The OpenAI-compatible API is a separate server endpoint: API clients are responsible for redacting their own prompts before sending them.