privacy policy.
last updated
we keep what agentmash needs to tell your agents what your teammates’ agents are doing, and little else. your code stays on your machine unless your room turns diffs on. no ads, no third-party trackers, nothing sold.
who we are
agentmash is run by Alim Dauletbek, based in Astana, Kazakhstan (“we”, “us”). we decide what personal data agentmash collects and why, so we’re responsible for it. ask us anything about it at hello@agentmash.dev.
what we collect
from your agents
once agentmash is set up for a repository, its hooks report what your agent does there to the repository’s room:
- your name in the room: your GitHub login when your machine is signed in (
npx agentmash login); otherwiseAGENTMASH_DEVif you set it, else the email in your git config (git config user.email), else your computer’s user name.AGENTMASH_DEVcomes before your login too, and the room keeps the name you set unless it’s someone else’s there. in a room whose repository GitHub says you can push to, you still count as your login, once. - file paths inside the repository, the branch, and the shape of each change: its line counts and the names of the functions and types it touches.
- an id for the checkout each edit was made in, so a teammate’s agent is told whether your change is already in its working tree. it’s a keyed hash of your computer’s name and the folder, made under a key that never leaves your machine, so neither can be read back out of it.
- before an edit, the names the file imports and exports, up to 60, so a teammate changing one of them reaches you. these are checked and not kept.
- the first 500 characters of each prompt you give your agent.
AGENTMASH_HINTS=0keeps your prompts on your machine. - session ids and how each session ended, a random id for each prompt, which agent made each edit and with which of its tools (Codex’s
apply_patch, say), which of the crew’s agents made it if one did, and the time. - the names of files you already had uncommitted when a session starts, or changed outside the agent.
AGENTMASH_WORKTREE=0keeps those names home. - claims your agent makes (the task it states, the files and names it expects to change, and how long the claim stands) and how a collision was settled: the outcome, a link to the pull request if there is one, and the sentence your agent gives on what was kept from each side.
- in strict mode (
AGENTMASH_STRICT=1, or a repository whose config turns it on), the one-sentence reason your agent gives for editing into a teammate’s change goes with that edit, beside their name, so they and the room see why.AGENTMASH_HINTS=0doesn’t keep it home;AGENTMASH_STRICT=0turns strict mode off on your machine. - from the git post-commit client: each commit’s file paths, its line counts, its short commit id and its subject line.
AGENTMASH_HINTS=0keeps the subject line home as it does a prompt.
your files’ contents stay on your machine. the one exception is a room that turns diffs on: then the text an edit changes, at most 4,000 characters a side, goes to the live view. it is held in memory and never written to our database, and AGENTMASH_DIFFS=0 keeps yours home whatever the room says.
the hooks run inside your coding agent. npx agentmash login puts them in each coding agent’s own settings in your home folder, never in a repository: Claude Code’s (~/.claude/settings.json, which Devin reads too), Codex’s (~/.codex), Cursor’s (~/.cursor), GitHub Copilot’s (~/.copilot, and VS Code’s user settings), Amp’s (~/.config/amp), Antigravity’s (~/.gemini/config, only when you ask for it), Cline’s (~/.cline, and ~/Documents/Cline/Hooks), Crush’s (~/.config/crush), Factory Droid’s (~/.factory), Gemini CLI’s (~/.gemini/settings.json), goose’s (~/.agents/plugins/agentmash), Junie’s (~/.junie), Kilo Code’s (~/.config/kilo), Kiro’s (~/.kiro), OpenCode’s (~/.config/opencode), OpenHands’s (~/.openhands), Qwen Code’s (~/.qwen), Continue’s (~/.continue) and Zed’s (~/.config/zed). for every one of them but Claude Code and Devin it puts our MCP server there too, and for Continue and Zed, which run no hooks, only that; Claude Code gets the MCP server only from a repository set up with npx agentmash init. they report only in a repository that is set up. to find out whether one is, they send us its GitHub name (owner/name) with your sign-in, from any GitHub repository you work in; we answer and don’t keep it. npx agentmash logout takes them all out again.
your account
- when you sign in with GitHub: your GitHub login, and the list of repositories you can push to, as GitHub answers at sign-in.
- signing in with GitHub asks it for access to your repositories (its
reposcope). a sign-in from the terminal uses the token GitHub gives us once, to list what you can push to, and drops it. after a sign-in on the website, the token is held in memory for at most two hours and never written to our database. we use it only when you ask: to list your repositories and connect the one you pick, to read agentmash’s own files in a repository (.claude/settings.json,.mcp.json,.claude/agentmash/config.jsonand the crew’s files under.claude/), and to open the pull request that installs agentmash or adds a team of the crew. - the tokens your machine and your browser hold, kept only as one-way hashes, with when they were last used. a token for one room (from
npx agentmash login --room) also keeps the name your machine would report without a sign-in:AGENTMASH_DEV, else your git email, else your computer’s user name. anyone who can open that room can see it. - when a machine signed in as you, or one of your API tokens, reports to a room of a repository you can push to under another name (from hooks older than the ones that send your login:
AGENTMASH_DEV, your git email or your computer’s user name), the room keeps that name beside your login while your machines keep reporting under it, so what you report under it from a machine that isn’t signed in counts as you, once, and shows as your login. a name someone else’s signed-in machine reports under too is neither of yours, and a name every machine of its kind shares (likerootorvscode) is nobody’s. we don’t show it anywhere. - for each personal API token (made on /keys or with
npx agentmash token create): the name you give it (by defaultweborcliand the day it was made, never your computer’s name), how and when it was made, whether it can write, the repositories it is held to, and when it runs out or was revoked. - the repositories you connected and the rooms they open.
- for the GitHub account a room’s plan belongs to, each developer counted in each billing period: the name they were counted under, and when their agent first reported in it. names sent with only a room’s key are counted for that room alone.
- for each room, a record of what was done to it (made, a key rotated, a setting changed, data deleted) and by whom, and of who opened or read it and when.
the launch list
before agentmash opened, you could leave your name and email to hear when it did. if you did, we keep a first name, an email address, which form you used and when, and whether our welcome email reached you. no IP address, no browser details. if you ask to come off the list, we keep a one-way hash of your address, so you can’t be added to it again.
payments
Polar (Polar Software, Inc.), our reseller, sells paid plans as the merchant of record, and Stripe processes the card payments for Polar. Polar and Stripe collect your billing details, and we never see your full card number. from Polar we get what we need to run your subscription: your name, email, company, country, plan, number of developers and whether you’ve paid. our server keeps, for each subscription, the GitHub account it’s for, the plan, whether it’s billed monthly or yearly, the number of developers paid for, its status, when its period ends, and Polar’s ids for it and for you, as Polar sends them. a company that buys from us directly, by contract and invoice, gives us its billing details itself.
the website
no third-party analytics, no ads, no tracking pixels and no third-party scripts. the fonts come from our own server. your IP address reaches our server with every request, as it reaches any website: we use it in memory to stop abuse, such as too many sign-ups from one place, and we don’t store it.
our server counts the pages it serves, by the day: which page, the site that linked to it (just its name, like news.ycombinator.com) and the link’s utm_ tags, and clicks on the team plan’s subscribe button the same way. it sets no cookie for this, leaves bots out, and keeps no IP address, no browser details and nothing that tells one visitor from another. we keep the counts 13 months.
if you come in by a link with utm_ tags, the tab keeps the first ones in its own storage until you close it and adds them to the sign-in with GitHub. we keep the day of your first sign-in beside your login, and those tags with it if that first sign-in carried them.
why we use it
each use, with the legal basis the law asks us to name for it:
- to run the service you asked for: rooms, advisories, claims, the live view and its history. legal basis: our contract with you.
- to keep it secure and stop abuse. legal basis: our legitimate interest in a service that’s safe to use.
- to email the launch list, because you asked us to: its welcome, and the news that agentmash had opened. you can leave the list at any time. legal basis: your consent.
- to bill a paid plan, through Polar or by invoice. legal basis: our contract with you.
- to keep the tax and billing records the law asks for. legal basis: a legal obligation.
- to answer you when you write to us. legal basis: our legitimate interest in helping you, or our contract with you when it’s about your plan.
- to see which pages and links bring people to agentmash and how far they get: the page counts by the day, and the day and the tags kept with a first sign-in. legal basis: our legitimate interest in knowing what works.
we don’t sell personal data, show ads, build profiles, or use your data to train AI models.
how long we keep it
| what | how long |
|---|---|
| what your agents report: prompts, file paths, changes, how collisions were settled | 7 days by default. a room’s admin can set its own, from 1 day up to what the room’s plan keeps: 7 days on free, 90 on team, 365 on enterprise. |
| the developers counted for a plan | 400 days, so a yearly plan’s period is covered. |
| a claim, once released or expired | one day. |
| another name a machine signed in as you reported under | as long as what your agents report, from the last time it did. it goes with the room’s history when an admin deletes that. |
| live diffs, in a room that turns them on | in memory only, the last 60 for each room, gone when the room turns diffs off. |
| a room’s record of what was done to it | 30 days. |
| the server’s request log: each request’s method, the kind of address it asked for but never the address itself, so no key, file or name, its status and how long it took | 7 days, at Fly.io. |
| a deleted room | its content goes at once. its record of what was done to it stays 30 days, then nothing of it is left. |
| a browser sign-in | 30 days, or until you sign out. |
| your GitHub token | in memory, two hours at most. |
| your login, your repository list and your token hashes | while you use agentmash. signing in again replaces the list. ask us, and we delete them. |
| the day of your first sign-in, and the utm_ tags it carried | the tags, 13 months. the day, while you use agentmash. ask us, and we delete it. |
| the page and checkout counts, by the day | 13 months. |
| the launch list | until you ask to come off it. |
| billing records | as long as tax law requires, by Polar and by us. |
| your email to us | as long as we need it to help you. |
what we hold in memory only is never written to our database. while the server sleeps between requests, Fly.io keeps a snapshot of its memory to wake it from, and that snapshot holds it too.
a room’s admin can also delete its prompts, its history or the whole room at any time, with npx agentmash purge and npx agentmash delete.
who processes it
a few companies do part of the work for us, each only what its job needs:
- Fly.io
- hosts the server and its database, in Frankfurt, Germany, and keeps the server’s request log for 7 days.
- Resend
- sends our email, such as the launch list’s welcome, so it sees your first name and email address.
- hosts our email inbox, hello@agentmash.dev, so it holds what you write to us.
- GitHub
- signs you in and tells us your login and the repositories you can push to. when you ask, it also gives us agentmash’s own files in a repository and opens the pull request that installs agentmash or a team. we also ask it, without signing in, whether each repository connected to a room is public, at most once a day, and
npx agentmash initasks it the same of your repository before it commits a room’s key. GitHub’s own privacy statement covers what it keeps. - Polar
- Polar Software, Inc. sells paid plans as our reseller and merchant of record, and handles checkout, tax, receipts and refunds under its own privacy policy.
- Stripe
- processes card payments for Polar, so it sees your card details, which we never do, under its own privacy policy.
beyond them, we share personal data only with our professional advisers, such as lawyers and accountants, when they need it to advise us, and with authorities when the law requires it.
everyone who can open a room sees what your agent reports there: that’s what the room is for. a repository connected on the website opens its room to anyone GitHub says can push to it. a room committed to the repository with npx agentmash init opens to anyone who holds its key, with no sign-in, and init commits that key to the repository. so init won’t commit it to a repository GitHub says is public, unless you tell it to with --allow-public-key: then anyone who can read the repository can read the room. a key already in a public repository connected to its room opens it only for someone signed in who can push there. a room never connected to a repository opens to its key alone, wherever that key is.
what the room tells an agent, a teammate’s name, files and prompt among it, goes into that agent’s context like anything else it reads, and so to the company that runs the agent’s model, under that agent’s own terms. each developer picks their own agent; we don’t pick it for them.
the companies above are based in the United States, so your data may be handled outside your country.
cookies
agentmash sets only the cookies signing in needs, and none that track you:
agentmash_sess: keeps you signed in on the website, 30 days.agentmash_state,agentmash_cli,agentmash_confirmandagentmash_next: protect a sign-in while it happens and say where it goes back to, 10 minutes each.
your rights
you can ask us to show you the personal data we hold about you, give you a copy, correct it, delete it, or stop using it, and you can take back a consent you gave, such as to the launch list. write to hello@agentmash.dev from the email or GitHub account it is about. we answer within 30 days, and sooner where the law asks for it.
if you’re in Kazakhstan, the Law of the Republic of Kazakhstan “On Personal Data and Their Protection” gives you these rights. if you’re in the European Union, the United Kingdom or another place with rules like the GDPR, you have them too, and you can complain to your data protection authority. we’d like the chance to fix it first.
security
the tokens your machines and browsers hold are stored only as one-way hashes, and so is a room’s key once it has been rotated. a room’s first key is also its id in our database, so rotate it (npx agentmash rotate) if you want no working key stored. everything travels over HTTPS, and live diffs never reach our database. what leaves your machine and the security notes say more.
children
agentmash is a tool for software teams and isn’t meant for anyone under 16. if we learn we hold a child’s personal data, we delete it.
changes to this policy
when this policy changes, the new version goes on this page with a new date. for a change that matters, we’ll also tell you by email, where we have your address.
contact
Alim Dauletbek, Astana, Kazakhstan. email hello@agentmash.dev.