Skip to main content
Copass Agent Router demo — switching providers, connecting integrations, streaming an agent turn. Copass is a platform for building agents grounded in your data. Every app you build follows the same four steps.

Execute your first agent call in minutes

Pick a use case on the left. Every call uses the Agent Router SDK. Flip a provider flag to swap Claude and Gemini.

The flow

1

Create a sandbox

A sandbox is your app’s tenancy — its vault, its keys, its quotas. Sandboxes are free; spin up as many as you want (one per app, per environment, per customer, per experiment).
copass setup   # bootstraps a sandbox + writes ids to .olane/refs.json
More in Multi-tenancy.
2

Add data sources

A data source is anything feeding content in — a folder of docs, an OAuth’d integration (GitHub, Slack, Notion, …), or a custom firehose you push to directly.
copass ingest ./docs                                            # one-shot ingest
await router.integrations.connect('github', { onConnectUrl: open });   // OAuth integration
Connections live in the sandbox forever and light up as tools for every agent run. More in Integrations.
3

Run agents in the sandbox

The Agent Router is the default runtime. Hand it a provider and a prompt; it streams back provider-neutral events. Swap providers on a per-call flag — memory, tools, and connections stay.
await router.run({
  provider: 'anthropic',
  model: 'claude-opus-4-7',
  system: 'You are a helpful agent.',
  message: 'Summarize my latest GitHub issues.',
  endUserId: 'u-123',
});
More in Agent Router.
4

Build with Copass

You have every primitive — pick the surface that fits.

Cookbooks

Copy-pasteable recipes.

Agent Router

Hosted runtime + OAuth.

SDK

Framework adapters + raw client.

CLI

Shell and scripting.

REST API

Any language.

MCP Server

Claude Code / Cursor.

Core primitives

ConceptWhat it is
SandboxYour app’s tenancy. Owns the vault prefix, keys, and quotas. Free to create.
Data sourceThe unit of attribution. Every ingested byte is tagged to one; integrations land as data sources too.
End userA human inside your sandbox, identified by endUserId. Isolates their connections and memory.
Context WindowThe agent’s conversation memory — an ephemeral data source in the sandbox, shared across providers.
Agent backendThe runtime (anthropic, google, …) that executes a turn. Swappable per call.
Deeper reading: Multi-tenancy, Secure Storage, Portable Context.

Get started in 60 seconds

npm install -g @copass/cli
copass login                       # email OTP
copass setup                       # creates a sandbox + writes ids to .olane/refs.json
copass apikey create --name my-app # olk_... key, save it
copass ingest ./docs               # first data source
copass question "what's new?"      # ask
Prefer to talk to an agent that does this for you? See Concierge — the per-user management agent that creates sandboxes, agents, sources, integrations, and triggers from natural language.

Next steps

  • Concierge — the default way to build with Copass. Skip the CLI / SDK dance; describe what you want.
  • Quickstart — the minimum viable ingest → retrieve loop, manually.
  • Cookbooks — multi-integration recipes (decision archaeology, cross-repo feature, standup killer, customer health radar, post-mortem draft).
  • Agent Router — run a hosted agent with OAuth’d integrations.
  • Multi-tenancy — how one sandbox holds many end users.
  • API Reference — the raw HTTP surface.