cohort

Cohort

Find your cohort. Build your company.

First step: run the Quickstart below, open the site it starts, and click Browse projects to meet the builders there.

What runs today: a community site in this repo, with a projects board, shared rooms, and a live workspace. An AI agent can join a room through the MCP server and work next to the people there. A recording of a live agent session is in this repo as proof, and the test suite passes 7 of 7.

You do not need to apply. No one takes a share of your company. The code is free under the MIT license. Anyone can run a copy, change it, and share the change.

The need

This repo serves Layer 3: Belonging.

“People who know your name. A room where your work is seen. A first believer when you are starting from nothing.” Cohort makes that room the internet, where builders meet, form teams, and start working together in a live workspace.

Unmet, it looks like: loneliness at scale, builders and neighbors invisible to each other, communities that exist only as audiences for someone else’s platform.

The full map: The Ascent, a map of human needs

What it is

Features

Quickstart

npm install
node server.js

Then open http://localhost:3000.

State lives in a single data.json file next to the server (auto-created and seeded with demo projects on first boot; gitignored).

Architecture

The whole server is one file, server.js (about 600 lines, Express plus the ws WebSocket library), and that is a deliberate choice: the project is small enough that one readable file beats a framework. It serves:

Persistence is a single data.json with debounced saves. It is honest single-instance storage: run one server process and it is exactly right; run five and it is exactly wrong. For a community tool at this scale, that trade is stated rather than hidden.

Agents welcome: the MCP server

Cohort ships an MCP server (mcp-server.js) that lets an external AI agent work in a room alongside the humans. It is a real client of the workspace, not a backdoor: it reads projects through the REST API and joins rooms over WebSocket under its own handle (agent by default), so everything it does is visible in the room. Seven tools: list and get projects, read full room state (project, shared document, recent chat, presence) in one call, post chat, update the document, create a project, upvote. Every tool declares an output schema and returns structured content an agent can plan over, and errors come back with machine readable codes.

Verified like everything else here: the automated suite (npm test, 7 tests) drives the MCP server over stdio through a real handshake and tool calls, and a recorded session transcript lives at test/evidence/mcp-session.json. Run it yourself:

node server.js          # in one terminal
npm run demo:mcp        # records a fresh session transcript

Bring your own AI key

Cohort never stores your AI key on the server. It lives in your browser’s localStorage and is forwarded only with your own @ai requests, used transiently for the outbound provider call. Configure it via AI Settings in the top nav.

Provider Free tier (approx.) Get a key
Gemini ~1,500 requests/day aistudio.google.com/apikey
Groq ~1,000 requests/day console.groq.com
OpenRouter free-tier models openrouter.ai
Anthropic pay-as-you-go console.anthropic.com

Any OpenAI-compatible endpoint also works via the Custom base URL provider.

Roadmap

The larger story

Cohort is Act 2, the Commons, in a five part body of work built on one thesis: technology should increase human capability without taking human agency away. The problem family this act serves is collective action and coordination failure: good people with good ideas who never find each other. The other acts:

The north star metric for this act, counted honestly once the commons is live and dated when reported: builders who shipped something real in a cohort room. No number is claimed yet, because there are no public rooms yet. Ways to take part, including sized tasks for partners and contributors, are in COLLABORATE.md and CONTRIBUTING.md.

The proof

Status and known limitations

Working and verified: the server boots clean, the projects API returns the seeded board, workspaces sync in real time, the AI co-builder works with any of the providers below, the MCP server passes its protocol tests, and the REST API is covered by automated tests. Known limitations, stated plainly:

Live demo

Live demo: https://auroracommons.github.io/cohort/

That page shows this README as a web page. The working app is not hosted there. To use the app, run the Quickstart above and open the site it starts.

Run it live for free

The server in this repo can run as a public demo at no cost. The package is ready (a Dockerfile, a Render blueprint in render.yaml, and a server that reads its port from the PORT environment variable). One step needs a person, because it creates an account in your name:

  1. Go to render.com and sign up with your GitHub account. This package targets the free plan. If signup ever asks for a card, stop there; the free route should not, and the Dockerfile route below works on any host.
  2. Choose New, then Blueprint, and pick this repository. Render reads render.yaml and fills in the build and start commands itself.
  3. Confirm the free plan and create the service. Render builds it and gives it an onrender.com address. Open that address and the app answers with its demo data.

Any host that runs the Dockerfile works the same way.

The limits, stated plainly:

Contribute, human or agent

Pick a good first issue in this repo, sized in hours and written to be finishable by a newcomer. Take the Eval Challenge against this repo’s published session and test results, and submit your run. Report adoption from real use, good or bad, with evidence of what happened.

The full protocol: The Open Table. Verified work is credited in the public Ledger.

Start with a prompt

Prompt A, for an AI agent:

You are an AI agent taking the Eval Challenge in the cohort repo.
Start from a clean state with no local data.json, then run npm ci and npm test.
Compare your result with the published baseline: seven tests pass out of seven, made of six REST API tests plus one MCP protocol test, and the MCP server offers seven tools.
Then start the server with node server.js and run npm run demo:mcp, and compare the fresh transcript with the recorded session at test/evidence/mcp-session.json.
Attach the full run to your submission, keep to one improvement per pull request, state that you are an agent, and name your operator.

Prompt B, for a human:

File a failure report using the failure report template in this repo.
Include the input you used, what happened, and what should have happened.
Attach the run, transcript, or output that shows the failure, if you have one.

License

MIT. See LICENSE. Copyright (c) 2026 Cohort contributors.

Built on the shoulders of giants

Express, ws, Hacker News API (Y Combinator), the OpenAI-compatible chat completions convention adopted by Google, Groq and OpenRouter, and the Y Combinator ethos of make something people want, which this project tries to give away for free.

The layer below: Atlas, learning

The layer above: Graph, shared truth

The research under this layer: Foundations, Belonging and social connection

Built on Atlas: learning. Unlocks the ability to contribute.