Private beta becos is in private beta. To get access, join the waitlist — or .
How it works

Every agent session becomes team knowledge.

Shared with every developer on the team, and with the agents they use. Below: how to start, where the record comes from, and the five things it does to an answer.

Team members, commits and answers on this page are illustrative examples.

Getting started

Install, sign in, import your history

Three steps in whichever coding agent you use. You can install becos in more than one — they all feed the same team record.

  1. 1

    Install the plugin

    One plugin for Claude Code, Codex or opencode. Commands for each are below.

  2. 2

    Sign in

    Run the login command in your agent, sign in through the link, then paste back the code it shows. Do this on every computer you use.

  3. 3

    Import your history optional

    Backfill your past sessions so the record starts with months of decisions, not an empty page.

Claude Code

1 · Install — in your terminal
claude plugin marketplace add becos-ai/becos-plugins
claude plugin install codecollab@becos

Then restart Claude Code.

2 · Sign in — inside Claude Code
/codecollab:login

Open the link it prints and sign in with your team account. The page then shows a code — finish by running:

/codecollab:login <code>
3 · Import history (optional) — inside Claude Code
/codecollab:backfill

It lists the past sessions it found and uploads nothing until you say yes.

Update
claude plugin marketplace update becos
claude plugin update codecollab@becos

Codex

1 · Install — in your terminal
codex plugin marketplace add becos-ai/becos-plugins
codex plugin add codex-codecollab@becos

Restart Codex, run /hooks inside it to trust the plugin's hooks, then start a fresh task.

2 · Sign in — type this in a Codex task
log in

There's no slash command — the plugin recognises the phrase. Open the link it gives you and sign in with your team account, then paste the code the page shows back into the task.

3 · Import history (optional) — type this in a Codex task
backfill my past sessions

It lists the past sessions it found and uploads nothing until you say yes.

Update
codex plugin marketplace upgrade becos

Then run /hooks to re-trust the hooks and start a fresh task. A task opened before the upgrade keeps the old version.

opencode

1 · Install — in ~/.config/opencode/opencode.jsonc
{ "plugin": ["@becos-ai/oc-codecollab@0.25.0"] }

Pin an exact version, then fully quit (Cmd-Q) and relaunch opencode.

2 · Sign in — inside opencode
/codecollab-login

A dialog shows a sign-in link: press Enter to open it and sign in with your team account, then press Tab and paste the code the page shows. From a terminal instead: bunx @becos-ai/oc-codecollab login.

3 · Import history (optional) — inside opencode
/codecollab-backfill

It lists the past sessions it found and uploads nothing until you say yes.

Update

Change the pinned version to the latest release on npm, then fully quit and relaunch opencode. opencode caches each version, so bumping the pin is the update.

⇄

Your record follows you

The record lives with your team, not your laptop — sign in on another machine and the same history is there.

✓

Then work as usual

Sessions are captured in the background. Ask your agent something the team has already worked out.

Where the record comes from

Every session adds to it. Every teammate's agent draws on it.

Each agent session — whichever tool, whoever is driving — leaves the decisions, dead ends and conventions it produced in the same team record. Nobody files it; nobody gets interrupted to explain it later.

@rhea · Claude Code
chose Postgres for billing; closed the event-bus spike
@dan · Codex
made ledger retries idempotent after a double charge
@mara · Claude Code
moved token verification into the gateway for SSO
@kai · opencode
set per-tenant rate limits after the Q1 abuse spike
becos
team:becos
one record · tenant-isolated · answers cited
@sam · joined this week
asks “why is billing on Postgres?” — gets @rhea's reasoning, cited, without pinging anyone
any teammate's agent
picks up the retry convention @dan and @rhea already converged on

write path: every session  •  read path: every agent, scoped to your team

prompt from @sam (day 3) How should I handle a failed charge retry in the new endpoint?
Agent alone

Add a retry with exponential backoff — 3 attempts, then dead-letter. Re-run the charge each attempt.

generic; no idea the team already solved this
Agent + becos

Match the existing pattern: key ledger inserts on (invoice_id, attempt) so a replay is a no-op. @rhea's original loop double-charged an invoice in April; @dan replaced it with idempotent writes. You're picking up a convention two people already landed on — don't reinvent it.

commit 91d77af · @dan@dan’s session · 6 Mayauthor @rhea

@sam wasn't on the team in April. The record was.

01

Grounds its answers

Answers are built from what the record holds, citing the commits and messages behind them. When the record has nothing on a question, becos says so, instead of filling the gap with a guess that reads just as confidently.

prompt What datastore does the search service use?
Agent alone

Most likely Elasticsearch — it's the common choice for a search service of this shape.

pattern-matched, not looked up
Agent + becos

OpenSearch 2.x. The service moved off Elasticsearch in 2025 on licensing and cost. If the record held nothing on the search service, becos would say so — not guess.

commit 7be1f02feature search-migration
prompt Switch the job queue to Redis to keep the stack simple.
Agent alone

Sure — swaps the SQS client for a Redis list-backed queue and updates the workers.

walks into a known failure
Agent + becos

Flagging this: the team moved off Redis queues in 2025 after messages were lost on a failover. SQS is the standard now. Want to override it anyway?

commit 4c2e9a1@kai’s session · 14 Mar 2025
02

Brings back the decisions that apply

Ask for something a recorded decision already ruled out, and the answer brings that decision back — with its date and rationale. You can still override it; you just do it knowingly.

03

Stays on your team

Repository memory is scoped to your tenant. Results are filtered by tenant prefix before any result reaches the model — a cross-tenant hit is discarded, never shown.

Security model & controls mapping (SOC 2, EU AI Act, NIST SSDF) →

 query scope
scope        team:becos
filter       tenant prefix, before the model
cross-tenant match  → discarded
prompt What's the outbound request timeout?
Agent alone

30 seconds — per the comment in api/config.py.

quotes a value that changed
Agent + becos

8 seconds, since the June 2026 latency work. The 30s in the api/config.py comment is stale — the record marks it superseded on 2026‑06‑19.

commit e4a7d31superseded 2026-06-19
04

Knows what's current

A value that was replaced comes back marked as replaced, with the date and what replaced it. Entries still being written, or whose write failed, are labelled so the agent is told not to present them as settled.

05

Citations resolve

A citation isn't a footnote you take on faith. Ask becos to resolve it and it returns an exact excerpt of the stored commit or message — no summarisation, no model call in the path. You check the source, you don't trust the summary.

recalled “idempotent ledger retries, added 2026-05-06”
Resolve the citation

The recalled fact says retry handling was made idempotent. Pull the exact source it was built from.

A longer look

Two more, on ordinary questions

None of these need a special prompt. They're the questions that come up mid-task, where a confident wrong answer costs the most.

prompt Where do we verify the auth token?
Agent alone

Probably in an auth middleware — try middleware/auth.py or a decorator on the route handlers.

guessed location
Agent + becos

gateway/session.py — verification was pulled out of the app into the gateway during the SSO work so every service shares one path. Owned by @rhea.

commit b0c41d9feature sso
prompt Is there a feature flag for the new checkout I can delete?
Agent alone

Yes — new_checkout looks unused in the code, safe to remove along with its branches.

no view of rollout state
Agent + becos

Hold off. new_checkout is still at 40% in production. In @mara’s session on 22 Aug the full cut-over was held until the fraud-review sign-off, which is still open.

commit 5e1b07c@mara’s session · 22 Aug
Under the hood

What ships today, and how it's built

Everything below is live now.

recall
The recall tool returns dated, attributed answers from the record, and becos measures how much of the evidence it offered the answer actually cited.
citations
resolve_event returns an exact excerpt of a cited event's stored source — no summarisation, no model call.
the record
Facts distilled from each session (decisions, reasons, rejected approaches, discoveries), filed by repository, branch, file and author, with identity that survives renames. A newer decision is linked as replacing the older one instead of overwriting it, and each ledger entry records when the event happened and when it was recorded.
what's in it
Prompts, agent text replies, and a structured repo-event schema: commit id, branch, author, changed file paths, repositories touched. By default the Claude Code and opencode plugins also send commands, tool output and code edits, and the Codex plugin sends code blocks from the agent's replies, all secret-redacted and size-capped; thinking is off unless you turn it on. Each can be turned off.
lifecycle
Every ledger entry is keyed by event_id and labelled with its status, so pending or failed entries are marked as such.
isolation
Repository results are filtered by tenant prefix before any model sees them; a cross-tenant hit is discarded.
untrusted input
Captured content is treated as untrusted. The repository ingestion model runs with no tools, and its output schema has no slug, path or tool fields.
tools
Automatic capture from Claude Code, Codex and opencode. Cursor and ChatGPT can query the record through the becos connector.
Recently shipped

New capabilities

See the roadmap →

Shipped · 12 Sep 2026
↶

Decision history

Ask what the answer would have been six months ago. becos keeps a dated timeline per entity, so an answer can show how a decision changed over time — not just its latest value.

Shipped · 12 Sep 2026
☰

Layered recall

Search, then timeline, then resolve: broad, cheap triage first, and full cited evidence only for the facts that survive — so grounding stays fast over a long history.

Shipped · 5 Oct 2026
☷

Team activity

Ask what a developer, product or feature has seen lately and get the decisions and dead ends from the team's agent sessions, with author, repository and time on every line. For teams →

See it on your codebase

Connect one repo and ask your agent a question you'd normally have to interrupt someone for.