ish iteration list
List iterations for a study
Usage: ish iteration list [options]
Options
string
Study ID
string
Workspace ID; accepted for consistency (workspace is inferred from the study)
ish iteration create
Create a new iteration with run-time content/URL
Usage: ish iteration create [options]
Options
string
Study ID (or set via
ish study use)string
Workspace ID; accepted for consistency (workspace is inferred from the study)
string
Iteration name (defaults to the next position letter A/B/C… if omitted)
string
Iteration description
string
Platform (browser, android, ios, figma, code) - interactive only
string
URL to test - interactive only (optional for ios/android native apps)
string
Native app bundle id (or .app/.apk path) - ios/android; supplies the iteration target so —url isn’t required
string
Screen format (mobile_portrait, desktop) - interactive only; hyphen/underscore variants accepted. Default: desktop, or mobile_portrait for native ios/android
string
Locale code (e.g. en-US) - interactive only
string
Figma file key - required when —platform=figma
string
Figma start node id - required when —platform=figma
string
Figma flow name - interactive only
string
Text content (treated as markdown → canonical content_doc), or @filepath to read from file - text modality
string
Paste-exact HTML (e.g. a branded email), or @filepath - text modality. Rides as the ADR-0015 format:html carrier (rendered source-faithful, re-sanitized backend-side). Mutually exclusive with —content-md / —content-text.
string
Markdown content, or @filepath to read from file - text modality. Parsed to the canonical content_doc block AST (ish.doc/1). Mutually exclusive with —content-text.
string
Email ‘From’ display name - text modality (email rendering)
string
Email sender address - text modality (email rendering)
string
Hero image URL - text modality (email rendering)
string
URL or local file path to media file - video, audio, document modalities
string
Comma-separated image URLs or local file paths - image modality
string
Content title shown to participants (the leading headline they read) - media modalities
string
MIME type (e.g. video/mp4) - media modalities
string
Ad copy or social post caption (or @filepath) - ads & social posts
string
HTML version of copy text (or @filepath)
string
Social platform (instagram, tiktok, facebook, linkedin, x)
string
Copy position relative to media (before, after) Default: “after”.
string
Segmentation JSON. Text (content_doc, ADR-0015) is block-id based: heading_based {split_level} auto-splits at headings (the default - author one
## per section), or section_based {sections[{segment_id,name,label,start_block_id}]} for manual block-id boundaries (first section may omit start_block_id). Video/audio: time_based {intervals_seconds, labels?}. Sections are SEMANTIC (a long article is usually 3-6, not one per block). NOTE: the old paragraph_start/end form is DEAD on content_doc - it errors every participant at run; use heading_based or start_block_id.string
Content config JSON - {early_termination, selected_segment_indices?} - media modalities
string
Chat mode: external_chatbot (default; probe a customer chatbot) or participant_pair (two AI people talk to each other)
string
Saved chatbot endpoint id - chat modality, external_chatbot mode (legacy; prefer —endpoint)
string
Inline chatbot endpoint config JSON - chat modality, external_chatbot mode (legacy; prefer —endpoint-config)
string
Max participant turns (1-50) - chat modality (default 12)
boolean
End the chat session early when the participant signals stop - chat modality
string
Saved chatbot endpoint id (alias or UUID) - chat modality, external_chatbot mode
string
Raw ChatbotEndpointConfig JSON file or
- for stdin - chat modality, external_chatbot modestring
Person IDs/aliases for side A (comma-separated or repeatable). Pass a single person and N on —group-b to broadcast (1×N rehearsal: fix side A, vary side B) - chat participant_pair mode Default: [].
string
Person IDs/aliases for side B (comma-separated or repeatable). When both sides are explicit they must be equal length, BUT if either side is a singleton it’s auto-broadcast to match the other (1×N rehearsal) - chat participant_pair mode Default: [].
string
Side-A scenario + goal text, or @filepath - chat participant_pair mode
string
Side-B scenario + goal text, or @filepath - chat participant_pair mode
string
Which side speaks first (default: a) - chat participant_pair mode
string
RoleCriteria filter for side A (inline JSON or @filepath). Keys: occupation[], min_age, max_age, gender[], country[], education_level_in[], household_in[], locale_type_in[], income_level_in[], employment_status_in[], requires_captions, uses_screen_reader, prefers_reduced_motion, prefers_high_contrast, has_any_accessibility_need. The five *_in arrays accept snake_case spec values; the five accessibility filters are booleans. Person-first: filters the eligible person pool without altering the people themselves. Use INSTEAD of —group-a or alongside it (criteria then validates the explicit list). chat participant_pair mode.
string
RoleCriteria filter for side B - same shape as —role-criteria-a. chat participant_pair mode.
string
Raw iteration details JSON (overrides individual flags)
ish iteration get
Get iteration details (accepts multiple IDs for batched lookup)
Usage: ish iteration get <ids>... [options]
Arguments
Iteration ID(s) - one or more aliases/UUIDs (space- or comma-separated) (required, variadic)
Options
string
Workspace ID; accepted for consistency (inferred from alias / active context)
ish iteration update
Update an iteration
Usage: ish iteration update <id> [options]
Arguments
Iteration ID (required)
Options
string
Iteration name
string
Iteration description
string
Iteration details as JSON string
string
Iteration label (uppercase letters)
string
Workspace ID; accepted for consistency (inferred from alias / active context)
ish iteration delete
Delete an iteration
Usage: ish iteration delete <id> [options]
Arguments
Iteration ID (required)
Options
boolean
Skip confirmation prompt (required in —json / non-TTY)
string
Workspace ID; accepted for consistency (inferred from alias / active context)
Global flags
Every command accepts the global flags.boolean
output the version number
string
Auth token (or set ISH_TOKEN env var)
string
Read auth token from a file (preferred over —token / ISH_TOKEN)
string
Default workspace ID; per-subcommand —workspace overrides
boolean
Output as JSON (auto-enabled when piped)
string
Extract a single field from the JSON response and print only its value (implies —json internally; supports dotted paths e.g. person.name)
boolean
Force human-readable output even when stdout is piped (overrides JSON-when-piped auto-detection)
string
Comma-separated fields to include in JSON output (e.g. alias,name,status)
boolean
Print the projectable field names for the response instead of the data, then exit (also: —fields ?)
boolean
Include full UUIDs and timestamps in JSON output
boolean
Disable colored output (also honored: NO_COLOR env var)
boolean
Suppress progress messages on stderr (no-op for read commands that emit none)