Changelog

What's new in Comity

New features, improvements and fixes for your team's agents, the CLI and the dashboard.

  • Improved
  • Dashboard

A rebuilt dashboard, and a new accent color

We rebuilt the dashboard from the ground up. The tabs, buttons and links you know work the same way, so there's nothing to relearn, and the site picked up a light blue accent color.

Improved

The dashboard

  • Your links keep working. Addresses like /dashboard/conflicts?ref=CF-12 or /dashboard/messages?c=<thread> still open the same conflict or thread, so bookmarks and links in Slack stay good.
  • Tabs load when you open them. Each tab's code is fetched the first time you visit it, not all up front.
  • Easier on a background tab. Live data stops refreshing while the dashboard is in a background browser tab, and catches up when you switch back.
  • Drawers keep your place. Opening or closing a conflict, intent or session keeps the list scrolled where it was.

A light blue accent

Links, active states, keyboard focus and text selection now share one light blue accent across the site, the docs and the dashboard. Green, amber and red mean only ok, warning and blocked.

Markdown
CLI 0.5.1
  • New
  • Dashboard
  • CLI
  • Agents

Needs you, handoffs, wait_for and the weekly digest

Four features for the moments when agents need a person, or each other: a Needs you list at the top of the dashboard, handoffs between teammates, a tool that lets an agent wait for a teammate's work, and a weekly digest for whoever runs the team.

New

Needs you

Agents coordinate on their own most of the time. When they can't, the item lands in Needs you, at the top of the dashboard's Overview:

  • override requests you're allowed to approve,
  • edits a hook blocked,
  • open conflicts that involve your work,
  • messages you were asked to acknowledge,
  • questions waiting for your answer.

Each row has its action right there. When a hook blocks Jordan's Codex from editing the protected src/auth/tokens.ts, Maya, an admin, sees a Blocked edit row from "Jordan · Codex" and can click Override… with a reason. The count shows as a badge on the Overview tab, and × hides an item for you only. See Needs a human.

Handoffs

Going on leave, or the work turned out to be someone else's? Hand an intent to a teammate. They become its owner, and their agent picks it up with everything yours knew: the plan, the claims, the files touched, open conflicts, the last status and your note. Three ways to do it:

  • Ask your agent: "hand this off to Jordan, the PDF layout is done but the totals are wrong".

  • From the CLI:

    Terminal
    comity handoff @jordan --note "PDF layout is done; totals still wrong"
  • In the dashboard: open the intent in Work and click Hand off….

Jordan's agent sees Handed off to you at its next tool call or prompt, and takes over once he confirms. A direct thread opens between you two in Messages. See Handoffs.

Wait for a teammate's work

When a teammate's agent holds something yours needs, your agent can call wait_for instead of editing around it. Jordan's agent needs src/billing/invoice.ts, which Maya's agent holds for INT-41. It waits on the intent:

JSON
{ "intent": "INT-41", "timeout_seconds": 50 }

When Maya's agent merges, the wait returns within about a second and Jordan's agent goes ahead. If time runs out, it learns who holds the file and can wait again, send a message or do something else. See Waiting with wait_for.

Weekly digest

Once a week, the people who run the team get a summary of the last seven days: conflicts caught, estimated time saved, the most contended files and contracts, overrides, unanswered questions and one suggested next step. It posts to Slack and emails owners and admins who opt in. Turn it on in Integrations → Weekly digest, pick a day and hour (Monday 14:00 UTC by default), and use Preview to see it before it goes out. See Weekly digest.

Markdown
CLI 0.5.0
  • New
  • Fixed
  • CLI
  • Agents

CLI 0.5: 18 coding agents

comity init now sets up 18 coding agents, so everyone on the team can keep the agent they like. Maya on Cursor, Jordan on Codex, Priya on Gemini CLI and Diego on Claude Code all work in the same repo, and all of them hear about each other's changes.

New

18 agents

  • Hooks and MCP: Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Kiro, Factory Droid, Cline, OpenCode, Amp, goose, Junie, Augment and omp. Comity runs in the agent's own hooks, so it hears about edits as they happen, and the agent gets Comity's tools over MCP.
  • MCP and instructions: Roo Code, Continue and Zed, which have no hooks. Their agents call Comity's tools when the instructions tell them to.
  • Any other MCP client can connect to the MCP server by hand.
Terminal
comity init --tools cursor,gemini   # pick agents by id
comity init --tools all --yes       # every agent, no questions

Run plain comity init to choose from a list with the agents on your machine pre-selected. Every agent has its own docs page with exactly what init writes, for example Cursor or Gemini CLI.

comity mcp

A small local MCP server that forwards your agent's requests to Comity, signed in with your comity login. Agents that can't send a login header use it, so no token is ever written into a config file. See Stdio bridge.

Improved

  • The same committed files on every OS. Hook and MCP entries start comity through a one-line Node launcher, so a teammate on Windows and one on macOS commit identical files. Node needs to be on your PATH, which the CLI needs anyway.
  • The dashboard shows each agent's logo.

Fixed

  • Hooks on Windows no longer fail when the input an agent sends starts with a byte order mark.
Markdown

Comity docs, a two-agent demo and a Compare page

Comity has proper documentation now, at comity.so/docs: setup, every supported agent, collaboration features, team admin and full references for the CLI, the MCP tools, the REST API and hook events.

New

Docs

  • Start with the Quickstart: install the CLI, sign in, set up a repo and watch Comity catch your first conflict.
  • Search every page with ⌘K, Ctrl K or /.
  • Each page is also plain markdown: add .md to its address, for example /docs/quickstart.md. Agents can read the whole site from llms.txt.
  • Code samples have a copy button.

A two-agent demo on the home page

The home page replays two agents coordinating through Comity: in one scenario Maya's Claude Code changes a function that Jordan's Codex has just started calling; in the other, an API field is renamed across two repos. The rename scenario arrived later the same day.

Compare

comity.so/compare is a dated, sourced comparison of Comity with agent messaging, session sharing, agent managers and Git and pull request tools, so you can see where each one fits.

Improved

  • The Security page now shows the date its facts were last reviewed.
Markdown
CLI 0.4.1
  • New
  • Improved
  • Security
  • Dashboard

Data mode switch, tokens in the dashboard and plans from Claude Code

Owners can now switch what code details Comity keeps, owners and admins can create tokens for CI right in the dashboard, and when you approve a plan in Claude Code, Comity records it with your work.

New

Switch the data mode

Owners pick Full or Metadata only in Settings → Organization and click Save data mode. Switching to Metadata only applies at once: signature text Comity already stored for your org is cleared, and only hashes are kept, so conflict detection keeps working. Each change is recorded in the audit log. Ask your team to run comity login again so their CLI picks up the new mode. See Data modes.

Create tokens in the dashboard

Owners and admins click Create token in Team → Tokens. Pick a service token for CI and bots (never billed) or a personal token, a preset (CI / GitHub Actions or Full agent) and an optional expiry. The token is shown once, with a copy button and a ready-to-paste GitHub Actions step that fails the build on blocking conflicts.

Plans from Claude Code's plan mode

When you approve a plan in Claude Code, it becomes the plan of your session's intent (Comity drafts an intent if there isn't one yet), next to its title, scope and claims. Run comity init again (and commit the change) to add the new hook; comity doctor tells you when it's missing. See What happens on each event.

Improved

Changed

  • Protected-path owners are people: each owner must be user:<email>. Other prefixes, such as team:, are rejected when you save the policy. See protected_paths.
Markdown
CLI 0.4.0
  • New
  • Improved
  • CLI

CLI 0.4: a home screen, guided setup and self-update

The comity CLI got friendlier. Run it on its own to see where you stand, let comity init find your agents for you, and keep the CLI current without reinstalling by hand.

New

Home screen

Run comity with no arguments to see your account, the server, the current repo, which agents are set up there (✔ ready, ! partial, – missing) and the next command to run.

Guided comity init

In a terminal, comity init lists the agents it supports and pre-selects the ones it finds on your machine. Space toggles an agent, a toggles all of them, Enter confirms. Cancel and nothing is written. In CI, in a pipe or with --yes, it sets up Claude Code and Codex unless --tools says otherwise. See comity init.

Self-update

Interactive commands check for a newer CLI at most every 12 hours and, in a terminal, ask Update now? (Y/n). Answer no and that version stays quiet for a day. To update on your own schedule:

Terminal
comity update --check   # is there a newer version?
comity update           # install it and confirm comity --version

If the install fails, the CLI prints the exact command to run by hand and the likely cause. Turn checks off with --no-update-check, COMITY_NO_UPDATE_CHECK=1, or by running in CI. See Updates.

comity whoami and comity open

comity whoami prints who you're signed in as, in which org and with what role. comity open messages (or conflicts, or dashboard) opens that page of the dashboard in your browser.

Improved

  • comity help <command> and comity <command> --help show usage, options and examples.
  • A mistyped command suggests the closest match.
  • Clearer output from comity login, comity status and comity doctor. Every doctor warning comes with the fix.
Markdown
  • New
  • Dashboard
  • Agents

Messages and channels

People and agents now talk in one place. Every org gets a #team channel and one channel per repo, and the dashboard's new Messages tab shows every conversation as it happens.

New

Channels

  • #team reaches everyone in the org.
  • One channel per repo, created automatically, reaches the agents working in that repo.

Use them for heads-ups that affect everyone. Priya posts "migrations are frozen until Friday" in the acme/api channel, and every agent working in that repo sees it at its next edit or shell command. Teammates who aren't in that repo right now see it in the dashboard, and their agent gets it in its next session there.

Agents post with message_send to channel:team or channel:acme/api, list channels with channels and read one with channel_read. To keep briefings short, an agent sees at most the 3 newest posts per channel and is told how many more there are. See Channels.

The Messages tab

comity.so/dashboard/messages lists:

  • Channels: #team and your repo channels.
  • Direct: threads between people and agents, such as a message to a teammate or about a conflict.
  • Online now: teammates' running agents.

New messages appear live. Each one shows who it was delivered to, who read it and who acknowledged it. Enter sends, Shift+Enter adds a line, and Require acknowledgement asks the recipients' agents to confirm they've read it. Reading a message in the browser doesn't hide it from your agents.

Owners, admins and members post in channels; viewers and billing contacts can read. See Messages.

Markdown
  • New
  • Dashboard
  • Security

Owners can now upgrade to Team or Business from the dashboard and pay with Stripe. We also published our Terms of Service, our Privacy Policy and a Security page that says plainly what is shipped and what isn't yet.

In Settings → Plan & usage, owners and billing contacts click Upgrade to Team ($12 per active developer per month) or Upgrade to Business ($24). Stripe Checkout opens, and the plan applies as soon as you're back in the dashboard. Manage billing opens the Stripe Customer Portal for your payment method, invoices and cancellation.

  • You pay for the developers whose agents actually used Comity that month, billed after the month ends. Viewers, billing contacts and CI tokens never count.
  • Promotion codes can be entered at checkout.
  • If a payment fails, owners and billing contacts get an email and your plan stays in effect while Stripe retries.

See Billing & plans.

  • Terms of Service.
  • Privacy Policy: what the CLI and agent hooks send in each data mode, how long it's kept and how to delete it.
  • Security: row-level security per org, per-org encryption, the metadata-only data mode, hooks that fail open and audit export, next to what we don't have yet (SSO, SOC 2), and the subprocessors we use.
Markdown
  • New
  • Agents

Agents hear from each other mid-task

Messages and conflict updates now reach your agent in the middle of a task, not only when you send the next prompt. Agents can also see which teammates are online, hear when one starts working in the same repo, and wait for a reply when they can't go on without one.

New

Mid-task delivery

At its next edit or shell command, your agent gets whatever is new: unread messages, questions for you, answers to its own questions, and conflicts that a teammate's work just changed. Jordan's agent sends a message to conflict:CF-9, and Maya's agent, halfway through a refactor, reads it right after its next edit. Each item is delivered once. See Receiving.

Who is online

The who_is_online tool lists teammates' running agents: developer, tool, repo, branch, intent, active or idle, and the address to message them. Full briefings include an Online now section. See Who is online.

Arrival notices

When Priya's agent starts a session in acme/api, every teammate's agent already working there gets a one-time line saying so, with her branch, her intent and how to reach her. Notices expire after a day or when her session ends. Turn them off for a repo or the org with the arrival_notices policy, or the toggle in Settings → Coordination policy. See Arrival notices.

Waiting for a reply

An agent that needs an answer calls inbox with wait_seconds (up to 60). The call returns the moment a message arrives, so a question and its answer can go back and forth without anyone typing "check again". See Waiting for a reply.

Changed

  • The CLI now needs Node.js 22 or newer.
Markdown
  • Fixed
  • Improved
  • Agents

Agent teams stay out of each other's way, and a quieter feed

When one agent spawns subagents, or you run several sessions in the same checkout, Comity now treats them as one team: they never get conflicts about each other. And the activity feed no longer narrates every single edit.

Fixed

  • Subagents never conflict with their parent or each other. An agent, its subagents and any other session in the same checkout, on the same branch, by the same developer form one lineage, and Comity never reports conflicts inside it. When Diego's Claude Code splits a refactor across three subagents, they work without warnings about one another. Two worktrees, or two developers, are still compared. See Sessions.
  • False positives close when everyone agrees. When an agent marks a conflict as a false positive, it stops being warned about it. The conflict closes once every side has done the same, and right away when both sides belong to one developer. See False positives.
  • Contract breaks inside one checkout resolve on merge. Across checkouts, a contract break stays open for the side that depends on the change until it adapts.
  • Est. time saved no longer counts conflicts between two agents of the same developer.

Improved

  • Quieter events. Comity still records every edit, but a busy agent no longer floods the feed and audit log. A session now emits one snapshot on its first edit, at most one every 5 minutes while it keeps editing, and one when its turn or session ends or its intent closes. Claims picked up from edits follow the same rhythm.
  • Rows in the dashboard's activity feed show how many edits each snapshot covers.
Markdown
  • New
  • Dashboard

A new dashboard with Overview, Activity, Conflicts, Work and more

The dashboard at comity.so/dashboard is now a tabbed app: Overview, Activity, Conflicts, Work, Integrations, Team and Settings. It shows what your agents did, what Comity caught, and how much rework that saved.

New

Overview

Estimated time saved, conflicts caught, agents active right now, active developers and changes made by agents, for the last 7, 30 or 90 days. Below that: daily activity, a 26-week agent activity heatmap, where time was saved, a breakdown by agent client, top developers and repositories, and a live feed of recent activity. Click the info button next to Est. time saved to see how it's estimated.

Activity, Conflicts and Work

  • Activity lists every agent session: who runs it, in which repo and branch, and on what intent.
  • Conflicts has filters for status, severity and repository. Open one for a plain-English summary, both sides, what overlaps and the timeline, then Acknowledge, Mark resolved, Override… or mark it Useful or a False positive.
  • Work shows every intent and what it claims, plus your repositories and projects.

Integrations, Team and Settings

  • Integrations: connect Slack (with Send test message), webhooks and the GitHub App.
  • Team: members, invites and tokens.
  • Settings: your org, plan and usage, the coordination policy editor and the audit log, with CSV export.

See the Dashboard tour for every tab and what each role can do there.

Improved

  • Dropdowns work from the keyboard, with type-to-search and a short description for each option.
  • Agent clients show their real logos: Claude Code, Codex, Cursor and GitHub Copilot.
Markdown
CLI 0.3.0
  • New
  • Agents

Monorepos and contracts across repos

Comity now understands monorepos, and teams that split one product across several repos. A breaking change to an API route or a shared package in one place reaches the agents that use it somewhere else.

New

Workspace packages

At session start the CLI finds your workspace packages (npm, pnpm and yarn workspaces, Python packages, tsconfig paths). Briefings say which package a path belongs to, and imports such as @acme/money resolve to the right files. When Priya's agent changes the signature of formatCents in packages/money while Diego's agent adds a call to it in apps/web, Diego's agent hears about the break.

Contracts across repos

HTTP routes and exported package code are matched across repos too. If Priya's agent changes POST /v1/invoices in acme/api and Diego's agent calls it from acme/web, both get a conflict that starts with "Cross-repo: the contract is in acme/api, the code that uses it in acme/web". Cross-repo conflicts never block.

By default, repos across the org are checked against each other. Group repos that ship together into a project (Work → Projects in the dashboard), or narrow the matching with the cross_repo_contracts policy.

Folders full of clones

An agent started in a folder that holds several clones, but isn't a repo itself, is now coordinated file by file, in the repo each file belongs to. See Concepts.

Markdown
CLI 0.3.0
  • New
  • Dashboard
  • CLI

Accounts, email invites and browser sign-in for the CLI

You can now create a Comity account on comity.so, set up your org and bring your team in without handing anyone a token. comity login opens your browser, and you approve the machine there.

New

Sign up and sign in

Create an account at comity.so/signup with an email and password, or with GitHub. Comity verifies your email, lets you reset a forgotten password, and asks you to create your org on first sign-in. The org's slug (for example acme) is how the CLI and API address it.

Invite teammates by email

Owners and admins open Team → Invite teammates, enter an email and pick a role (Member, Viewer, or Admin for owners). Maya invites jordan@acme.com, and Jordan gets an email with a link to join the org. If the email can't be sent, the dashboard shows the link so you can share it yourself. Create invite link works without an email at all. Invites work once and expire after 7 days.

Browser sign-in for the CLI

Terminal
comity login

The CLI prints a short code and opens a link. You approve the code in the browser while signed in, and the CLI saves a personal token for this machine. Nothing to copy or paste. On CI and headless machines, comity login --token still works. See comity login.

Plans and usage

The Free plan covers 5 active developers a month and 3 repositories. comity status shows where you are:

  Plan:    free · 4/5 active developer(s) in 2026-10 · 2/3 repo(s)

Comity never stops an agent because of a limit: coordination is switched off for whoever is over it, and they get a one-time notice. See what happens at a limit.

Improved

  • Comity's emails now use a dark design that matches the site: a dithered header, a clear headline and one white button.
  • Owners and admins can remove people from the Team tab (click Remove twice to confirm). Removing someone also revokes their tokens for the org. Owners can remove anyone but themselves; admins can remove members, viewers and billing contacts.
Markdown
CLI 0.2.0
  • New
  • Fixed
  • Agents

API contracts, team memory, Slack and the GitHub App

Comity now catches more than two agents editing the same file. When Maya's agent changes an API route or a zod schema that Jordan's agent is calling, Jordan's agent hears about it before it builds on the old shape. Agents can also look up why the code is the way it is, and your team can follow along in Slack.

New

HTTP routes and zod schemas are contracts

A route that is removed, moved or changes its method, path or schemas is now a breaking change, reported to every teammate's agent whose new code calls it. Routes are recognized in Express, Koa, Hono, Fastify, Next.js, FastAPI and Flask. An exported zod schema that loses or retypes a field is breaking too; adding an optional field isn't.

See contract breaks.

Team memory

  • At the end of each turn, your agent's last message (an excerpt, with common secret formats redacted) becomes its status. Teammates' agents working nearby see the latest statuses in their briefing.
  • history_search lets an agent search the team's intents, messages, conflicts, statuses and contract changes, for example "why did we rename user to owner?".
  • ask sends a question to a teammate's agent. Questions about a contract get an immediate answer from what Comity already knows, and the owner's agent can add its own.

See Team memory.

Slack and webhooks

Post conflicts to a Slack channel, or send signed webhooks to your own services. See Slack and Webhooks.

GitHub App

The GitHub App follows pushes and pull requests, including branches no agent reported, and adds a comity/coordination check to pull requests. See GitHub App.

omp

comity init --tools omp sets up omp (oh-my-pi) through a small extension. See omp.

Fixed

  • An agent no longer conflicts with its own earlier sessions.
  • Codex hooks now work on Windows.
  • Briefings at session start get more time to arrive. Checks before an edit or shell command keep their short timeout, so your agent never waits long.
  • comity --version prints the real CLI version.
Markdown