Private beta · context layer for production agents

Give your company
an AI-ready brain.

Repo connects the tools your team already uses, turns scattered knowledge into governed memory, and serves source-backed context to the AI agents running your work — through a single, audited API.

  • Slack, Drive, Notion & Gmail connectors live
  • Context, Ask & Search APIs
  • Scoped agent keys · audit trail
repo · memory coreprivate beta
company tools
agent context
01 · The problem

Agents can only act on context they can reach.

Your company's real institutional knowledge is fragmented across messages, documents, drives, and systems. No agent — yours or a vendor's — can see all of it. The result is fluent answers that quietly miss the truth.

73% of operational answers live outside the wiki.
11 tools the average team relies on to ship a single deal.
0 of them designed to feed an agent.
02 · How Repo works

Three layers between your company
and your agents.

Repo is not document search bolted onto a chat. It's an infrastructure layer: connectors in, governed memory in the middle, source-backed context out.

  1. 01

    Connect the tools you already use.

    Slack, Google Drive, Notion, and Gmail are live. Linear and Confluence are next. OAuth in, scopes you choose, channel allowlists you control. Nothing moves until you approve it.

    Slacklive Google Drivelive Notionlive Gmaillive Linearsoon Confluencesoon
  2. 02

    Ingest, structure, and govern.

    Repo chunks, embeds, and extracts the entities and relationships behind your content, then writes them onto a single memory canvas. Every node carries provider, channel or folder basis, freshness, and access policy — the receipt every retrieval will need later.

  3. 03

    Serve source-backed context to any agent.

    Call the Context API with a question and a scoped key. You get back the Context Contract: evidence with citations, freshness, allowed providers, exclusions, and limitations — ready to drop into your model prompt.

    const ctx = await fetch("https://api.userepo.com/v1/context", {
      method: "POST",
      headers: { "authorization": "Bearer $REPO_KEY", "content-type": "application/json" },
      body: JSON.stringify({
        query: "What did we decide about brand assets?",
        limit: 8
      })
    });
03 · The console

A single surface for your
company's memory.

Operators use the console to manage what's connected and what agents can see. Engineers read the same memory through the API. Same workspace, same audit trail.

🔒userepo.com / console
Sam · admin
sources

Connected systems

Refresh+ Add source
SourceScopeItemsFreshnessStatus
Slack workspace#brand-assets, #product, +42,18412s ago Healthy
Google Drive · brand@Brand/assets · 12 folders4182m ago Healthy
Google Drive · ops@Ops/playbooks · 6 folders3128m ago Re-sync to backfill
Notion · workspacenot connectedComing soon
Sources
Memory canvas
Ask
Activity
Developers
memory canvas live

Provider-namespaced clusters of channels, folders, and entities Repo derives from your sources. Click a node to filter, see the source items behind it, and trace evidence back to its origin.

ask source-backed

Operators ask in plain English. Every answer ships with the messages, files, and folders it was built from — and the freshness on each.

activity live

Every retrieval is audited with the actor, scope, providers returned, evidence, freshness, and limitations — no snippet text in the trail.

developers scoped keys

Each agent gets its own key, bound to allowed actions and providers. Rate-limited per key, per action. Rotate without redeploying.

04 · Trust by construction

Memory you can defend
to legal, security, and your board.

Every answer is a receipt. Every key is a contract. Every retrieval is in the ledger.

01

Citations on every claim

Context returned by Repo carries the exact messages, files, and folders it was built from. Nothing is generated. Only retrieved, ranked, and shaped.

evidence · default
02

Freshness, not staleness

Every memory node carries source, ingestion, and last-sync timestamps. The Context Contract reports per-result age so agents can refuse stale answers.

freshness · iso8601
03

Scoped agent keys

Each agent gets its own key, bound to allowed actions (search, context, ask, ingest, admin) and allowed providers. No key can ask outside its contract.

repo_… · least-privilege
04

Access mirrors your source

Repo preserves Google Drive sharing metadata, Slack channel basis, and provider scope, and reports what was excluded from any retrieval.

ACL · pass-through
05

Audit trail · metadata only

Every /v1/context call writes an audit event keyed by request id, with actor, scope, evidence ids, freshness, and limitations — never the snippet text.

audit_events · WORM
06

Context Contract v1

A versioned response envelope: actor, access, retrieval, evidence, citations, limitations. The receipt every agent answer can show legal, security, and the board.

contract.version · v1
05 · For developers

One API. Source-backed context,
every time.

Five endpoints cover what an agent needs: a question → a structured answer, a query → ranked memory, a scope → live context, plus a canvas read and the audit trail.

v1 · private beta
curl -X POST https://api.userepo.com/v1/context \
  -H "Authorization: Bearer $REPO_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "What did we decide about brand assets?",
    "limit": 8
  }'

# Response is a Context Contract v1 envelope:
{
  "contract":  { "name": "repo.context", "version": "v1", "requestId": "...",
                 "endpoint": "/v1/context" },
  "actor":     { "name": "support-agent", "type": "agent" },
  "access":    { "allowedActions": ["context"],
                 "allowedProviders": ["slack","google_drive"],
                 "providerFilterApplied": false,
                 "providersReturned": ["slack","google_drive"],
                 "exclusions": [] },
  "retrieval": { "strategy": "semantic_vector",
                 "requestedLimit": 8, "returnedSources": 3 },
  "evidence":  [ { "citationIndex": 1, "provider": "slack",
                   "url": "...", "freshness": { "sourceAgeHours": 1.2 } } ],
  "citations": [ ... ], "context": [ ... ], "limitations": []
}
AuthScoped API keys · Bearer
ConnectorsSlack · Drive · Notion · Gmail
ContractContext Contract v1
LimitsPer-key, per-action
Private beta · onboarding new teams

Make your company
readable by every agent you ship.

We're working closely with a small group of founders and operators turning their company into governed memory their agents can rely on. If that's you, we'd like to talk.

repo · the context layer · hi@userepo.com