# PeerHarness > Your team votes on how its AI coding agents behave. You correct your coding agent ("no, use pnpm, not npm"), and PeerHarness turns the correction into a one-sentence rule. Keep it for your own agent, or propose it to your team: once a majority approves, every member's agent follows it. There is no server. What it is, in facts: - An open-source command-line tool, written in Rust, under MIT or Apache-2.0 at your option. Source: https://github.com/aryehlev/PeerHarness - For Claude Code on macOS, and it connects Codex, opencode, Pi, Google Antigravity, DeepSeek Harness, Gemini CLI, Qwen Code, GitHub Copilot CLI, Cursor, Amp, Factory's Droid, Crush, Kilo and goose too. On Linux it works from a terminal, without the confirmation windows. Windows is not supported. - Early and not audited. Its limits are listed in full, and it has had no security audit. - It is used by talking to the agent: "From now on, use pnpm here, not npm.", "Keep it.", "Create a PeerHarness team called acme.", "Propose the pnpm rule to acme.", "Vote approve on it." - Agents suggest, people decide. The agent can note a rule and open a window on the person's screen that shows the exact text. It cannot answer the window: keeping a rule, sharing one, voting, inviting and joining take the person's click. That is not a sandbox. - A rule is one instruction-only SKILL.md file, an Agent Skill. PeerHarness never executes a rule. - The vote: one person, one vote, however many devices they have. A rule passes with a majority of everyone entitled to vote. Nobody has a veto, a rejection is recorded with its reason, and an approval cannot be withdrawn. Admitting or removing a member is voted too. - A rule that passed is installed for every member's agent. Any member can opt out of a single rule on their own machine. - No server and nothing to sign up for. Each person runs their own node with their own keys, and every node checks every signature and counts every vote for itself. - Compared with a CLAUDE.md file in git: if the rule is about one repository and the team already reviews pull requests, commit the file. PeerHarness is for rules that follow people across repositories, for groups with no shared repository, and for members who want to see the exact text they vote on and to opt out of a rule alone. To set it up, paste the prompt from the README into the coding agent (Claude Code or any of the others it connects). The agent installs the release binary, and the person runs `~/.local/bin/peerharness setup` once in their own terminal. ## Documents - [README](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/README.md): what it does, how to set it up and how to use it in a coding agent - [PeerHarness from a terminal](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/docs/terminal.md): every step as a command, and how to take it out again - [Limits](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/docs/limits.md): what it does not do, or not yet - [Security model](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/docs/security-model.md): threats, guarantees and limits - [How each part was checked](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/docs/checked.md) - [Changelog](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/CHANGELOG.md): what each version added ## Optional - [Architecture](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/docs/architecture.md): the internal contract every crate follows - [Protocol](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/docs/protocol-v0.md): the wire format, for a second implementation - [Decisions](https://raw.githubusercontent.com/aryehlev/PeerHarness/main/docs/decisions.md): decisions and why they were made - [The page for people](https://aryehlev.github.io/PeerHarness/)