Sleeper Hit Docs

OpenAPI and surface map

Unified operation map across UI, API, CLI, and MCP.

View as Markdown

This page is generated from the typed operation registry used by the docs site. It shows the same Sleeper Hit Studio workflow across UI, API, CLI, and MCP surfaces.

OperationStatusUIAPIScopeCLIMCP
Discover live capabilitiesavailableDeveloper console and docs (/dashboard/api)GET /api/v1/capabilitiesstory:readsleeperhit capabilitiessleeperhit://capabilities
Read agent guidanceavailableDeveloper console and docs (/dashboard/api)GET /api/v1/agent-guidancestory:readsleeperhit guidanceget_agent_guidance
Read Studio Credit balanceavailableDashboard credit meter (/dashboard)GET /api/v1/creditscredits:readsleeperhit creditsget_credits
Read the "Download my data" archiveavailableProfile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security)GET /api/v1/account/exportaccount:readsleeperhit account export --statusget_account_export
Download my dataavailableProfile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security)POST /api/v1/account/exportaccount:readsleeperhit account export [--wait] [--download <dir>]request_account_export
Read where the account's deletion standsavailableProfile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security)GET /api/v1/account/deletionaccount:readsleeperhit account deletionget_account_deletion
Delete the accountavailableProfile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security)POST /api/v1/account/deletionaccount:writesleeperhit account delete --confirm-email <email>request_account_deletion
Cancel the account's deletionavailableProfile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security)DELETE /api/v1/account/deletionaccount:writesleeperhit account cancel-deletioncancel_account_deletion
Check generation healthavailableDashboard background activity (/dashboard)GET /api/v1/generation-healthstory:readsleeperhit generation-healthget_generation_health
Create a story projectavailableWriters Lab project library (/dashboard/writing-lab)POST /api/v1/story-projectsstory:writesleeperhit projects create --name <name>create_project
Create a project around a scriptavailableWriters Lab sidebar (/dashboard/writing-lab/:scriptId/:scriptId)POST /api/v1/story-projects/from-scriptstory:writesleeperhit projects from-script <scriptId> | --script <scriptUploadId>create_project_from_script
List story projectsavailableWriters Lab project library (/dashboard/writing-lab)GET /api/v1/story-projectsstory:readsleeperhit projects listlist_projects
Read a story projectavailableWriters Lab project library (/dashboard/writing-lab)GET /api/v1/story-projects/{projectId}story:readsleeperhit projects get <projectId>get_project
Update a story projectavailableWriters Lab project page actions menu (/dashboard/writing-lab/:projectId)PATCH /api/v1/story-projects/{projectId}story:writesleeperhit projects update <projectId> [--name <text>] [--description <text>] [--metadata <json>] [--archived true|false] [--season-cadence monthly|numbered]update_project
Delete a story projectavailableWriters Lab project page actions menu (/dashboard/writing-lab/:projectId)DELETE /api/v1/story-projects/{projectId}story:writesleeperhit projects delete <projectId>delete_project
List deleted projects that can still be restoredavailableWriters Lab project library recently deleted (/dashboard/writing-lab)GET /api/v1/story-projects/deletedstory:readsleeperhit projects deletedlist_deleted_projects
Restore a deleted projectavailableWriters Lab project library recently deleted (/dashboard/writing-lab)POST /api/v1/story-projects/{projectId}/restorestory:writesleeperhit projects restore <projectId>restore_project
Read a project Series BibleavailableWriters Lab project canon (/dashboard/writing-lab)GET /api/v1/story-projects/{projectId}/series-biblestory:readsleeperhit bible get <projectId>get_series_bible
Save a project Series BibleavailableWriters Lab project canon (/dashboard/writing-lab)PATCH /api/v1/story-projects/{projectId}/series-biblestory:writesleeperhit bible save <projectId> --json <object>save_series_bible
Generate a project Series BibleavailableWriters Lab project canon (/dashboard/writing-lab)POST /api/v1/story-projects/{projectId}/series-biblestory:writesleeperhit bible generate <projectId>generate_series_bible
Read Series Bible coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)GET /api/v1/story-projects/{projectId}/series-bible/coveragestory:readsleeperhit bible coverage <projectId> [--phase premise|full]get_series_bible_coverage
Generate Series Bible coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)POST /api/v1/story-projects/{projectId}/series-bible/coveragestory:writesleeperhit bible coverage <projectId> --generate [--phase premise|full]generate_series_bible_coverage
Read episode outlinesavailableWriters Lab Outline tab (/dashboard/writing-lab/:projectId/:scriptId/tools/outline)GET /api/v1/story-projects/{projectId}/outline-mapstory:readsleeperhit outline get <projectId>get_outline_map
Save an episode outlineavailableWriters Lab Outline tab (/dashboard/writing-lab/:projectId/:scriptId/tools/outline)PATCH /api/v1/story-projects/{projectId}/outline-mapstory:writesleeperhit outline save <projectId> <episodeId> --json <outline>save_episode_outline
Read outline coverageavailableProject Overview outline coverage (/dashboard/writing-lab/:projectId/tools)GET /api/v1/story-projects/{projectId}/outline-map/coveragestory:readsleeperhit outline coverage <projectId>get_outline_coverage
Generate outline coverageavailableProject Overview outline coverage (/dashboard/writing-lab/:projectId/tools)POST /api/v1/story-projects/{projectId}/outline-map/coveragestory:writesleeperhit outline coverage <projectId> --generategenerate_outline_coverage
Create a conversational season runavailableWriters Lab Seasons & episodes (/dashboard/writing-lab/:projectId)POST /api/v1/story-projects/{projectId}/season-runsstory:writesleeperhit seasons create <projectId>create_season_run
List season runsavailableWriters Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/story-projects/{projectId}/season-runsstory:readsleeperhit seasons list <projectId>list_season_runs
Read a season runavailableWriters Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/season-runs/{runId}story:readsleeperhit seasons get <runId>get_season_run
Map one season episodeavailableWriters Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing)PATCH /api/v1/season-runs/{runId}/episodes/{episodeId}story:writesleeperhit seasons map <runId> <episodeId> --expected-map-version <n> --patch <json> [--confirm]map_season_episode
Approve a complete season mapavailableWriters Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/season-runs/{runId}/approvestory:writesleeperhit seasons approve <runId> --expected-map-version <n> --confirmapprove_season_map
Advance a coverage-gated season episodeavailableWriters Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/season-runs/{runId}/advancestory:writesleeperhit seasons advance <runId> | replan <runId> [--instruction <text>] --confirm | retry-coverage <runId> --confirm | revise <runId> (--instruction <text> | --screenplay-file <path>) --confirm | publish <runId> --confirmadvance_season_run
Read one Series Bible characteravailableWriters Lab project canon (/dashboard/writing-lab)GET /api/v1/story-projects/{projectId}/series-bible/charactersstory:readsleeperhit bible character <projectId> <character>get_series_bible_character
Edit one Series Bible characteravailableWriters Lab project canon (/dashboard/writing-lab)PATCH /api/v1/story-projects/{projectId}/series-bible/charactersstory:writesleeperhit bible character <projectId> <character> --json '<fields>' [--expected-version <n>] [--create]update_series_bible_character
Read a project cast canonavailableWriters Lab project canon (/dashboard/writing-lab)GET /api/v1/story-projects/{projectId}/cast-canonstory:readsleeperhit cast-canon get <projectId>get_cast_canon
Save a project cast canonavailableWriters Lab project canon (/dashboard/writing-lab)PATCH /api/v1/story-projects/{projectId}/cast-canonstory:writesleeperhit cast-canon save <projectId> --json '<object>' | --file <json> [--replace]save_cast_canon
Design a cast member's voiceavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/story-projects/{projectId}/cast-voice/designartifact:publishsleeperhit cast-voice design <projectId> --character <c> [--description <text>] [--candidates <n>] [--preview-lines <n>] [--sample-text <line>] [--confirm]design_cast_voice
Choose a designed cast voiceavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/story-projects/{projectId}/cast-voice/choosestory:writesleeperhit cast-voice choose <projectId> --design <designId> --candidate <n> [--name <voiceName>] [--acknowledge-coverage]choose_cast_voice
Set a cast member's voiceavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)PATCH /api/v1/story-projects/{projectId}/cast-voicestory:writesleeperhit cast-voice set <projectId> --character <c> --voice-id <id> [--voice-name <n>] [--provider <p>] [--gender <g>]set_cast_voice
List cast voice designsavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)GET /api/v1/story-projects/{projectId}/cast-voice/designsstory:readsleeperhit cast-voice designs <projectId> [--character <c>]list_cast_voice_designs
Read a voice design's casting coverageavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)GET /api/v1/story-projects/{projectId}/cast-voice/designs/{designId}/coveragestory:readsleeperhit cast-voice coverage <projectId> --design <designId>get_casting_coverage
Judge a voice design againavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/story-projects/{projectId}/cast-voice/designs/{designId}/coveragestory:writesleeperhit cast-voice judge <projectId> --design <designId> [--focus <text>]generate_casting_coverage
Draw headshot candidates for a cast memberavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/story-projects/{projectId}/cast-portraits/designartifact:publishsleeperhit cast-portrait design <projectId> --character <c> [--direction <text>] [--age <a>] [--candidates <n>] [--keep-face] [--confirm]design_cast_portraits
Choose a headshot candidateavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/story-projects/{projectId}/cast-portraits/choosestory:writesleeperhit cast-portrait choose <projectId> --design <designId> --candidate <n> [--acknowledge-coverage]choose_cast_portrait
Read a portrait design's casting coverageavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)GET /api/v1/story-projects/{projectId}/cast-portraits/designs/{designId}/coveragestory:readsleeperhit cast-portrait coverage <projectId> --design <designId>get_portrait_coverage
Judge a portrait design againavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/story-projects/{projectId}/cast-portraits/designs/{designId}/coveragestory:writesleeperhit cast-portrait judge <projectId> --design <designId> [--focus <text>]generate_portrait_coverage
List headshot candidate designsavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)GET /api/v1/story-projects/{projectId}/cast-portraits/designsstory:readsleeperhit cast-portrait designs <projectId> [--character <c>] [--design <designId>] [--watch]list_cast_portrait_designs
Read cast look directionsavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)GET /api/v1/story-projects/{projectId}/cast-lookstory:readsleeperhit cast direction <projectId> [--character <c>]get_cast_look_direction
Set a cast member's look directionavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)PATCH /api/v1/story-projects/{projectId}/cast-lookstory:writesleeperhit cast direction <projectId> --character <c> [--look <text>] [--age <a>] [--clear-look] [--clear-age]set_cast_look_direction
Read a project mood boardavailableWriters Lab project canon (/dashboard/writing-lab)GET /api/v1/story-projects/{projectId}/mood-boardstory:readsleeperhit mood-board get <projectId>get_mood_board
Keep a frame on the mood boardavailableWriters Lab project canon (/dashboard/writing-lab)POST /api/v1/story-projects/{projectId}/mood-board/framesstory:writesleeperhit mood-board keep <projectId> --json '<frame>' | --file <json>keep_mood_board_frame
Render candidate mood board framesavailableWriters Lab project canon (/dashboard/writing-lab)POST /api/v1/story-projects/{projectId}/mood-board/render-framesartifact:publishsleeperhit mood-board render <projectId> --brief <text> [--count <n>] [--aspect <ratio>] [--confirm]render_mood_board_frames
Drop a frame from the mood boardavailableWriters Lab project canon (/dashboard/writing-lab)DELETE /api/v1/story-projects/{projectId}/mood-board/frames/{frameId}story:writesleeperhit mood-board drop <projectId> <frameId>drop_mood_board_frame
Generate the project castavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/story-projects/{projectId}/castartifact:publishsleeperhit cast generate <projectId> [--script <scriptUploadId>] [--character <name>] [--force] [--image face|body|sheet] [--confirm --quote <quoteId>]generate_cast
Save episode character directionavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)PATCH /api/v1/story-projects/{projectId}/caststory:writesleeperhit cast direction <projectId> --script <scriptUploadId> --character <name> --json <direction>update_character_direction
Read casting progressavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)GET /api/v1/story-projects/{projectId}/caststory:readsleeperhit cast status <projectId> [--script <scriptUploadId>]get_project_cast
Prepare an episode's table readavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/scripts/{scriptUploadId}/table-read/prepareartifact:publishsleeperhit script table-read prepare <scriptUploadId> [--confirm]prepare_table_read
Retry a failed creative analysisavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/scripts/{scriptUploadId}/table-read/retry-analysisstory:writesleeperhit script table-read retry-analysis <scriptUploadId>retry_creative_analysis
Remove a character from a readavailableWriters Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast)POST /api/v1/scripts/{scriptUploadId}/table-read/characters/removestory:writesleeperhit script table-read remove-character <scriptUploadId> --character <name>remove_character
Attach a sourceavailableWriters Lab project workflow (/dashboard/writing-lab)POST /api/v1/story-projects/{projectId}/sourcessource:writesleeperhit sources add <projectId> --type text|markdown|url|pdf [--producer <name> --external-id <id>] [--originated-at <iso>]add_source
List sourcesavailableWriters Lab project workflow (/dashboard/writing-lab)GET /api/v1/story-projects/{projectId}/sourcessource:readsleeperhit sources list <projectId>list_sources
Read a sourceavailableWriters Lab project workflow (/dashboard/writing-lab)GET /api/v1/story-projects/{projectId}/sources/{sourceId}source:readsleeperhit sources get <projectId> <sourceId>get_source
Delete a sourceavailableWriters Lab project workflow (/dashboard/writing-lab)DELETE /api/v1/story-projects/{projectId}/sources/{sourceId}source:writesleeperhit sources delete <projectId> <sourceId>delete_source
Generate a StoryPlanavailableWriters Lab project workflow (/dashboard/writing-lab)POST /api/v1/story-projects/{projectId}/story-plansstory:writesleeperhit plans create <projectId> --target ... --artifact ...create_plan
List StoryPlansavailableWriters Lab project page plans (/dashboard/writing-lab/:projectId)GET /api/v1/story-projects/{projectId}/story-plansstory:readsleeperhit plans list <projectId>list_plans
Read a StoryPlanavailableWriters Lab project page plans (/dashboard/writing-lab/:projectId)GET /api/v1/story-plans/{planId}story:readsleeperhit plans get <planId>get_plan
Rename a planavailableWriters Lab plans waiting for you (/dashboard/writing-lab/:projectId)PATCH /api/v1/story-plans/{planId}story:writesleeperhit plans rename <planId> <title>rename_plan
Resume a StoryPlanavailableWriters Lab project workflow (/dashboard/writing-lab)POST /api/v1/story-plans/{planId}/resumestory:writesleeperhit plans resume <planId>resume_story_plan
Approve a StoryPlanavailableWriters Lab project page plans (/dashboard/writing-lab/:projectId)POST /api/v1/story-plans/{planId}/approvestory:writesleeperhit plans approve <planId> --confirmapprove_plan
Reject a StoryPlanavailableWriters Lab project page plans (/dashboard/writing-lab/:projectId)POST /api/v1/story-plans/{planId}/rejectstory:writesleeperhit plans reject <planId>reject_plan
Read background activityavailableDashboard background activity (/dashboard)GET /api/v1/background-activitystory:readsleeperhit activitybackground_activity
Read screenplay drafting progressavailableWriters Lab screenplay editor (/dashboard/writing-lab/:projectId/:scriptId)GET /api/v1/screenplay-drafts/{scriptUploadId}story:readsleeperhit screenplay-draft status <scriptUploadId>screenplay_draft_status
Draft or resume an episode scene by sceneavailableWriters Lab screenplay editor (/dashboard/writing-lab/:projectId/:scriptId)POST /api/v1/screenplay-drafts/{scriptUploadId}story:writesleeperhit screenplay-draft start|resume <scriptUploadId> [--file <scene-plan.json>]draft_episode/resume_screenplay_draft
Delete a whole scriptavailableWriters Lab script delete (/dashboard/writing-lab/:projectId/:scriptId/overview)DELETE /api/v1/scripts/{scriptUploadId}story:writesleeperhit script delete <scriptId> --confirmdelete_script
Read an episode's overridesavailableWriters Lab episode overrides (/dashboard/writing-lab/:projectId/:scriptId/cast)GET /api/v1/scripts/{scriptUploadId}/overridesstory:readsleeperhit script overrides get <scriptUploadId>get_script_overrides
Set or clear an episode's overridesavailableWriters Lab episode overrides (/dashboard/writing-lab/:projectId/:scriptId/cast)PATCH /api/v1/scripts/{scriptUploadId}/overridesstory:writesleeperhit script overrides set <scriptUploadId> [--avatar <text>] [--theater <text>] [--soundscape <text>] [--pitch-deck <text>] [--locations <text>] [--clear <override>]update_script_overrides
Read one table-read lineavailableWriters Lab table-read line detail (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/scripts/{scriptUploadId}/lines/{entryIndex}story:readsleeperhit script line get <scriptUploadId> <entryIndex> [--json]get_script_line_tuning
Edit one table-read lineavailableWriters Lab table-read line detail (/dashboard/writing-lab/:projectId/:scriptId/table-read)PATCH /api/v1/scripts/{scriptUploadId}/lines/{entryIndex}story:writesleeperhit script line set <scriptUploadId> <entryIndex> [--text <t>] [--tts-text <t>] [--parenthetical <t>] [--scene-heading <h>] [--pause-ms N] [--emotions <a,b,c> [--volume N]]edit_script_line
Read a table read's share linkavailableWriters Lab table-read share dialog (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/scripts/{scriptUploadId}/sharestory:readsleeperhit script share get <scriptUploadId> [--json]get_script_share
Share a table readavailableWriters Lab table-read share dialog (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/scripts/{scriptUploadId}/shareartifact:publishsleeperhit script share create <scriptUploadId> [--audience public|private_review|team] [--mode theater|audio] [--scope whole|scene|entries|conversation] [--expires-in-days N] [--include-on-profile]share_script
List a project's episodes, versions and videosavailableWriters Lab Seasons & episodes (/dashboard/writing-lab/:projectId)GET /api/v1/story-projects/{projectId}/episodesstory:readsleeperhit projects episodes <projectId> [--season N]list_project_episodes
Name a new seasonavailableWriters Lab Seasons & episodes (/dashboard/writing-lab/:projectId)POST /api/v1/story-projects/{projectId}/seasonsstory:writesleeperhit projects seasons add <projectId> [--name <text>]create_project_season
Upload a screenplayavailableWriters Lab upload (/dashboard/writing-lab)POST /api/v1/scriptsstory:writesleeperhit script upload --title <title> --file <path> [--format text|fountain|fdx]upload_script
Read a scriptavailableWriters Lab script details (/dashboard/writing-lab)GET /api/v1/scripts/{scriptUploadId}story:readsleeperhit script show <scriptId>get_script
Change a script's title, logline, format, genre or seasonavailableWriters Lab script details (/dashboard/writing-lab)PATCH /api/v1/scripts/{scriptUploadId}story:writesleeperhit script update <scriptId> [--title <t>] [--slug <s>] [--logline <text>] [--media-type film|tv] [--genre <text>] [--season N] [--clear logline|genre|media-type]update_script
Upload a new version of a scriptavailableWriters Lab script versions (/dashboard/writing-lab/:projectId/:scriptId/overview)POST /api/v1/scripts/{scriptUploadId}/versionsstory:writesleeperhit script versions add <scriptId> (--file <path> | --source <sourceId> | --file-url <url> [--file-name <name>]) [--format text|fountain|fdx]upload_script_version
Delete one version of a scriptavailableWriters Lab script versions (/dashboard/writing-lab/:projectId/:scriptId/overview)DELETE /api/v1/scripts/{scriptUploadId}/versions/{versionId}story:writesleeperhit script versions delete <scriptId> <scriptUploadId> --confirmdelete_script_version
Export a screenplay as Fountain, Final Draft or PDFavailableWriters Lab export (/dashboard/writing-lab/:projectId/:scriptId)GET /api/v1/scripts/{scriptUploadId}/exportstory:readsleeperhit script export <scriptUploadId> --format fountain|fdx|pdf [--out <path>] [--no-title-page] [--from-page N] [--to-page N] [--font <font>]export_script
Start a Series Bible episode as a draftavailableWriters Lab episode map (/dashboard/writing-lab/:projectId)POST /api/v1/story-projects/{projectId}/episodesstory:writesleeperhit projects episodes start <projectId> <episodeId>start_planned_episode
Write a version's textavailableWriters Lab screenplay editor (/dashboard/writing-lab/:projectId/:scriptId)PATCH /api/v1/scripts/{scriptUploadId}/contentstory:writesleeperhit script write <scriptUploadId> --file <path> [--expected-file <path>]write_script_content
Finish a draft into a locked versionavailableWriters Lab screenplay editor (/dashboard/writing-lab/:projectId/:scriptId)POST /api/v1/scripts/{scriptUploadId}/finishstory:writesleeperhit script finish <scriptUploadId> [--coverage adopt|fresh]finish_draft
List a screenplay's coverage historyavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)GET /api/v1/artifacts/{artifactId}/coverage/versionsartifact:readsleeperhit coverage versions <artifactId>list_coverage_versions
Read a Black List analysisavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)GET /api/v1/artifacts/{artifactId}/coverage/blacklistartifact:readsleeperhit coverage blacklist <artifactId> [--report <reportId>]get_blacklist_analysis
Create a story jobavailableWriters Lab project workflow (/dashboard/writing-lab)POST /api/v1/story-jobsstory:writesleeperhit jobs create <planId> [--script <scriptUploadId>]create_job
List story jobsavailableWriters Lab project workflow (/dashboard/writing-lab)GET /api/v1/story-jobsstory:readsleeperhit jobs listlist_jobs
Read a story jobavailableWriters Lab project workflow (/dashboard/writing-lab)GET /api/v1/story-jobs/{jobId}story:readsleeperhit jobs get <jobId>get_job
Cancel a story jobavailableDashboard background activity (/dashboard)POST /api/v1/story-jobs/{jobId}/cancelstory:writesleeperhit jobs cancel <jobId>cancel_job
Resume a story jobavailableDashboard background activity (/dashboard)POST /api/v1/story-jobs/{jobId}/resumestory:writesleeperhit jobs resume <jobId>resume_story_job
List job artifactsavailableWriters Lab project workflow (/dashboard/writing-lab)GET /api/v1/story-jobs/{jobId}/artifactsartifact:readsleeperhit jobs artifacts <jobId>list_artifacts
Read an artifactavailableWriters Lab project workflow (/dashboard/writing-lab)GET /api/v1/artifacts/{artifactId}artifact:readsleeperhit artifacts get <artifactId>get_artifact
Rename a resultavailableWriters Lab script details and video lists (/dashboard/writing-lab)PATCH /api/v1/artifacts/{artifactId}story:writesleeperhit artifacts rename <artifactId> <title>rename_artifact
Render a table-read videoavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/render-videoartifact:publishsleeperhit artifacts render-video <artifactId>render_artifact_video
Read render status + share linkavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/render-videoartifact:readsleeperhit artifacts render-status <artifactId>get_artifact_share
Read a render's publishable stateavailableWriters Lab table-read publish button (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/publish-stateartifact:readsleeperhit artifacts publish-state <artifactId>get_publish_state
Send a render to Publishing (or remove it)availableWriters Lab table-read publish button (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/publish-stateartifact:publishsleeperhit artifacts publish <artifactId> [--off]mark_publishable/unmark_publishable
Direct a theater motion graphicavailableWriters Lab project workflow (/dashboard/writing-lab)POST /api/v1/artifacts/{artifactId}/theater-motionartifact:publishsleeperhit artifacts theater-motion <artifactId> --scene <n> --entry <n> --composition motion-only|motion-over-clip|performance-motion-overlay [--caption <text>] [--direction <text>] [--duration <0.5..30>] [--clip-prompt <text>]direct_theater_motion_beat
Generate a theater motion background clipavailableWriters Lab project workflow (/dashboard/writing-lab)POST /api/v1/artifacts/{artifactId}/theater-motion-clipartifact:publishsleeperhit artifacts theater-motion-clip <artifactId> --scene <n> --entry <n> [--prompt <text>] [--duration <4..30>]generate_theater_motion_clip
Design a theater scene canvasavailableWriters Lab project workflow (/dashboard/writing-lab)POST /api/v1/artifacts/{artifactId}/theater-canvasartifact:publishsleeperhit artifacts theater-canvas <artifactId> --scene <n> --beats <json-array>apply_theater_canvas
Read the theater presentationavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/theaterartifact:readsleeperhit theater get <artifactId>get_theater_settings
Change the theater presentationavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/theaterartifact:publishsleeperhit theater update <artifactId> [--theater-mode on|off] [--backgrounds on|off] [--scene-visuals on|off] [--style-set <id>] [--transition <type>] [--transition-duration <ms>] [--heading-font <id>] [--dialogue-font <id>] [--layout <mode>] [--dialogue <presentation>] [--title <text>] [--subtitle <text>] [--title-layout <layout>] [--noun-imagery insets|replace_backdrop|off] [--json <presentation>]update_theater_settings
Change one scene's theateravailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/theater-sceneartifact:publishsleeperhit theater scene <artifactId> --scene <n> [--text-reveal fade|drift|spotlight] [--backdrop-prompt <text>] [--media image|video] [--transition <type>] [--transition-duration <ms>] [--transition-prompt <text>] [--summary <text>] [--fx-cues <json-array> | --clear-fx-cues]update_scene_theater
Write a scene's atmospheric FX cuesavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/theater-fx-cuesartifact:publishsleeperhit theater fx-cues <artifactId> --scene <n>generate_scene_fx_cues
Write scene backdrop promptsavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/theater-backdrop-promptsartifact:publishsleeperhit theater backdrop-prompts <artifactId> [--scenes 0,2,5] [--force]write_scene_backdrop_prompts
Read the noun imageryavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/noun-imageryartifact:readsleeperhit noun-imagery get <artifactId>get_noun_imagery
Build the noun imageryavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/noun-imageryartifact:publishsleeperhit noun-imagery generate <artifactId> [--force] [--noun <key> [--label <text>] [--kind object|location|entity]]generate_noun_imagery
List soundscape beds and regionsavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/soundscapesartifact:readsleeperhit soundscapes list <artifactId>get_soundscapes
Edit soundscape beds and regionsavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/soundscapesartifact:publishsleeperhit soundscapes update-bed|add|update|attach|remove <artifactId>update_soundscape/remove_soundscape
Animate a character's portraitavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/avatar-videoartifact:publishsleeperhit cast animate <artifactId> --character <name> [--description <text>]animate_avatar
Refine a table readavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/refineartifact:publishsleeperhit refine <artifactId> <instruction...> [--scope auto|screenplay|plan] [--confirm]refine_artifact
Finalize a durable MP3 or MP4availableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/finalizeartifact:publishsleeperhit finalize <artifactId> --mode audio|video [--refresh]finalize_artifact
Update a read's recording with its changed linesavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/update-recordingartifact:publishsleeperhit recording update <artifactId> [--confirm]update_recording
Retry a failed or stalled durable MP3 finalizeavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/finalize/retryartifact:publishsleeperhit finalize <artifactId> --retryretry_artifact_finalize
Read a table-read castavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}artifact:readsleeperhit cast <artifactId>get_cast
Read table-read script contentavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/scriptartifact:readsleeperhit script get <artifactId>get_table_read_script
Replace a table-read screenplay exactlyavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/scriptartifact:publishsleeperhit script replace <artifactId> --file <path> [--instruction <text>] [--narration-policy include|suppress] [--defer-music] [--defer-audio-render]replace_artifact_script
Read script content by pageavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/scriptartifact:readsleeperhit script page <artifactId> <page>get_script_page
Read script content by sceneavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/scriptartifact:readsleeperhit script scene <artifactId> <sceneIndex>get_script_scene
Read character linesavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/scriptartifact:readsleeperhit script character <artifactId> <character...>get_character_lines
List a table read's flagged linesavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/review-itemsartifact:readsleeperhit script review list <artifactId>list_line_reviews
Flag a table-read line for reviewavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/review-itemsartifact:publishsleeperhit script review flag <artifactId> <entryIndex> --line-text "<the line as it stands>" [--character <c>] [--note <text>]flag_line_for_review
Remove a table-read line's review flagavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)DELETE /api/v1/artifacts/{artifactId}/review-items/{entryIndex}artifact:publishsleeperhit script review unflag <artifactId> <entryIndex>unflag_line_for_review
Recast a character voiceavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/voiceartifact:publishsleeperhit voice set <artifactId> --character <c> --voice-id <id> --voice-name <name> [--no-canon]recast_voice
Restore a character's previous voiceavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/voice/restoreartifact:publishsleeperhit voice restore <artifactId> [--character <c>]restore_voice
Re-voice one character in a finished readavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/revoiceartifact:publishsleeperhit voice revoice <artifactId> --character <c> [--voice-id <id> --voice-name <name>] [--confirm]revoice_character
Re-voice one line at a new speed or with a new directionavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/revoice-lineartifact:publishsleeperhit voice revoice-line <artifactId> --entry <index> [--speed <x>] [--direction <text> | --no-direction] [--confirm]revoice_line
Regenerate a character avataravailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/avatarartifact:publishsleeperhit avatar set <artifactId> --character <c> [--refine <text>] [--style <style>] [--confirm]recast_avatar
Regenerate a character figureavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/figureartifact:publishsleeperhit figure set <artifactId> --character <c> [--refine <text>] [--reference-image-url <url>] [--confirm]recast_figure
Update the cast (voices + avatars)availableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/castartifact:publishsleeperhit cast update <artifactId> --json '<entries-or-{entries,avatarStyle}>' [--confirm] (cast-wide restyle: sleeperhit cast restyle <artifactId> --style <s> [--confirm])update_cast
Read the enriched castavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/castartifact:readsleeperhit cast <artifactId>get_cast
Generate script coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)POST /api/v1/artifacts/{artifactId}/coveragestory:writesleeperhit coverage generate <artifactId>generate_coverage
Read script coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)GET /api/v1/artifacts/{artifactId}/coverageartifact:readsleeperhit coverage get <artifactId>get_coverage
Analyze brand storytelling coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)POST /api/v1/brand-coveragestory:writesleeperhit brand-coverage generate <content|-> [--type <text>] [--audience <text>] [--industry <text>] [--channel <text>] [--voice <text>]analyze_brand_coverage
Read brand coverage reportavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)GET /api/v1/brand-coverage/{reportId}story:readsleeperhit brand-coverage get <reportId>get_brand_coverage
Generate brand storytellingavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/brand-narrativestory:writesleeperhit brand-narrative generate <brief|-> [--type <text>] [--audience <text>] [--industry <text>] [--channel <text>] [--voice <text>] [--length <text>] [--facts <file>]generate_brand_narrative
Generate scene musicavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/musicartifact:publishsleeperhit music generate <artifactId> [--coverage <0..1|0..100>] [--scenes 0,2,5]generate_music
Update scene musicavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/musicartifact:publishsleeperhit music update <artifactId> [--scene <n> --clip-prompt <text> --clip-volume <0..1> --clip-fade-in <ms> --clip-fade-out <ms> --clip-play-mode once|loop --clip-sound-url <url> --clip-duration-ms <ms> --clip-anchor start|end --clip-post-roll-ms <ms>] [--scene <n> --end-transition fadeOut|cut --mix <0..1> --ducking <0.1..1> --bpm <60..180> --density <0..1> --brightness <0..1> --instruments "Cello:1.2,Piano:0.8"] [--scope screenplay|scene|entry] [--mode merge|replace]update_music
Read scene music statusavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/musicartifact:readsleeperhit music get <artifactId>get_music
Modify voices over a rangeavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/voice-modificationartifact:publishsleeperhit modify-voice <artifactId> --start <n> --end <n>modify_voice
Refine character performanceavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/performanceartifact:publishsleeperhit performance <artifactId> --character <name|NARRATOR|ALL> [--speed-factor 1.2] [--emotions a,b]refine_performance
List my studio voicesavailableWriters Lab (/dashboard/writing-lab)GET /api/v1/voicesstory:readsleeperhit voices listlist_voices
Hear a voice say a lineavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/voices/previewstory:writesleeperhit voices preview <voiceId> (--text <line> | --artifact <artifactId> --character <c>) [--provider <p>]preview_voice
Rename a library voiceavailableWriters Lab (/dashboard/writing-lab)PATCH /api/v1/voices/{voiceId}story:writesleeperhit voices rename <voiceId> --name <name>rename_voice
Delete a library voiceavailableWriters Lab (/dashboard/writing-lab)DELETE /api/v1/voices/{voiceId}story:writesleeperhit voices delete <voiceId> [--confirm]delete_voice
Migrate a voice everywhere it is usedavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/voice-migrationsstory:writesleeperhit voices migrate <fromVoiceId> --to <toVoiceId> [--to-provider <p>] [--to-name <n>] [--project <projectId>] [--character <c>] [--confirm]migrate_voice
List voice migrationsavailableWriters Lab (/dashboard/writing-lab)GET /api/v1/voice-migrationsstory:readsleeperhit voices migrations [--voice <voiceId>]list_voice_migrations
Undo a voice migrationavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/voice-migrations/{migrationId}/undostory:writesleeperhit voices migration-undo <migrationId>undo_voice_migration
Mint a voice-clone recording linkavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/voices/clone-linkstory:writesleeperhit voices clonecreate_voice_clone_link
Mint a voice consent linkavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/voices/{voiceId}/consent-linkstory:writesleeperhit voices consent <voiceId>create_voice_consent_link
Withdraw a cloned voice's consentavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/voices/{voiceId}/revoke-consentstory:writesleeperhit voices revoke-consent <voiceId> --confirmrevoke_voice_consent
List likeness approvalsavailableMy Library likeness approvals (/dashboard/library)GET /api/v1/likeness-consentsstory:readsleeperhit likeness listlist_likeness_consents
Mint a likeness approval linkavailableMy Library likeness approvals (/dashboard/library)POST /api/v1/likeness-consents/linksstory:writesleeperhit likeness link <name> [--email <email>]create_likeness_consent_link
Withdraw a likeness approvalavailableMy Library likeness approvals (/dashboard/library)POST /api/v1/likeness-consents/{consentId}/revokestory:writesleeperhit likeness revoke <consentId> --confirmrevoke_likeness_consent
Mint a Performance Booth recording linkavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/table-read/performance-boothstory:writesleeperhit performance-booth <jobId>create_performance_booth_link
Read which table-read lines have a performed takeavailableWriters Lab (/dashboard/writing-lab)GET /api/v1/table-read/performance-boothstory:readsleeperhit performance-booth <jobId> --statusget_performance_booth_status
Start a Pro voice cloneavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/voices/pro/startstory:writesleeperhit voices clone --pro --name <name> [--language <iso>] [--upgrade-from <voiceId>]create_pro_voice_clone_link
Read the Pro voice clone recording scriptavailableWriters Lab (/dashboard/writing-lab)GET /api/v1/voices/pro/scriptstory:readsleeperhit voices pro scriptget_pro_voice_clone_script
Start Pro voice clone trainingavailableWriters Lab (/dashboard/writing-lab)POST /api/v1/voices/pro/trainstory:writesleeperhit voices pro train <jobId>start_pro_voice_clone_training
Poll a Pro voice cloneavailableWriters Lab (/dashboard/writing-lab)GET /api/v1/voices/pro/{jobId}story:readsleeperhit voices pro status <jobId>get_pro_voice_clone
Read a pitch deck's chaptersavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/chaptersstory:readsleeperhit pitch-deck chapters <jobId>get_pitch_deck_chapters
Read pitch deck plan coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)GET /api/v1/pitch-decks/{jobId}/storyboard/coveragestory:readsleeperhit pitch-deck coverage <jobId>get_storyboard_coverage
Generate pitch deck plan coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)POST /api/v1/pitch-decks/{jobId}/storyboard/coveragestory:writesleeperhit pitch-deck coverage <jobId> --generategenerate_storyboard_coverage
Read a pitch deck's intentavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/intentstory:readsleeperhit pitch-deck intent <jobId>get_video_intent
Edit a draft pitch deck's intentavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/intentstory:writesleeperhit pitch-deck intent <jobId> [--purpose <text>] [--audience <text>] [--logline <text>] [--theme <text>] [--central-question <text>] [--stakes <text>] [--viewer-promise <text>] [--ending <text>] [--arc <json>]update_video_intent
Refine one pitch deck chapteravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/refinestory:writesleeperhit pitch-deck refine-chapter <jobId> --chapter <chapterIndex> [--title <text>] [--story-beat <text>] [--visual-plan <text>] [--shot-type <text>] [--motion-plan <text>] [--location <key> | --clear-location] [--transition-prompt <text>] [--motion-prompt <text>] [--caption <text>] [--text-treatment <text>] [--text-mode voiceover|caption] [--narration <text>] [--narration-voice <id> | --clear-narration-voice] [--composition image|text|both] [--chapter-focus world|cast] [--arc-stage setup|escalation|turn|closing_question] [--advances-question <text>] [--montage | --no-montage] [--keep-scene-sound | --no-scene-sound] [--line-delivery <text>] [--cut-into-next cut|dip] [--duration <4..30>] [--visible-characters <a,b>] [--featured-character <name>] [--prop-continuity <text>] [--wardrobe-continuity <text>] [--screen-direction <text>] [--continuity-notes <text>]refine_pitch_deck_chapter
Read the pitch deck narratoravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/narratorstory:readsleeperhit pitch-deck narrator <jobId>get_pitch_deck_narrator
Cast the pitch deck narratoravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/narratorstory:writesleeperhit pitch-deck narrator <jobId> --voice-id <voiceId> [--provider <name>] | --clearset_pitch_deck_narrator
Set a pitch deck's black interludesavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/interludesstory:writesleeperhit pitch-deck interludes <jobId> --json <list> | --file <path> | --clearupdate_pitch_deck_interludes
Set a pitch deck's title sequenceavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/title-sequencestory:writesleeperhit pitch-deck title-sequence <jobId> --title <WORD> --cast <names> [--shadow <name>] [--seconds <3-5>] [--epigraph <text> [--epigraph-attribution <text>]] [--source-credit <text>] [--name-supers on|off] [--role "<name>=<role>"]… [--label "<name>=<LABEL>"]… [--beat-grid on|off] [--beat-seconds <0.5-4>] [--title-beats <1-8>] [--flash-source "<name>=deck|project|motion|portrait|auto"]… [--on|--off] | --clearupdate_pitch_deck_title_sequence
Set a pitch deck's closing sequenceavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/closing-sequencestory:writesleeperhit pitch-deck closing-sequence <jobId> [--quote <text> [--quote-attribution <source>] | --no-quote] [--coming-soon <text>] [--production-credit <text>] [--on|--off] | --clearupdate_pitch_deck_closing_sequence
Set a pitch deck's visual grammaravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/visual-grammarstory:writesleeperhit pitch-deck visual-grammar <jobId> [--text <words> | --file <path>]update_pitch_deck_visual_grammar
Make living portraits for a pitch deck's title introsavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/title-sequence/motion-closesartifact:publishsleeperhit pitch-deck title-motion-closes <jobId> [--name <name>]… [--confirm]render_pitch_deck_title_motion_closes
Read the pitch deck finishavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/lookstory:readsleeperhit pitch-deck look <jobId>get_pitch_deck_look
Set the pitch deck finishavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/lookstory:writesleeperhit pitch-deck look <jobId> <camera|period-35mm|night-interior|none> [--intensity light|standard|strong] [--adjust <effect>=<level>,…]set_pitch_deck_look
Read the pitch deck motion bluravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/motion-blurstory:readsleeperhit pitch-deck motion-blur <jobId>get_pitch_deck_motion_blur
Set the pitch deck motion bluravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/motion-blurstory:writesleeperhit pitch-deck motion-blur <jobId> [--chapter <chapterIndex>[:<shot>,…|moving|none]]… [--strength standard|subtle] [--off]set_pitch_deck_motion_blur
Read the pitch deck quiet trackavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/quiet-trackstory:readsleeperhit pitch-deck quiet-track <jobId>get_pitch_deck_quiet_track
Set the pitch deck quiet trackavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/quiet-trackstory:writesleeperhit pitch-deck quiet-track <jobId> --track silence|room_tone | --offset_pitch_deck_quiet_track
Read the pitch deck video modelavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/video-modelstory:readsleeperhit pitch-deck video-model <jobId>get_pitch_deck_video_model
Set the pitch deck video modelavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/video-modelstory:writesleeperhit pitch-deck video-model <jobId> --model wan3-prime|vidu-q4set_pitch_deck_video_model
List the pitch deck versionsavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/versionsstory:readsleeperhit pitch-deck versions <jobId>list_pitch_deck_versions
Read a pitch deck versionavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/versions/{number}story:readsleeperhit pitch-deck version-clips <jobId> <number> [--download <dir>]get_pitch_deck_version
Ask for a pitch deck version zipavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/versions/{number}/zipstory:writesleeperhit pitch-deck version-clips <jobId> <number> --ziprequest_pitch_deck_version_zip
Read the pitch deck camera motionavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/camerastory:readsleeperhit pitch-deck camera <jobId>get_pitch_deck_camera
Set the pitch deck camera motionavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/camerastory:writesleeperhit pitch-deck camera <jobId> [--handheld off|subtle|medium] [--snap <chapterIndex>:<shot>:<NAME>[@<zoom>]]… [--reframe <chapterIndex>:<shot>:<FROM>><TARGET>]… [--clear <chapterIndex>]… [--off]set_pitch_deck_camera
Render one pitch deck chapter againavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/render-clipartifact:publishsleeperhit pitch-deck render-clip <jobId> --chapter <chapterIndex> [--call <callId>] [--confirm]render_pitch_deck_chapter_clip
Select a take of one pitch deck callavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/select-takestory:writesleeperhit pitch-deck select-take <jobId> --chapter <chapterIndex> --call <callId> --take <n>select_pitch_deck_take
Repair one take of a pitch deck call in placeavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/repair-takeartifact:publishsleeperhit pitch-deck repair-take <jobId> --chapter <chapterIndex> --call <callId> --take <n> [--confirm]repair_pitch_deck_take
Override the repair decision on one pitch deck takeavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/take-repair-overridestory:writesleeperhit pitch-deck override-repair <jobId> --chapter <chapterIndex> --call <callId> --take <n> --keep|--restore|--rewatchoverride_pitch_deck_take_repair
Trim one take of a pitch deck callavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/trim-takestory:writesleeperhit pitch-deck trim-take <jobId> --chapter <chapterIndex> --call <callId> --take <n> --keep <start>-<end>trim_pitch_deck_take
Cut a pitch deck chapter's line out, keep the rest of its footageavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/drop-linestory:writesleeperhit pitch-deck drop-line <jobId> --chapter <chapterIndex> [--keep before|after] [--to <chapterIndex>]drop_pitch_deck_chapter_line
Stage one pitch deck take's line as a voice-overavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/stage-voice-overartifact:publishsleeperhit pitch-deck stage-voice-over <jobId> --chapter <chapterIndex> --call <callId> --take <n> [--confirm]stage_pitch_deck_take_as_voice_over
Insert a blank pitch deck chapteravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/insertstory:writesleeperhit pitch-deck add-chapter <jobId> [--at <position> | --after <chapterIndex>]add_pitch_deck_chapter
Remove a pitch deck chapteravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/removestory:writesleeperhit pitch-deck remove-chapter <jobId> --chapter <chapterIndex>remove_pitch_deck_chapter
Put the pitch deck chapters in a new orderavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/reorderstory:writesleeperhit pitch-deck reorder-chapters <jobId> (--order <chapterIndex,...> | --move <chapterIndex> --after <chapterIndex|first>)reorder_pitch_deck_chapters
Render one chapter's text layeravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/storyboard/regenerate-textartifact:publishsleeperhit pitch-deck regenerate-text <jobId> --chapter <chapterIndex> [--confirm]regenerate_pitch_deck_text
Direct how a deck's text looks and movesavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/storyboard/direct-text-motionstory:writesleeperhit pitch-deck direct-text-motion <jobId> (--chapter <chapterIndex> | --title-element title|epigraph|source-credit|name-supers | --closing-element quote|coming-soon|production-credit) (--direction <text> | --clear)direct_pitch_deck_text_motion
Re-stitch the finished deck master from its current chapters and audioavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/video-exportstory:writesleeperhit pitch-deck export <jobId>export_pitch_deck_video
Approve the pitch deck plan into the renderavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/plan/approvestory:writesleeperhit pitch-deck approve-plan <jobId> [--confirm] [--acknowledge-plan-coverage "<reason>"]approve_pitch_deck_plan
Finish the pitch deckavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/finishartifact:publishsleeperhit pitch-deck finish <jobId> [--resolution 720p|1080p] [--confirm] [--acknowledge-video-coverage]finish_pitch_deck
Re-assemble a pitch deck whose assembly failed, or rebuild its masteravailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/reassemblestory:writesleeperhit pitch-deck reassemble <jobId>reassemble_pitch_deck
Let one pitch deck take still out at the provider goavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/abandon-takeartifact:publishsleeperhit pitch-deck abandon-take <jobId> --chapter <chapterIndex> --call <callId> --take <n>abandon_pitch_deck_take
Stop a pitch deck's renderavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/cancel-renderartifact:publishsleeperhit pitch-deck cancel-render <jobId>cancel_pitch_deck_render
Let the deck's automatic fixes try moreavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/more-fixesartifact:publishsleeperhit pitch-deck more-fixes <jobId> [--confirm]allow_more_pitch_deck_fixes
Read pitch deck video coverageavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/video-coveragestory:readsleeperhit pitch-deck video-coverage <jobId>get_video_coverage
Cover the pitch deck video againavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/video-coveragestory:writesleeperhit pitch-deck video-coverage <jobId> --generategenerate_video_coverage
Read the pitch deck delivery classavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/resolutionstory:readsleeperhit pitch-deck resolution <jobId>get_pitch_deck_resolution
Choose the pitch deck delivery classavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/resolutionstory:writesleeperhit pitch-deck resolution <jobId> --resolution <720p|1080p> | --defaultset_pitch_deck_resolution
Read a trailer's beatsavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/beatsstory:readsleeperhit trailer beats <jobId>get_trailer_beats
Read every trailer beat's render state and credit trailavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/render-statesstory:readsleeperhit trailer render-status <jobId>get_trailer_render_states
Read the trailer narratoravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/narratorstory:readsleeperhit trailer narrator <jobId>get_trailer_narrator
Cast the trailer narratoravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/narratorstory:writesleeperhit trailer narrator <jobId> --voice-id <voiceId> [--provider <name>] | --clearset_trailer_narrator
Read the trailer aspect ratioavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/aspectstory:readsleeperhit trailer aspect <jobId>get_trailer_aspect
Choose the trailer aspect ratioavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/aspectstory:writesleeperhit trailer aspect <jobId> <9:16|16:9|1:1>set_trailer_aspect
Choose the trailer audio policyavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/audio-policystory:writesleeperhit trailer audio-policy <jobId> [narrate|suppress]set_trailer_audio_policy
Read the trailer delivery classavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/resolutionstory:readsleeperhit trailer resolution <jobId>get_trailer_resolution
Choose the trailer delivery classavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/resolutionstory:writesleeperhit trailer resolution <jobId> --resolution <720p|1080p> | --defaultset_trailer_resolution
Read the trailer finishavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/lookstory:readsleeperhit trailer look <jobId>get_trailer_look
Set the trailer finishavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/lookstory:writesleeperhit trailer look <jobId> <camera|period-35mm|night-interior|none> [--intensity light|standard|strong] [--adjust <effect>=<level>,…]set_trailer_look
Read the trailer motion bluravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/motion-blurstory:readsleeperhit trailer motion-blur <jobId>get_trailer_motion_blur
Set the trailer motion bluravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/motion-blurstory:writesleeperhit trailer motion-blur <jobId> [--beat <beatIndex>[:<shot>,…|moving|none]]… [--strength standard|subtle] [--off]set_trailer_motion_blur
Read the trailer camera motionavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/camerastory:readsleeperhit trailer camera <jobId>get_trailer_camera
Set the trailer camera motionavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/camerastory:writesleeperhit trailer camera <jobId> [--handheld off|subtle|medium] [--snap <beatIndex>:<shot>:<NAME>[@<zoom>]]… [--reframe <beatIndex>:<shot>:<FROM>><TARGET>]… [--clear <beatIndex>]… [--off]set_trailer_camera
Read the trailer quiet trackavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/quiet-trackstory:readsleeperhit trailer quiet-track <jobId>get_trailer_quiet_track
Set the trailer quiet trackavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/quiet-trackstory:writesleeperhit trailer quiet-track <jobId> --track silence|room_tone | --offset_trailer_quiet_track
Cut a trailer beat's line out, keep the rest of its footageavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/{beatIndex}/drop-linestory:writesleeperhit trailer drop-line <jobId> --beat <beatIndex> [--line <n>] [--keep before|after] [--to <beatIndex>]drop_trailer_beat_line
Duplicate a trailer from its planavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/duplicatestory:writesleeperhit trailer duplicate <jobId> [--title <text>]duplicate_trailer
Set a trailer's black interludesavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/interludesstory:writesleeperhit trailer interludes <jobId> --json <list> | --file <path> | --clearupdate_trailer_interludes
Set a trailer's closing sequenceavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/closing-sequencestory:writesleeperhit trailer closing-sequence <jobId> [--quote <text> [--quote-attribution <source>] | --no-quote] [--coming-soon <text>] [--production-credit <text>] [--on|--off] | --clearupdate_trailer_closing_sequence
List the trailer versionsavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/versionsstory:readsleeperhit trailer versions <jobId>list_trailer_versions
Read a trailer versionavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/versions/{number}story:readsleeperhit trailer version-clips <jobId> <number> [--download <dir>]get_trailer_version
Ask for a trailer version zipavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/versions/{number}/zipstory:writesleeperhit trailer version-clips <jobId> <number> --ziprequest_trailer_version_zip
Delete a traileravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)DELETE /api/v1/trailers/{jobId}story:writesleeperhit trailer delete <jobId>delete_trailer
Rename a traileravailableWriters Lab trailer list (/dashboard/writing-lab/:projectId/:scriptId/videos)PATCH /api/v1/trailers/{jobId}story:writesleeperhit trailer rename <jobId> <title> [--automatic]rename_trailer
Delete a pitch deckavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)DELETE /api/v1/pitch-decks/{jobId}story:writesleeperhit pitch-deck delete <jobId>delete_pitch_deck
Rename a pitch deckavailableWriters Lab deck list (/dashboard/writing-lab/:projectId/:scriptId/videos)PATCH /api/v1/pitch-decks/{jobId}story:writesleeperhit pitch-deck rename <jobId> <title> [--automatic]rename_pitch_deck
Duplicate a pitch deck from its planavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/duplicatestory:writesleeperhit pitch-deck duplicate <jobId> [--title <text>]duplicate_pitch_deck
Publish a pitch deckavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/publishstory:writesleeperhit pitch-deck publish <jobId>publish_pitch_deck
Unpublish a pitch deckavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/unpublishstory:writesleeperhit pitch-deck unpublish <jobId>unpublish_pitch_deck
Render a finished pitch deck's PDFavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/pdfstory:writesleeperhit pitch-deck pdf <jobId>render_pitch_deck_pdf
Read per-beat music and sound effectsavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/storyboard/audiostory:readsleeperhit trailer audio <jobId>get_trailer_scene_audio
Score one beat's musicavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/musicstory:writesleeperhit trailer music <score|update|remove|apply-library> <jobId> --beat <n> [flags]score_trailer_scene_music
Place sound effects on one beatavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/sfxstory:writesleeperhit trailer sfx <add|update|remove|apply-library> <jobId> --beat <n> [flags]add_trailer_scene_sfx
Read per-scene music and sound effectsavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/storyboard/audiostory:readsleeperhit pitch-deck audio <jobId>get_pitch_deck_scene_audio
Score one scene's musicavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/storyboard/musicstory:writesleeperhit pitch-deck music <score|update|remove|apply-library> <jobId> --chapter <chapterIndex> [flags]score_pitch_deck_scene_music
Place sound effects on one sceneavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/storyboard/sfxstory:writesleeperhit pitch-deck sfx <add|update|remove|apply-library> <jobId> --chapter <chapterIndex> [flags]add_pitch_deck_scene_sfx
Read the trailer audio timelineavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/storyboard/audio-timelinestory:readsleeperhit trailer timeline <jobId> showget_trailer_audio_timeline
Edit the trailer audio timelineavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/audio-timelinestory:writesleeperhit trailer timeline <jobId> <add-layer|remove-layer|generate-music|add-music-from-library|update-music|remove-music|generate-sfx|add-sfx-from-library|update-sfx|update-sfx-cues|remove-sfx> [flags] (sfx: --kind spot|ambience --length-ms N --fade-in-ms N --fade-out-ms N; update-sfx --muted|--unmuted --clear-length; update-sfx-cues --cues '<json>')generate_trailer_timeline_music
Read the pitch-deck audio timelineavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/storyboard/audio-timelinestory:readsleeperhit pitch-deck timeline <jobId> showget_pitch_deck_audio_timeline
Edit the pitch-deck audio timelineavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/storyboard/audio-timelinestory:writesleeperhit pitch-deck timeline <jobId> <add-layer|remove-layer|generate-music|add-music-from-library|update-music|remove-music|generate-sfx|add-sfx-from-library|update-sfx|update-sfx-cues|remove-sfx> [flags] (sfx: --kind spot|ambience --length-ms N --fade-in-ms N --fade-out-ms N; update-sfx --muted|--unmuted --clear-length; update-sfx-cues --cues '<json>')generate_pitch_deck_timeline_music
Read the trailer sound mapavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/storyboard/sound-mapstory:readsleeperhit trailer sound-map <jobId> [--beat <n>]get_trailer_sound_map
Read the pitch-deck sound mapavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/storyboard/sound-mapstory:readsleeperhit pitch-deck sound-map <jobId> [--chapter <chapterIndex>]get_pitch_deck_sound_map
Read the pitch deck's score to pictureavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/score-to-picturestory:readsleeperhit pitch-deck score-to-picture <jobId> showget_pitch_deck_score_to_picture
Score the pitch deck to pictureavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/score-to-pictureartifact:publishsleeperhit pitch-deck score-to-picture <jobId> start [--direction <text>] [--confirm]score_pitch_deck_to_picture
Revert the pitch deck to its scene bedsavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/score-to-picture/revertstory:writesleeperhit pitch-deck score-to-picture <jobId> revertrevert_pitch_deck_score_to_picture
Read the pitch deck's bell on the beatavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/pitch-decks/{jobId}/bell-lanestory:readsleeperhit pitch-deck bell <jobId> showget_pitch_deck_bell_lane
Strike a bell on every beat of the pitch deckavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/bell-lanestory:writesleeperhit pitch-deck bell <jobId> strike [--asset <id>|--from-deck <jobId>|--prompt <text>] [--every 1|2] [--from <s>|start] [--to <s>|end] [--skip <keys>|none] [--accent on|off] [--level <0-1>] [--duck on|off]strike_pitch_deck_bell_on_the_beat
Take the bell off the pitch deckavailableWriters Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/pitch-decks/{jobId}/bell-lane/removestory:writesleeperhit pitch-deck bell <jobId> removeremove_pitch_deck_bell_lane
List the sounds a project usesavailableWriters Lab project library (/dashboard/writing-lab)GET /api/v1/story-projects/{projectId}/soundsstory:readsleeperhit projects sounds <projectId> [--kind bell|music|sfx] [--query <text>]list_project_sounds
Read the trailer's score to pictureavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/score-to-picturestory:readsleeperhit trailer score-to-picture <jobId> showget_trailer_score_to_picture
Score the trailer to pictureavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/score-to-pictureartifact:publishsleeperhit trailer score-to-picture <jobId> start [--direction <text>] [--confirm]score_trailer_to_picture
Revert the trailer to its scene bedsavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/score-to-picture/revertstory:writesleeperhit trailer score-to-picture <jobId> revertrevert_trailer_score_to_picture
Read trailer plan coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)GET /api/v1/trailers/{jobId}/storyboard/coveragestory:readsleeperhit trailer coverage <jobId>get_storyboard_coverage
Generate trailer plan coverageavailableWriters Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage)POST /api/v1/trailers/{jobId}/storyboard/coveragestory:writesleeperhit trailer coverage <jobId> --generategenerate_storyboard_coverage
Read a trailer's intentavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/intentstory:readsleeperhit trailer intent <jobId>get_video_intent
Edit a draft trailer's intentavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/intentstory:writesleeperhit trailer intent <jobId> [--purpose <text>] [--audience <text>] [--logline <text>] [--theme <text>] [--central-question <text>] [--stakes <text>] [--viewer-promise <text>] [--ending <text>] [--arc <json>]update_video_intent
Refine one trailer beatavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/refinestory:writesleeperhit trailer refine <jobId> --beat <n> [--story-beat <text>] [--shot-type <text>] [--motion-prompt <text>] [--transition-prompt <text>] [--transition-in <text>] [--caption <text>] [--composition image|text|both] [--visible-characters <a,b>] [--featured-character <name>] [--location <key>] [--duration <4..30>] [--shots <json>] [--character-action <text>] [--staging-notes <text>] [--arc-stage setup|escalation|turn|closing_question] [--advances-question <text>] [--montage | --no-montage]refine_trailer_beat
Render one trailer beat againavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/render-clipartifact:publishsleeperhit trailer render-clip <jobId> --beat <n> [--call <callId>] [--confirm]render_trailer_beat_clip
Select a take of one trailer callavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/{beatIndex}/select-takestory:writesleeperhit trailer select-take <jobId> --beat <n> --call <callId> --take <n>select_trailer_take
Repair one take of a trailer call in placeavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/{beatIndex}/repair-takeartifact:publishsleeperhit trailer repair-take <jobId> --beat <n> --call <callId> --take <n> [--confirm]repair_trailer_take
Override the repair decision on one trailer takeavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/{beatIndex}/take-repair-overridestory:writesleeperhit trailer override-repair <jobId> --beat <n> --call <callId> --take <n> --keep|--restore|--rewatchoverride_trailer_take_repair
Trim one take of a trailer callavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/{beatIndex}/trim-takestory:writesleeperhit trailer trim-take <jobId> --beat <n> --call <callId> --take <n> --keep <start>-<end>trim_trailer_take
Stage one trailer take's line as a voice-overavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/{beatIndex}/stage-voice-overartifact:publishsleeperhit trailer stage-voice-over <jobId> --beat <n> --call <callId> --take <n> [--confirm]stage_trailer_take_as_voice_over
Finish the traileravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/finishartifact:publishsleeperhit trailer finish <jobId> [--resolution 720p|1080p] [--confirm] [--acknowledge-video-coverage]finish_trailer
Re-assemble a trailer whose assembly failed, or rebuild its masteravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/reassemblestory:writesleeperhit trailer reassemble <jobId>reassemble_trailer
Let one trailer take still out at the provider goavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/beats/{beatIndex}/abandon-takeartifact:publishsleeperhit trailer abandon-take <jobId> --beat <beatIndex> --call <callId> --take <n>abandon_trailer_take
Stop a trailer's renderavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/cancel-renderartifact:publishsleeperhit trailer cancel-render <jobId>cancel_trailer_render
Let the trailer's automatic fixes try moreavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/more-fixesartifact:publishsleeperhit trailer more-fixes <jobId> [--confirm]allow_more_trailer_fixes
Read trailer video coverageavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/video-coveragestory:readsleeperhit trailer video-coverage <jobId>get_video_coverage
Cover the trailer video againavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/video-coveragestory:writesleeperhit trailer video-coverage <jobId> --generategenerate_video_coverage
Move a trailer beat to another positionavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/move-beatstory:writesleeperhit trailer move-beat <jobId> --from <n> --to <n>move_trailer_beat
Insert a blank trailer beatavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/insert-beatstory:writesleeperhit trailer insert-beat <jobId> [--at <n> | --after <n>]insert_trailer_beat
Remove a trailer beatavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/remove-beatstory:writesleeperhit trailer remove-beat <jobId> --beat <n>remove_trailer_beat
Read a trailer beat's earlier cutsavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/trailers/{jobId}/storyboard/takesstory:readsleeperhit trailer takes <jobId> [--beat <n>]get_trailer_beat_takes
Put an earlier cut of a beat backavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/restore-takestory:writesleeperhit trailer restore-take <jobId> --beat <n> --url <url>restore_trailer_take
Direct how a trailer beat's text movesavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/direct-text-motionstory:writesleeperhit trailer direct-text-motion <jobId> --beat <n> --direction <text> | --closing-element quote|coming-soon|production-credit --direction <text> | --cleardirect_trailer_text_motion
Render one trailer text layeravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/storyboard/regenerate-textartifact:publishsleeperhit trailer regenerate-text <jobId> --beat <n> [--confirm]regenerate_trailer_text
Re-stitch the finished trailer masteravailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/video-exportstory:writesleeperhit trailer export <jobId>export_trailer_video
Approve the trailer plan into the renderavailableWriters Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/trailers/{jobId}/plan/approvestory:writesleeperhit trailer approve-plan <jobId> [--confirm] [--acknowledge-plan-coverage "<reason>"]approve_trailer_plan
List My-Library imagesavailableMy Library (/dashboard/library)GET /api/v1/library/imagesstory:readsleeperhit library images [--limit N] [--cursor C]list_my_library_images
List reusable My-Library audioavailableMy Library (/dashboard/library)GET /api/v1/library/audiostory:readsleeperhit library audio list [--kind music|sfx|soundscape] [--query <text>] [--limit N] [--cursor C]list_my_library_audio
Import reusable audioavailableMy Library (/dashboard/library)POST /api/v1/library/audiostory:writesleeperhit library audio import (--file <path> | --source-url <url>) --kind <kind> --label <text>import_my_library_audio
Rename a reusable audio assetavailableWriters Lab table-read sound picker (/dashboard/writing-lab/:projectId/:scriptId/table-read)PATCH /api/v1/library/audio/{assetId}story:writesleeperhit library audio rename <assetId> <label>rename_my_library_audio
Manage sound effectsavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)POST /api/v1/artifacts/{artifactId}/sfxartifact:publishsleeperhit sfx add|update|remove <artifactId>add_sfx/update_sfx/remove_sfx
List sound effectsavailableWriters Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read)GET /api/v1/artifacts/{artifactId}/sfxartifact:readsleeperhit sfx list <artifactId>list_sfx
Read the location platesavailableWriters Lab videos asset panel (/dashboard/writing-lab/:projectId/:scriptId/videos)GET /api/v1/artifacts/{artifactId}/location-platesartifact:readsleeperhit locations get <artifactId>get_location_plates
Remake one location plateavailableWriters Lab videos asset panel (/dashboard/writing-lab/:projectId/:scriptId/videos)POST /api/v1/artifacts/{artifactId}/location-plates/{plateKey}/remakeartifact:publishsleeperhit locations remake <artifactId> <plateKey> [--confirm]remake_location_plate
List publishing provider configavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-provider-configspublishing:connectsleeperhit publishing provider-configs listlist_publishing_provider_configs
Upsert publishing provider configavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-provider-configspublishing:connectsleeperhit publishing provider-configs upsert --provider <provider> --medium <medium>upsert_publishing_provider_config
Create a publishing seriesavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/story-projects/{projectId}/publishing-seriespublishing:writesleeperhit publishing series create <projectId> [--title <title>]create_publishing_series
List publishing seriesavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/story-projects/{projectId}/publishing-seriespublishing:readsleeperhit publishing series list <projectId>list_publishing_series
Read a publishing seriesavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-series/{seriesId}publishing:readsleeperhit publishing series get <seriesId>get_publishing_series
Update a publishing seriesavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)PATCH /api/v1/publishing-series/{seriesId}publishing:writesleeperhit publishing series update <seriesId> [--title <title>] [--status <status>] [--standing-approval-key <keyId|self|null>] [--episode-credit-cap <n>] [--monthly-credit-cap <n>] [--publish-policy auto|hold] [--confirm]update_publishing_series
List interesting recurring sourcesavailableWriters Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/show-source-templatespublishing:readsleeperhit publishing series templateslist_show_source_templates
Quote a recurring showavailableWriters Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-series/{seriesId}/quotepublishing:readsleeperhit publishing series quote <seriesId>get_show_quote
Preview a show's sourcesavailableWriters Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-series/{seriesId}/source-previewpublishing:readsleeperhit publishing series preview-sources <seriesId> [--sources <json>] [--lookback-days <n>]preview_show_sources
Make a show episode now (a preview until live)availableWriters Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-series/{seriesId}/episodespublishing:writesleeperhit publishing series produce <seriesId> [--prompt <text>] [--episode-type <key>] [--live] [--confirm]produce_show_episode
List a show's episodesavailableWriters Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-series/{seriesId}/episodespublishing:readsleeperhit publishing series episodes <seriesId>list_show_episodes
Generate podcast cover artavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-series/{seriesId}/generate-cover-artpublishing:writesleeperhit publishing series generate-cover-art <seriesId> [--title <title>] [--description <text>] [--podcast-category <text>] [--podcast-subcategory <text>]generate_publishing_cover_art
List publishing destinationsavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-series/{seriesId}/destinationspublishing:readsleeperhit publishing destinations list <seriesId>list_publishing_destinations
Connect a publishing destinationavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-series/{seriesId}/destinationspublishing:connectsleeperhit publishing destinations upsert <seriesId> --provider rssupsert_publishing_destination
List publishing releasesavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-series/{seriesId}/releasespublishing:readsleeperhit publishing releases list <seriesId>list_publishing_releases
Promote an artifact into a publishing releaseavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-series/{seriesId}/releasespublishing:writesleeperhit publishing releases create <seriesId> --source-artifact-id <artifactId> --title <title>create_publishing_release
Read a publishing releaseavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-releases/{releaseId}publishing:readsleeperhit publishing releases get <releaseId>get_publishing_release
Update publishing release metadataavailableWriters Lab publishing episode editor (/dashboard/writing-lab/:projectId/:scriptId/publishing)PATCH /api/v1/publishing-releases/{releaseId}publishing:writesleeperhit publishing releases update <releaseId> [--title <title>] [--description <text>]update_publishing_release
Generate a podcast episode descriptionavailableWriters Lab publishing episode editor (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-releases/{releaseId}/description/generatepublishing:writesleeperhit publishing releases generate-description <releaseId> [--direction <text>]generate_publishing_release_description
Schedule a publishing releaseavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-releases/{releaseId}/schedulepublishing:publishsleeperhit publishing releases schedule <releaseId> --at <iso> --confirmschedule_publishing_release
Publish a releaseavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-releases/{releaseId}/publishpublishing:publishsleeperhit publishing releases publish <releaseId> --confirmpublish_publishing_release
Refresh published release mediaavailableWriters Lab publishing episode editor (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-releases/{releaseId}/refresh-mediapublishing:publishsleeperhit publishing releases refresh-media <releaseId> --source-artifact-id <artifactId>refresh_published_release_media
Cancel a publishing releaseavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-releases/{releaseId}/cancelpublishing:publishsleeperhit publishing releases cancel <releaseId>cancel_publishing_release
Unpublish a published releaseavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)POST /api/v1/publishing-releases/{releaseId}/unpublishpublishing:publishsleeperhit publishing releases unpublish <releaseId> --confirmunpublish_publishing_release
List publishing release targetsavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-releases/{releaseId}/targetspublishing:readsleeperhit publishing releases targets <releaseId>list_publishing_release_targets
List publishing analyticsavailableWriters Lab publishing listening numbers (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-series/{seriesId}/analyticspublishing:analyticssleeperhit publishing analytics list <seriesId>list_publishing_analytics
Read RSS feedavailableWriters Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing)GET /api/v1/publishing-feeds/{seriesSlug}.xmlsleeperhit publishing feed <seriesSlug>get_publishing_rss_feed

Machine-readable versions

  • /agent-index.json - page, section, and operation map for agents.
  • /docs/search-index.json - lightweight search corpus.
  • /docs/surface-contract.json - structured UI/API/CLI/MCP contract snapshot.
  • /docs/cli-commands.json - structured CLI command map.
  • /docs/mcp-tools.json - structured MCP tool/resource map.