- Spin a real Slack clone and confirm it’s healthy.
- Seed it to a known starting state.
- Inspect its database to score what happened.
- Reset it for the next trial, then destroy it.
Prerequisites
Docker installed and running (
docker ps should work).Node.js
>= 18.Optional:
ANTHROPIC_API_KEY in your environment, for AI seeding.The CLI is free to install from npm; clone images are pulled for free on first
spin. The rest of this page uses the global
asym command — prefix any of these
with npx @asymmetric-ai/cli instead if you’d rather not install.The one-command path
If you just want the magic, run:acme-corp fixture, and
prints a ready-to-run curl plus the asym query to read the clone’s state:
--template <name> to quickstart a different one — see
all templates.)
1. Spin a clone
slack-a1b2 is the clone id — you’ll pass it to every other command. The
short suffix is random, so yours will differ. The bot/user tokens are the
fastest way to point an agent at the clone; reprint them later with
asym tokens slack-a1b2. See Connect your agent.
2. Confirm it’s running
3. Seed a known starting state
For a reproducible run, load a deterministic fixture:ANTHROPIC_API_KEY):
4. Point your agent at it
Your agent talks to the clone exactly like real Slack, over the endpoint from step 1. A quick liveness check:5. Inspect what happened
Read the database directly to score the run. Queries are read-only by default, so you can’t corrupt the clone:db prints the exact psql command to run:
6. Reset for the next trial
reset drops the database, re-runs migrations, and re-applies the last seed —
back to an identical starting state, no rebuild:
7. Tear it down
More templates
Slack is one of six templates that ship today. List them all:| Template | What it clones |
|---|---|
slack | Slack — RPC Web API, the {ok} envelope, MCP server |
stripe | Stripe — payments, customers, invoices |
notion | Notion — pages, blocks, databases |
hubspot | HubSpot — CRM contacts, deals, companies |
github | GitHub — repos, issues, pull requests |
linear | Linear — issues, projects, cycles |
asym spin <template> works the same for every one. Browse the
Templates section for each one’s API shape and fidelity.
Where to go next
Connect your agent
Wire your agent to the clone over its HTTP API or MCP, with a worked example.
Seeding
Fixtures vs AI seeding, and when to use each.
How it works
What spin actually does under the hood.
Environments
Compose several clones into one named environment.