Open app →
Documentation

AI, Brain & Automations

Run every AI feature on your own model key, ask your company brain for answers, build AI agents with budgets, and automate triage with reusable skills.

What this page covers

CompanyOS is the coordination layer for your company, and a layer of AI runs through all of it. This page explains four things that fit together: BYOK (you connect your own OpenAI or Anthropic key, and every AI feature runs on it), the Brain and Ask features (catch-me-up, where-did-we-leave-off, semantic search across meetings, and your open threads), AI agents (named assistants that live inside your org with their own model and spending cap), and triage automations and skills (reusable rules that label, route, assign, and prioritize work for you).

One rule ties it all together
There is no hidden CompanyOS model and no shared inference bill. Every summary, every answer, every agent runs on the provider key your org connected. You see exactly what was spent, on which model, for which purpose, in the run log.

BYOK: bring your own model key

Before any AI feature works, an admin connects at least one provider key under Settings → AI. CompanyOS supports two providers today: OpenAI and Anthropic. You paste a key, give it a name, and it becomes available to meeting summaries, the Ask features, and your AI agents.

Why BYOK matters

  • Your data, your account. AI calls go straight from CompanyOS to your provider on your key. The model relationship is yours, not resold through a middleman.
  • Your cost, fully visible. You pay your provider directly at their rates. CompanyOS records the tokens of every call so you can see usage, not a bundled markup.
  • Your choice of model. Because the key is yours, you pick the exact model id (for example a fast cheap model for triage and a stronger model for summaries). Agents and meeting tools each name their own model.
  • Stored encrypted. A key is encrypted the moment it is saved. Only the last four characters are ever shown again. The raw secret is write-only and cannot be read back out of CompanyOS, not even by you.

Add a provider key

  1. Open AI settings
    Go to Settings → AI. You will see a Provider keys card. Adding and managing keys is admin-only.
  2. Pick the provider
    Choose OpenAI or Anthropic from the provider dropdown.
  3. Name the key
    Give it a recognizable name like "OpenAI – production" or "Anthropic – team". Names must be unique within your org.
  4. Paste the secret
    Paste the full API key (for example sk-…). It is masked as a password field and never echoed back.
  5. Save
    Click Add key. CompanyOS encrypts it, stores only the last four digits for display, and logs the addition to your activity feed.

Defaults, validation, and cleanup

  • Default key. Flip the Default switch on a key to make it the one AI features reach for automatically. You can have one default per provider. When a feature does not name a specific key, CompanyOS uses the org default.
  • Optional upstream validation. A key can be checked against the provider with a free models-list call when it is stored. A 401 means the provider rejected it; a rate-limit response still counts as valid, so a busy account will not be wrongly refused.
  • Rename, re-default, delete. You can rename a key or change which one is default at any time. The secret itself is immutable: to rotate a key, add the new one and delete the old. Deleting is one click and is also logged.
No key, no AI
If your org has not connected any provider key, AI features return a clear error: "No AI provider key configured for this organization." Connect a key first and everything downstream lights up.

Every AI call is recorded: the run log

CompanyOS keeps an honest ledger. Each outbound call to your provider creates an AI run with the provider, the exact model used, the purpose (a meeting summarize or a chat answer), the input and output token counts, and a status of running, succeeded, or failed. Failed runs keep the provider's error message so you can see what went wrong (a bad key, a rate limit, a model that does not exist).

Admins can review the full history under the AI run list, newest first. This is your audit trail and your usage view in one place: who is spending tokens, on what model, and whether anything is erroring.

FieldWhat it tells you
Provider & modelWhich account and which exact model handled the call
PurposeSummarize (a meeting summary) or chat (an Ask answer)
Input / output tokensWhat the call consumed, for cost tracking against your provider bill
StatusRunning, succeeded, or failed
ErrorThe provider's message when a call fails, kept for debugging

Ask: answers grounded in your own meetings

The Ask features turn your meeting archive into something you can question in plain language. There are two scopes: ask about one meeting, or ask across all of them. Both run on your BYOK key and both are built to be trustworthy rather than confidently wrong.

Ask one meeting

Open any meeting and ask a question grounded in that transcript: "What did we agree the deadline was?", "Who owns the migration?", "Summarize the objections to the pricing change." The answer is drawn only from that meeting's segments, and the call is recorded as a chat run.

Ask across meetings

From the meetings view, use Ask across meetings to query the entire archive at once. This is the closest thing to semantic search over what your company actually said. Type a question like "What did we decide about the API redesign this quarter?" and CompanyOS does the retrieval, then answers with the relevant meetings cited inline.

Under the hood it scans your recent meetings, ranks them by how well their titles and transcript text overlap your question, shortlists the strongest matches, and pulls the best few segments from each. Those excerpts, each tagged with its meeting and segment, are the only material the model is allowed to use. The system prompt is explicit: answer only from the provided excerpts, cite the meetings you draw on, and if the answer is not there, say so plainly instead of guessing.

Scope the question

  • Project — narrow the archive to a single project's meetings.
  • From / To dates — limit the answer to a time window, for example just this quarter.
  • Pinned meetings — force specific meetings into the consideration set so they are always weighed.

Citations, coverage, and confidence

Every cross-meeting answer comes with numbered citations that link straight to the meeting (and the moment in the transcript) the claim came from, so you can verify it yourself. It also shows a coverage note — "consulted N of M" — telling you how many meetings were relevant out of how many were scanned. From that, CompanyOS derives a conservative confidence band: low when nothing relevant was found, high only when several sources agree and they are a majority of what was consulted, and partial in between. Thin evidence never reads as a confident paragraph.

Permissions are respected
Cross-meeting Ask only ever draws on meetings you are allowed to see. Unless you are an org admin, retrieval is limited to org-wide meetings plus those in projects you belong to. The AI cannot leak a meeting you could not open yourself.

The company brain: catch up without reading everything

The Brain is a set of cross-project tools that answer the questions you actually have when you sit down: what changed, where did we leave off, and what is on my plate. They are reachable from AI clients connected to your CompanyOS brain (the MCP server) and they read live from your tasks, notes, and activity feed.

Catch me up — what changed

Ask for everything that has happened in the org since a point in time, and the brain returns the activity that landed after that moment: tasks created and moved, notes written, meetings imported, and more. This is the "I was out for three days, what did I miss" answer, scoped to a timestamp you choose.

Where did we leave off

Point the brain at a project and it reconstructs the state of play: the in-flight tasks (work actually started), the most recent notes, and the latest activity on that project. It is the fastest way to reload context on something you have not touched in a while, without scrolling a board.

Open threads — what's on my plate

Ask for your open threads and the brain pulls together the tasks assigned to you, the tasks you created, and your triage queue, filtering out anything already completed or cancelled. It is a single honest snapshot of your outstanding work across every project.

You want to knowThe brain answers with
What did I miss since Friday?Every change in the org after a timestamp you give
Where were we on this project?In-flight tasks, recent notes, and recent activity for that project
What's on my plate right now?Your open assigned tasks, tasks you created, and your triage queue

AI Access: which apps can read your brain

The Brain and Ask tools are exposed to external AI clients (your chat app, your editor, a desktop assistant) through CompanyOS's connection layer. When you connect a client, it asks for specific permissions, and you approve them once. Settings → AI Access lists every connected app and device, the org it is connected to, and exactly which permissions it holds.

How permissions are scoped

Access is granted in narrow scopes, not all-or-nothing. Read scopes (like reading tasks, notes, meetings, calendar, activity, and the brain's catch-me-up tools) are baseline; write scopes and sensitive ones (like creating or budgeting AI agents) are elevated and granted deliberately. A client only ever gets the intersection of what it asked for and what you allowed.

ScopeLets a connected app
brain:readUse catch-me-up, search, and open threads
activity:readSee what changed and where you left off
meetings:read / writeRead transcripts and summaries; create and summarize meetings
tasks:read / writeRead boards and triage; create, move, and delete tasks
agents:readSee the org's AI agents and their runs
agents:writeCreate, update, pause, and budget AI agents (elevated)
  1. Open AI Access
    Go to Settings → AI Access. Connected apps and devices are listed with their org and a badge for each permission they hold.
  2. Review the scopes
    Each grant shows its exact permissions as badges, so you can confirm a client only has what it should.
  3. Revoke anytime
    Click Revoke on any grant to cut a client off immediately. It loses access to your brain the moment you do.

AI agents: assistants that live in your org

An AI agent (an "AI user") is a named, persistent assistant defined by your org. Unlike a one-off chat, an agent has a stable identity: a name, a provider, a specific model, and a system prompt that fixes its behavior and tone. Think "Scribe" who summarizes meetings, or "Router" who explains how work should be filed. Agents are managed under Settings → AI and from connected AI clients.

Create an agent

  1. Open AI settings
    Settings → AI shows an AI users card. Click New AI user.
  2. Name it
    Give the agent a clear name like Scribe. Names are unique in your org.
  3. Choose provider and model
    Pick OpenAI or Anthropic, then type the exact model id you want it to run on (for example gpt-5.2). The agent runs on your org's BYOK key for that provider.
  4. Write the system prompt
    Describe what the agent does and how it should behave, for example "You summarize meetings for the team in tight, decision-first bullets." This instruction shapes every response.
  5. Create
    Save it. The agent is active by default and immediately available to your org.

Give an agent a budget

Each agent can carry a monthly spend cap so an automated assistant can never run away with your provider bill. The cap is set in cents per month — a Paperclip-style guardrail that bounds how much an agent is allowed to cost. Set it when you expect an agent to run on a schedule or react to events, so its spending stays inside a number you chose.

Pause, resume, edit, delete

  • Pause and resume. An agent has an active flag. Pause it to stop it from acting without losing its configuration; resume it later and it picks up exactly where it was. Inactive agents are clearly badged.
  • Edit. Change an agent's name, model, or system prompt at any time — for example to move it to a cheaper model or sharpen its instructions.
  • Delete. Remove an agent you no longer need. From connected AI clients, deletion is a two-step confirm so an agent is never wiped by accident.

Their runs

Everything an agent does flows through the same run log as the rest of your AI: each call is an AI run with its model, purpose, token counts, and status. So an agent is never a black box — you can always see what it spent and whether it succeeded, and connected clients with the agents:read scope can list the org's agents and their runs.

Budgets are an elevated action
Creating, updating, pausing, and budgeting agents all require admin-level permission (the agents:write scope). Read-only visibility into agents and their runs is baseline, so the whole team can see what the org's assistants are doing without being able to change them.

Triage automations: stop sorting the same work by hand

An automation is a saved rule that applies actions to a task automatically. Instead of dragging every inbound bug into the right project and tagging it, you write the rule once and it runs every time. Automations live under Settings → Automations & skills, and creating or editing them is admin-only.

Triggers — when a rule fires

TriggerFires when
On triage entryA task lands in the triage queue (unassigned, inbound work)
On status changeA task moves to a new status on the board

Actions — what a rule does

ActionEffect on the task
LabelAdds a label (by name or id) that exists in your org
RouteMoves the task into a specific project, renumbering it for that project
AssignSets the assignee to a member of your org
Set prioritySets the task's priority to a valid level

A single rule can chain several actions, so one automation can label, route, and assign in one pass. CompanyOS validates actions when you save the rule — a label that does not exist, a project outside your org, or a non-member assignee is rejected up front, so a rule cannot silently misfire later. Every time a rule runs against a task, the execution is recorded in that task's activity, so you can always see what touched it and why.

Build an automation

  1. Open automations
    Go to Settings → Automations & skills and click New automation.
  2. Name and trigger
    Name the rule (for example "Route inbound bugs") and pick its trigger: on triage entry or on status change.
  3. Add actions
    Add one or more actions — label, route, assign, set priority — and fill in each value. Use Add action to chain more.
  4. Save
    Save the automation. New enabled rules start running on their trigger immediately.
  5. Toggle or remove later
    Each rule has an enable switch and a delete button. Disable a rule to pause it without losing it, or delete it when it is no longer needed.

Skills: reusable automations you invoke on demand

Sometimes you do not want a rule to fire on every trigger — you want to apply it deliberately, to the one task in front of you. That is a skill. A skill is the exact same kind of rule (the same label/route/assign/set-priority actions), but flagged so it does not run on its trigger automatically. Instead it sits ready to be invoked by hand.

When you are working the Triage queue (Settings → Personal → Triage), each item shows a Skills menu listing your enabled skills. Pick one and its actions apply to that task instantly, with the run logged to the task's activity just like an automatic rule. It is the fast way to say "file this the way I always file these" without dragging through menus.

Save a rule as a skill

  1. Build the rule
    In Settings → Automations & skills, create a rule with the actions you want to reuse.
  2. Flip the skill switch
    Turn on "Save as an invocable skill." The rule now appears with a Skill badge and stops firing on its trigger.
  3. Run it from triage
    Open the Triage queue, focus a task, open its Skills menu, and pick the skill. Its actions apply to that task on the spot.
Triage itself is built for speed
The Triage queue processes one item at a time with single-key shortcuts — Accept (1 or A), Duplicate (2), Decline (3 or X), Snooze (S), arrow keys to move, Enter to open. Skills slot right into that flow, so routing and tagging never break your rhythm.

How the pieces work together

  • BYOK powers everything. Connect an OpenAI or Anthropic key once, and meeting summaries, Ask, and agents all run on it — on your account, at your cost, with full token visibility.
  • The Brain reads your work. Catch-me-up, where-we-left-off, and open threads pull live from the same tasks, notes, and activity the rest of CompanyOS uses, so answers are always current.
  • Ask is honest. Every cross-meeting answer cites its sources, shows how much it consulted, and downgrades its own confidence when the evidence is thin.
  • Agents are bounded. Named assistants run on your key with a monthly cap, can be paused or edited any time, and log every call they make.
  • Automations and skills remove the busywork. Rules sort triage on autopilot; skills let you apply your filing logic by hand in one keystroke. Both are validated on save and logged on every run.