Counterworld worlds

Choose a world or define your own.

Start from a maintained SaaS shape, generate a draft from internal APIs, or define both the software and its buyers, customers, admins, employees or operators through the SDK.

Request early access

01 / Catalog worlds

Start from maintained SaaS shapes.

Each shape includes the software model, valid mutations, history generation and relevant user roles: buyers and store admins in commerce, sales reps in CRM, or customers and support agents in support.

Interfaces
Compatible APIs and agent tools
Behavior
Rules, hooks, event streams and side effects
Population
Buyers, admins, sales reps, customers or support agents
WORLD CATALOG MAINTAINED SHAPES
COMMERCEShopifyCatalog · orders · inventory · returns
CRMSalesforceAccounts · opportunities · tasks · activity
CRMHubSpotContacts · pipelines · tickets · campaigns
PAYMENTSStripeCustomers · invoices · payments · disputes
SUPPORTZendeskUsers · tickets · SLAs · macros
WORKSlackUsers · channels · messages · workflows

02 / Internal systems

Generate a world from internal APIs.

Import OpenAPI documents, service schemas and selected traces to infer the software model. Then define the customers, employees, admins, approvers or operators whose behavior keeps that internal system active.

Input
OpenAPI, schemas, example payloads and selected traces
Inferred
Entities, relations, mutations, hooks and event streams
Confirmed
Rules plus customer, admin and operator behavior

Inference creates a draft. A world is certified only after its lifecycle rules and actor behavior are confirmed.

03 / Build from scratch

Define every system and user in code.

Author entities, relations and mutations alongside the buyers, customers, admins, employees, approvers or operators who use them when no existing shape matches.

Systems
State, interfaces, mutations, hooks and event streams
Users
Goals, constraints and decision policies
Checks
Invariants and outcome evaluators
support-world.ts
export default defineWorld({
  systems: [orders, billing, support],
  users: [buyer, supportAgent, billingAdmin, fulfillmentOperator],
  history: generateHistory({ years: 3 }),
  clock: worldClock(),
  invariants: [
    balancedLedger(),
    noDuplicateRefunds(),
  ],
})

Common runtime

Every world has the same runtime contract.

Creation paths differ. What agents receive does not.

01

Interfaces

APIs, SDKs and agent tools.

02

Persistent state

Linked entities and relations.

03

Valid mutations

Rules, hooks, event streams and side effects.

04

History

Coherent records and prior events.

05

Simulated users

Buyers, customers, admins, employees and operators grounded in shared state.

06

Time + evaluation

Clock, checkpoints and invariants.

Create a world

Choose the shortest valid starting path.

Start with a catalog shape when it fits. Import internal interfaces when it does not. Use the SDK for complete control.

01 Select the starting shape 02 Configure users and history 03 Validate rules and run
Request early access