one app for your team’s coding agents.
run claude code, codex, gemini cli, cursor and the rest side by side, each on your own login. see what your team’s agents are doing, and every agent knows who’s changing what.
- Claude Code on mainnow
- Stream the csv export
- –Where does the dash…now
- –Make the hive load old…1h
- –Update checks every…3h
- –Review damir’s board…5h
- –Status words in the si…22h
- –Try a regex for branch…1d
- –Title bar on windows1d
- –Flaky inbox test on wi…2d
- –Release notes for 0.313d
- –Landing page copy4d
- where does the csv export build its rows?
- read src/export.ts
exportCsvbuilds every row into one array and joins it at the end, so a big list sits in memory whole.- Done
- the csv export holds every row in memory: stream it instead
- Thinking
- read src/export.ts
- edit src/export.ts+3 -2
- write src/export/csv.ts+3 -0
exportCsvstreams now, a row at a time, through a newtoCsvinsrc/export/csv.ts.- Done
- AAlimyouIdle · Claude Code · stream the csv exportClaude Code · stream the csv export
- DIDamir I.Gemini CLI waits for them · add csv export to contacts
- TTimurOnline, no agent runningCodex · make the csv import keep empty rows
- MMalikaIdle · Claude Code · fix the flaky login test
- AAruzhanLast seen 2 h ago
- SsamLast seen 3 d ago
- K@kairatInvited yesterdayCancel
request early access
agentmash is in a closed beta while we finish it. we’re letting teams in a few at a time: tell us who you are and we’ll write when there’s room.
every agent, in one app.
claude code, codex, gemini cli, cursor, copilot, opencode, goose and antigravity, each in its own terminal or chat, on your own login. the app never touches their keys, and can install the ones you don’t have yet.
Coding agents you can run here, each on its own account.
- Running 2Claude Codeby Anthropic Claude Max planStart
- Needs sign-in Ready Running 1Cursorby Cursor Your Cursor accountSign inSign inStart
- Not installedGitHub Copilotby GitHubInstall
- Not installedopencodeby opencodeInstall
- Not installedCodexby OpenAIInstall
your team, live.
who’s online and what each one’s agent is doing, down the window’s right side. click a teammate for their week: sessions, files, commits and claims. add someone by their github name.
a team is a repository on agentmash. request early access
- AAlim youClaude Code · stream the csv export
- DIDamir I.Gemini CLI waits for them · add csv export to contacts +1
- TTimurIdleCodex · make the csv import keep empty rows
- AAruzhanLast seen 20 min agoOnline, no agent running
- MMalikaLast seen 1 h ago
- SsamLast seen 3 d ago
- review the pricing page copy Claude Code · main
- add csv export to contacts? Gemini CLI · running a command · feature/csv-export
- Edited src/contacts/list.tsx (keeps empty rows) · agentmash-dev/agentmash18:55
- Started a Claude Code session on “review the pricing page copy” · agentmash-dev/agentmash18:48
- Claimed src/export.ts, src/contacts/ for “csv export” · agentmash-dev/lobby18:33
- Edited src/export.ts (streams rows) · agentmash-dev/agentmash18:20
ask a teammate’s agent.
send their agent a prompt, as a draft they send themselves or queued until it’s idle. nothing runs until they approve it, on their machine and their login, and they answer every tool request themselves.
Lands as a draft. They read it and send it themselves.
can you look at why the csv import drops empty rows on your branch? read only, just tell me what you find.
Goes to “Review the pricing page copy”. Read only.
- can you look at why the csv import drops empty rows on your branch? read only, just tell me what you find.
- Thinking
- read src/contacts/import.ts
- read test/import.test.ts
parseCsvskips a row when every cell in it is empty: the check on line 42 ofsrc/contacts/import.ts. nothing changed, as you asked.- Done
every agent knows who’s changing what.
agentmash tells each of your agents which files your teammates’ agents are changing, and warns it before it edits one (antigravity as each turn starts). the team chat and the sessions board show where two agents met.
- ACTIVE COLLISION
- STALE READ
- PARALLEL EDIT
- RECENT EDIT
- NEARBY EDIT
- add a csv export button to the contacts list
- read src/contacts/list.tsx
- edit src/contacts/list.tsx+3 -0
- agentmash told it, before the edit[AgentMash: PARALLEL EDIT] damir has uncommitted changes to src/contacts/list.tsx on damir/csv-import, last written 2 min ago, while working on 'make the csv import keep empty rows'. They are only on damir's machine, so nothing you can fetch shows them yet. Keep this edit additive, and say in your reply that damir has work in progress in this file, so the two are seen before either lands.
- Thinking
- write src/contacts/export-button.tsx+24 -0
- damir has work in progress in
src/contacts/list.tsx, so I kept this additive: the button is a file of its own, and the list only gains its import and one line. nothing of his is renamed or moved. - Done
- Bbob Morning. CI is green again after the Node 24 bump.
- DIDamir I. @damir The demo is at 15:00: nobody edits investor-demo.md after 14:30.
- Your Claude Code and damir’s Gemini CLI both changed
src/contacts/list.tsx. Your Claude Code was told before its edit.
conversations that keep.
your conversations stay in the sidebar, by day or by folder, and come back after a restart. open one and claude code, or a chat agent that can reload it, goes on where it stopped.
the app keeps itself current too: each update downloads in the background and goes in when you click restart.
- –Landing page copy3h
- –Fix the pricing table on mobile5h
- –Merge duplicate contacts1dnow
- –Quote CSV fields1d
- –Why the deals board loads slowly1d
- –Rotate the staging certificates2d
- –Import contacts from a csv2d
Your conversations with Claude Code on this machine, the last 30 days.
Find a conversation- merge duplicate contacts by email
- edit src/contacts/merge.ts+18 -4
- contacts with the same email merge into one now, keeping the newest name and every note.
- Done
- now do the same for companies, by their domain
- read src/contacts/merge.ts
- write src/companies/merge.ts+16 -0
- companies with the same domain merge the same way now, through the
mergeBythatsrc/contacts/merge.tsalready had. - Done