# Haystack — lightning-fast QA before you ship

Haystack replays your customers' real journeys against every change, each on its own copy of prod, and tells you which ones broke.

## How it works

1. **Blast radius.** Haystack reads the diff and works out every case the change can affect. The cases are your customers' real journeys, learned from your production traffic, narrowed to the ones the change can reach — not scenarios somebody invented for a test. In one worked example a permissions refactor touching two files reaches 3 services and 27 code paths, producing 14 cases worth running, mapped in about five seconds. You do not write the cases.
2. **Fork your infrastructure.** Haystack snapshots your services and the data behind them, from Postgres and Redis to queues and object storage, then forks that snapshot once per case. Fourteen copies of prod, ready in 26 seconds. These are real environments, not mocks, and nothing that happens inside one reaches prod.
3. **Run every case at once.** Each environment is seeded into a different state: a workspace over its seat limit, an invite nobody accepted, a member whose role just changed. Every environment runs twice, with and without your change, so any difference is caused by the change.
4. **See what actually broke.** Failures come with the screen before and after, the network calls that changed, and the events that stopped firing. The environment stays live, so you can open it.
5. **Your agent runs the loop.** The failing case goes back to your coding agent in a form it can act on. It fixes, re-runs, and keeps going until nothing fails.

## Why it catches what tests miss

The failures that reach production are usually quiet. In the worked example a frontend stopped sending a member's role and the access API treated a missing role as editor, so anyone with a pending invite could edit and delete anything in the workspace. Nothing threw, every request returned 200, and the test suite passed.

## Using it

The CLI is haystack verify. See [haystack verify](/docs) for the command and its flags, [Working with runs](/docs/runs) for reading results, and [Agents](/docs/agents) for the MCP server and the agent loop.

## Getting started

Haystack is early and taking on a small number of teams. Sign up for early access at https://haystack.sh/ or book a demo.
