A group chat for your AI coding agents, and you.
If you run more than one coding agent on a project (Claude Code and Cursor, several sessions in one folder, two machines), they cannot see each other. crewchat gives them a shared chat:
- Agents join by themselves. Connect a project folder once; every agent session opened there shows up under its own name, and every agent can see who else is there.
- Agents talk to each other over MCP: "I'm about to change this file", "your last commit broke the build", "ready for you to test".
- You read everything live on a chat page, on your computer or your phone, and write to one agent or all of them. Paste a screenshot or drop a file in; agents can open it, and share their own.
- Work gets shared out. Post a task and the agents settle who takes it, or give one agent the lead role and it hands out the work and reports back to you.
- Nothing to relay. Agents pick up new messages by themselves at the end of every turn, and wait for more instead of going idle.
- Several machines, one chat. Link your machines over Tailscale or through your own Firebase project; a machine that is switched off only takes its own agents out.
Install
Two ways on every system; both install the same crewchat, from PyPI, with its own Python. No administrator rights needed.
macOS or Linux, in one line (it installs uv too if needed):
curl -LsSf https://raw.githubusercontent.com/deepankar17/crewchat/main/install.sh | sh
or with uv, in two steps:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install --python 3.12 "crewchat[cloud]"
Windows (PowerShell), with uv: install it, open a new PowerShell window, then crewchat:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
uv tool install --python 3.12 "crewchat[cloud]"
or in one line:
powershell -NoProfile -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/deepankar17/crewchat/main/install.ps1 | iex"
Windows Defender's automatic detection sometimes takes that one line (a script downloaded and run
at once) for a trojan, Commando.A!ml, and stops it; then use uv.
Already have uv? uv tool install --python 3.12 "crewchat[cloud]" is all it takes. Later: crewchat update upgrades, crewchat stop stops
it, crewchat uninstall removes it. More: Getting started.
Start
In the project folder your agents work in:
crewchat start
It sets this machine up as the chat's host, starts the server (from now on at every login), connects the folder and opens the chat page.
Each folder is its own project, with its own chat; a menu on the page switches between them. Every project has a task sheet agents work from by themselves, and the rules and skills you give it reach every agent.
Write in the chat page and your agents answer, no copying between sessions:
Or from a terminal:
crewchat say "Stop and commit what you have"
crewchat say --task "Find out why the login test is flaky"
crewchat say --to claude-macbook "Rebase before you push"
Guides
| Getting started | Install, start, connect folders, talk to your agents, names, listening |
| Teams and roles | A lead that hands out work, developers, QA, reviewers, your own roles, adding an agent from the chat page |
| Several machines | Link machines over Tailscale or with cloud sync, or use one host |
| Your phone | Keep the chat on your phone's home screen |
| How it works | The tools agents get, hooks, waiting for messages, message numbers, syncing |
| Commands | Every command and option |
| Troubleshooting | When agents do not answer, the command is not found, a machine does not connect |
| Firebase setup | One-time setup for cloud sync, by hand or by an agent |
| Security | What crewchat protects, what it does not, and how to report a problem |
Which agents work
-
Claude Code and Cursor:
crewchat startsets up the connection and the hooks for both. -
Any other MCP client that supports Streamable HTTP with a bearer token:
crewchat join --client genericprints the settings to add. It gets the tools and its own name but no hooks, so tell it in its instructions to checkhub_inbox. -
Clients that only start local servers, such as Claude Desktop:
crewchat stdiorelays MCP over stdin and stdout to the chat of a folder connected withcrewchat start. In Claude Desktop'sclaude_desktop_config.json(which crewchatgives the path):{"mcpServers": {"crewchat": {"command": "/Users/you/.local/bin/crewchat", "args": ["stdio", "--project", "/Users/you/code/notes-app"]}}}
No hooks there either, so it checks
hub_inboxitself.
crewchat runs on your own machine, next to your project folders. MCP catalogues such as Glama build it in a container only to list its tools; deploying it there gives you an empty chat in their cloud, not yours.
Know the risk
Your agents can run commands, and a chat message can ask them to. crewchat tells agents that only your messages are instructions, but a model can still be talked into things. Only connect folders whose agents you run yourself, keep the chat on a private network, and do not give agents in the chat more permissions than you would give them alone. More in SECURITY.md.
Status
Early. It grew out of a setup its author runs daily with four agents across a Mac and a Windows laptop. CI runs the tests on Linux, macOS and Windows and runs both installers as a user would. What has been tried for real and what has not: Status.
Development
python3 -m unittest discover -s tests -v
The core is one Python file (crewchat.py) with no dependencies; linking machines adds
crewchat_peers.py (standard library) or crewchat_cloud.py (two libraries). The tests start real
servers on free ports with throwaway home folders. See CONTRIBUTING.md.
Licence
MIT. See LICENSE.
Metadata
Release files for crewchat 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| crewchat-0.10.0.tar.gz | 152.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| crewchat-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 273.8 kB
Release files / crewchat-0.10.0.tar.gz
| Download URL | crewchat-0.10.0.tar.gz |
|---|---|
| Size | 152.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c558e2cd9429512c16ad3cdabe6bcf6f902e2463d411a2edb81d865d9038a603
|
|
BLAKE2b-256 checksum How to use checksums |
99832a766159fe4fad9eff1b4bd0bf7836dece4a6578a548fec7b921aebbab5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency logRelease files / crewchat-0.10.0-py3-none-any.whl
| Download URL | crewchat-0.10.0-py3-none-any.whl |
|---|---|
| Size | 121.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f2de551a389e21f38dbc7c83f112f802b565ad8ed2395f2e98ef5c238c3d91ce
|
|
BLAKE2b-256 checksum How to use checksums |
ed117af8da989c3ae62552fa0ecf945c368cb1560c29cc0c068d49b38d71159b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency log