“Customer wants the SOC2 letter by Friday — Sam promised them the updated DPA on a call.”
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
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.
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.
- 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 - 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.
- 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 }) });
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.
Connected systems
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.
Operators ask in plain English. Every answer ships with the messages, files, and folders it was built from — and the freshness on each.
Every retrieval is audited with the actor, scope, providers returned, evidence, freshness, and limitations — no snippet text in the trail.
Each agent gets its own key, bound to allowed actions and providers. Rate-limited per key, per action. Rotate without redeploying.
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.
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.
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.
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.
Access mirrors your source
Repo preserves Google Drive sharing metadata, Slack channel basis, and provider scope, and reports what was excluded from any retrieval.
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.
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.
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.
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": []
}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