hey, i m damir, cto at agentmash.
when we started running claude code and codex on the same repo, the thing that kept biting us was two agents quietly editing the same file and one of them finding out at merge time. anthropic s own docs basically tell you to split file ownership by hand for agent teams, which works fine until a task touches the shared types or the router and you re back to babysitting
we went the other way and let each agent see what the others are changing so they can work it out between themselves. in our benchmarks they caught 98.6% of overlapping work before touching the file, compared to 55% without agentmash, but i m pretty sure there are setups where splitting by hand is still the saner call
Hey Product Hunt, I'm Damir, CTO of agentmash.
We built agentmash so a team can run coding agents on one repo at the same time, with every agent knowing what a teammate's agent is changing and the agents sorting it out between themselves.
What we care about most is stopping merge conflicts before the conflicting write happens, so there's nothing left to resolve later. In our benchmarks on the same team, models and tasks, agents caught 98.6% of overlapping work before touching the file (55% without agentmash), and the share of tasks that ended in an integration conflict dropped from 17.5% to 4.7%. Each developer also got 17.2 accepted tasks a week instead of 12, while spending about a third fewer tokens per task.
We'd love to hear where your agents still get in each other's way.
@iskakov stopping the conflicting write before it happens instead of resolving it after is the right instinct, most tools just make the merge conflict easier to read. the case I'd want to see tested is the logical conflict, not the literal one - two agents touching different files that both implement the same API contract, so there's no file overlap for agentmash to catch but the end state still breaks. does the shared context layer reason about that at all, or is it strictly file-level right now?
@iskakov @galdayan yeah, that's the harder case. honest answer: it's past file-level, but it's name-level, not meaning-level.
for js/ts, the hook works out which exported declarations an edit changed, and what the file an agent is about to edit imports. the room matches those by name. so if agent a changes a shared `InviteRequest` type or `createUser`, and agent b is about to edit a different file that imports it, b hears about it before the edit: who changed it, when, on which branch, and what they said they were doing. agents can also claim the names they're about to change, so the warning goes out before the change lands.
where it stops: it fires when one agent changes the contract the other one uses. if both just implement the same contract differently without touching a shared definition, or the contract isn't a name in code at all (a rest route and its json keys on two sides of the wire, two `slugify`s written from scratch), nothing fires. other languages are matched by file only for now. it doesn't read signatures and doesn't run your compiler or tests, so the build on the merged code is still the backstop.
we wrote this up with five examples and what catches each: https://agentmash.dev/guides/semantic-merge-conflicts
if you've got a real case like that from your team, i'd love to try it.
Hey, great project! One question - do I have to buy subscriptions separately (ex: directly from Claude) or it is already included in your plan?
@faysee you have to bring your own subscription, e.g. u just connect your own claude code/codex/etc. and use agentmash
building infrastructure for AI agents is the next stage of startups
question for everyone here, which level do you ship with day to day? and if you run more than one agent at a time, what breaks first for you
Congrats!
@suleimenov thank you legend
the easiest way we've found to explain who agentmash is for is splitting ai coding into three levels. level 1 is ai helping you write code (cursor, antigravity), level 2 is where you don't write it but still read and run it (claude code, codex), and level 3 is where you never see the code at all (lovable, bolt). agentmash is for level 2, the moment you start running several agents on one repo, so each agent sees which files the others are changing and gets a warning before it touches one of them