Scripting
JSON input, pagination, retries, and the scripting contract.
Use --request to pass all request parameters inline, from a file, or through stdin. Explicit flags override fields from that JSON. For case start and case update, --input sets only the case input values; a playbook's input_schema defines their format.
For workspace creation, including a saved default workspace, choose exactly one of --private, --team-ids "$TEAM_ID" (comma-separated IDs or a JSON array), or --access with complete settings. The same choices are private, teamIds, and access in --request JSON; do not combine them. Personal creation may omit sharing. Team selection grants editor access without adding redundant direct creator access.
epismo playbook create --request @playbook.json
epismo case record append <case-id> --request @record.json
epismo playbook suggestion create <playbook-id> --request - < suggestion.jsonSuccess writes JSON to stdout and exits 0. Failure writes a JSON-shaped error to stderr and exits non-zero. Automation should inspect the error code and retryable fields. Keep these defaults in CI; --diagnostic-format human is for terminal use.
List and search commands use --page-size and --cursor; use --all to follow every returned cursor or --limit to cap results. Use --output jsonl for one result per line. --output value --field checkout_url extracts a scalar; the built-in --jq supports field projections such as .playbooks[] | .id.
Mutation commands generate an idempotency UUID when omitted. Reuse a key only for the identical uncertain request. Case and task updates require the latest lock version; after a conflict, re-read state and reconsider the intended change. Use --dry-run before impactful archive, delete, revoke, close, or ACL changes.