Skip to main content

ish study run

Run a study (creates participants for the latest iteration and dispatches simulations) Usage: ish study run [id] [options]

Arguments

id
Study ID (alias or UUID) - positional alias for —study (optional)

Options

--workspace <id>
string
Workspace ID
--study <id>
string
Study ID
--iteration <id>
string
Iteration to run (defaults to latest on the study)
--person <ids>
string
Person IDs/aliases (comma-separated or repeatable) Default: [].
--sample <N>
string
Randomly sample N people from the matching pool (max 20 per dispatch - split into multiple slices for larger cohorts)
--all
boolean
Use every AI person matching the filters (workspace-wide if no filters set) (capped at 20 per dispatch - split into multiple slices for larger cohorts)
--search <text>
string
Substring match against person name
--bio <text>
string
Substring match against person bio
--occupation <text>
string
Substring match against person occupation (repeatable) Default: [].
--gender <gender>
string
Filter by gender (female, male, nonbinary; repeatable, OR semantics) Default: [].
--country <code>
string
Filter by 2-letter country code (repeatable) Default: [].
--min-age <n>
string
Minimum age (inclusive)
--max-age <n>
string
Maximum age (inclusive)
--visibility <v>
string
Filter by visibility: workspace (your workspace), shared (community-published), platform (admin-curated). Old values private / public are accepted and mapped to workspace / platform.
--config <id>
string
Simulation config ID (required for media unless every person has one)
--max-interactions <n>
string
Max interactions per participant (interactive / media only). Precedence: flag > iteration’s stored value > CLI default (20).
--max-turns <n>
string
Max conversation turns per participant (chat studies only)
--early-termination
boolean
Allow chat agent to end the conversation early when goals are met (chat studies only)
--language <lang>
string
Language code (e.g. en, sv)
--wait
boolean
Wait for all simulations to reach a terminal state before returning
--timeout <s>
string
Wait timeout in seconds (default 300; only with —wait)
--dispatch-timeout <s>
string
Per-POST timeout in seconds for the create-participants + dispatch calls (default 120). Bump if study run times out client-side after seeding participants but before dispatch - those participants exist server-side and are surfaced under seeded_but_not_dispatched_* in the error envelope so the agent can resume.
-y, --yes
boolean
Skip confirmation prompt
--local
boolean
Run simulation with local browser (Playwright) instead of remote
--headed
boolean
Show browser window (local mode only)
--slow-mo <ms>
string
Slow down actions by ms (local mode only)
--devtools
boolean
Open Chrome DevTools (local mode only)
--debug
boolean
Enable detailed debug logging to stderr and ~/.ish/local-sim.log
--parallel <n>
string
Run N participants in parallel (local mode only). Browser: default all. Native iOS/Android: pools N auto-provisioned devices - simulators (iOS) / headless emulators from your AVDs (Android) - default 1, capped at 5, auto-sized to host RAM (and AVD count).
--platform <platform>
string
Local target platform: ‘web’ (Playwright), ‘android’ (adb emulator), or ‘ios’ (simctl+idb simulator). Defaults to the iteration’s platform.
--app <path>
string
Native local mode: path to an .apk (android) / .app (ios) to install, or an installed package/bundle id to launch. The extension implies —platform.

ish study poll

Check simulation progress for a study Usage: ish study poll [participant_id] [options]

Arguments

participant_id
Participant ID (alias or UUID; from ish study run --json.participant_aliases[]) (optional)

Options

--study <id>
string
Study ID (poll all simulations for study)
--workspace <id>
string
Workspace ID; accepted for consistency (workspace is inferred from —study/—iteration/<participant_id>)

ish study wait

Poll until simulations reach a terminal state (completed/errored/failed/cancelled) Usage: ish study wait [participant_id] [options]

Arguments

participant_id
Participant ID (alias or UUID; from ish study run --json.participant_aliases[]) (optional)

Options

--study <id>
string
Study ID (wait for all participants in the study)
--iteration <id>
string
Iteration ID (wait for participants in this iteration only)
--timeout <s>
string
Max seconds to wait (default 300)
--workspace <id>
string
Workspace ID; accepted for consistency (workspace is inferred from —study/—iteration/<participant_id>)

ish study cancel

Cancel a running simulation Usage: ish study cancel <participant_id> [options]

Arguments

participant_id
Participant ID (alias or UUID; from ish study run --json.participant_aliases[]) (required)

Options

--workspace <id>
string
Workspace ID; accepted for consistency (workspace is inferred from <participant_id>)

ish study extend

Extend a terminal participant with more steps (and optionally a mid-run instruction) Usage: ish study extend <participant_id> [options]

Arguments

participant_id
Participant to extend (alias or UUID). Must be in a terminal state (completed/failed/cancelled). (required)

Options

--add-steps <n>
string
Extra interactions past the source’s original cap (1-50; backend caps server-side) Default: “10”.
--instruction <text>
string
User message to inject as the new participant resumes. Accepts inline text, @/path/to/file, or - for stdin.
--wait
boolean
Block until the new participant reaches a terminal state
--timeout <s>
string
Wait timeout in seconds (default 300; only with —wait)
--dispatch-timeout <s>
string
Per-POST timeout in seconds for the dispatch call (default 120)
--workspace <id>
string
Workspace ID; accepted for consistency (workspace is inferred from <participant_id>)

Global flags

Every command accepts the global flags.
-V, --version
boolean
output the version number
-t, --token <token>
string
Auth token (or set ISH_TOKEN env var)
--token-file <path>
string
Read auth token from a file (preferred over —token / ISH_TOKEN)
--workspace <id>
string
Default workspace ID; per-subcommand —workspace overrides
--json
boolean
Output as JSON (auto-enabled when piped)
--get <field>
string
Extract a single field from the JSON response and print only its value (implies —json internally; supports dotted paths e.g. person.name)
--human
boolean
Force human-readable output even when stdout is piped (overrides JSON-when-piped auto-detection)
--fields <fields>
string
Comma-separated fields to include in JSON output (e.g. alias,name,status)
--verbose
boolean
Include full UUIDs and timestamps in JSON output
--no-color
boolean
Disable colored output (also honored: NO_COLOR env var)
-q, --quiet
boolean
Suppress progress messages on stderr (no-op for read commands that emit none)