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.
| Operation | Status | UI | API | Scope | CLI | MCP |
|---|---|---|---|---|---|---|
| Discover live capabilities | available | Developer console and docs (/dashboard/api) | GET /api/v1/capabilities | story:read | sleeperhit capabilities | sleeperhit://capabilities |
| Read agent guidance | available | Developer console and docs (/dashboard/api) | GET /api/v1/agent-guidance | story:read | sleeperhit guidance | get_agent_guidance |
| Read Studio Credit balance | available | Dashboard credit meter (/dashboard) | GET /api/v1/credits | credits:read | sleeperhit credits | get_credits |
| Read the "Download my data" archive | available | Profile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security) | GET /api/v1/account/export | account:read | sleeperhit account export --status | get_account_export |
| Download my data | available | Profile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security) | POST /api/v1/account/export | account:read | sleeperhit account export [--wait] [--download <dir>] | request_account_export |
| Read where the account's deletion stands | available | Profile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security) | GET /api/v1/account/deletion | account:read | sleeperhit account deletion | get_account_deletion |
| Delete the account | available | Profile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security) | POST /api/v1/account/deletion | account:write | sleeperhit account delete --confirm-email <email> | request_account_deletion |
| Cancel the account's deletion | available | Profile, Sign-in & Security: Download my data, Delete account (/dashboard/profile?tab=security) | DELETE /api/v1/account/deletion | account:write | sleeperhit account cancel-deletion | cancel_account_deletion |
| Check generation health | available | Dashboard background activity (/dashboard) | GET /api/v1/generation-health | story:read | sleeperhit generation-health | get_generation_health |
| Create a story project | available | Writers Lab project library (/dashboard/writing-lab) | POST /api/v1/story-projects | story:write | sleeperhit projects create --name <name> | create_project |
| Create a project around a script | available | Writers Lab sidebar (/dashboard/writing-lab/:scriptId/:scriptId) | POST /api/v1/story-projects/from-script | story:write | sleeperhit projects from-script <scriptId> | --script <scriptUploadId> | create_project_from_script |
| List story projects | available | Writers Lab project library (/dashboard/writing-lab) | GET /api/v1/story-projects | story:read | sleeperhit projects list | list_projects |
| Read a story project | available | Writers Lab project library (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId} | story:read | sleeperhit projects get <projectId> | get_project |
| Update a story project | available | Writers Lab project page actions menu (/dashboard/writing-lab/:projectId) | PATCH /api/v1/story-projects/{projectId} | story:write | sleeperhit projects update <projectId> [--name <text>] [--description <text>] [--metadata <json>] [--archived true|false] [--season-cadence monthly|numbered] | update_project |
| Delete a story project | available | Writers Lab project page actions menu (/dashboard/writing-lab/:projectId) | DELETE /api/v1/story-projects/{projectId} | story:write | sleeperhit projects delete <projectId> | delete_project |
| List deleted projects that can still be restored | available | Writers Lab project library recently deleted (/dashboard/writing-lab) | GET /api/v1/story-projects/deleted | story:read | sleeperhit projects deleted | list_deleted_projects |
| Restore a deleted project | available | Writers Lab project library recently deleted (/dashboard/writing-lab) | POST /api/v1/story-projects/{projectId}/restore | story:write | sleeperhit projects restore <projectId> | restore_project |
| Read a project Series Bible | available | Writers Lab project canon (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId}/series-bible | story:read | sleeperhit bible get <projectId> | get_series_bible |
| Save a project Series Bible | available | Writers Lab project canon (/dashboard/writing-lab) | PATCH /api/v1/story-projects/{projectId}/series-bible | story:write | sleeperhit bible save <projectId> --json <object> | save_series_bible |
| Generate a project Series Bible | available | Writers Lab project canon (/dashboard/writing-lab) | POST /api/v1/story-projects/{projectId}/series-bible | story:write | sleeperhit bible generate <projectId> | generate_series_bible |
| Read Series Bible coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | GET /api/v1/story-projects/{projectId}/series-bible/coverage | story:read | sleeperhit bible coverage <projectId> [--phase premise|full] | get_series_bible_coverage |
| Generate Series Bible coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | POST /api/v1/story-projects/{projectId}/series-bible/coverage | story:write | sleeperhit bible coverage <projectId> --generate [--phase premise|full] | generate_series_bible_coverage |
| Read episode outlines | available | Writers Lab Outline tab (/dashboard/writing-lab/:projectId/:scriptId/tools/outline) | GET /api/v1/story-projects/{projectId}/outline-map | story:read | sleeperhit outline get <projectId> | get_outline_map |
| Save an episode outline | available | Writers Lab Outline tab (/dashboard/writing-lab/:projectId/:scriptId/tools/outline) | PATCH /api/v1/story-projects/{projectId}/outline-map | story:write | sleeperhit outline save <projectId> <episodeId> --json <outline> | save_episode_outline |
| Read outline coverage | available | Project Overview outline coverage (/dashboard/writing-lab/:projectId/tools) | GET /api/v1/story-projects/{projectId}/outline-map/coverage | story:read | sleeperhit outline coverage <projectId> | get_outline_coverage |
| Generate outline coverage | available | Project Overview outline coverage (/dashboard/writing-lab/:projectId/tools) | POST /api/v1/story-projects/{projectId}/outline-map/coverage | story:write | sleeperhit outline coverage <projectId> --generate | generate_outline_coverage |
| Create a conversational season run | available | Writers Lab Seasons & episodes (/dashboard/writing-lab/:projectId) | POST /api/v1/story-projects/{projectId}/season-runs | story:write | sleeperhit seasons create <projectId> | create_season_run |
| List season runs | available | Writers Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/story-projects/{projectId}/season-runs | story:read | sleeperhit seasons list <projectId> | list_season_runs |
| Read a season run | available | Writers Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/season-runs/{runId} | story:read | sleeperhit seasons get <runId> | get_season_run |
| Map one season episode | available | Writers Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing) | PATCH /api/v1/season-runs/{runId}/episodes/{episodeId} | story:write | sleeperhit seasons map <runId> <episodeId> --expected-map-version <n> --patch <json> [--confirm] | map_season_episode |
| Approve a complete season map | available | Writers Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/season-runs/{runId}/approve | story:write | sleeperhit seasons approve <runId> --expected-map-version <n> --confirm | approve_season_map |
| Advance a coverage-gated season episode | available | Writers Lab publishing season runner (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/season-runs/{runId}/advance | story:write | sleeperhit seasons advance <runId> | replan <runId> [--instruction <text>] --confirm | retry-coverage <runId> --confirm | revise <runId> (--instruction <text> | --screenplay-file <path>) --confirm | publish <runId> --confirm | advance_season_run |
| Read one Series Bible character | available | Writers Lab project canon (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId}/series-bible/characters | story:read | sleeperhit bible character <projectId> <character> | get_series_bible_character |
| Edit one Series Bible character | available | Writers Lab project canon (/dashboard/writing-lab) | PATCH /api/v1/story-projects/{projectId}/series-bible/characters | story:write | sleeperhit bible character <projectId> <character> --json '<fields>' [--expected-version <n>] [--create] | update_series_bible_character |
| Read a project cast canon | available | Writers Lab project canon (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId}/cast-canon | story:read | sleeperhit cast-canon get <projectId> | get_cast_canon |
| Save a project cast canon | available | Writers Lab project canon (/dashboard/writing-lab) | PATCH /api/v1/story-projects/{projectId}/cast-canon | story:write | sleeperhit cast-canon save <projectId> --json '<object>' | --file <json> [--replace] | save_cast_canon |
| Design a cast member's voice | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/story-projects/{projectId}/cast-voice/design | artifact:publish | sleeperhit cast-voice design <projectId> --character <c> [--description <text>] [--candidates <n>] [--preview-lines <n>] [--sample-text <line>] [--confirm] | design_cast_voice |
| Choose a designed cast voice | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/story-projects/{projectId}/cast-voice/choose | story:write | sleeperhit cast-voice choose <projectId> --design <designId> --candidate <n> [--name <voiceName>] [--acknowledge-coverage] | choose_cast_voice |
| Set a cast member's voice | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | PATCH /api/v1/story-projects/{projectId}/cast-voice | story:write | sleeperhit cast-voice set <projectId> --character <c> --voice-id <id> [--voice-name <n>] [--provider <p>] [--gender <g>] | set_cast_voice |
| List cast voice designs | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | GET /api/v1/story-projects/{projectId}/cast-voice/designs | story:read | sleeperhit cast-voice designs <projectId> [--character <c>] | list_cast_voice_designs |
| Read a voice design's casting coverage | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | GET /api/v1/story-projects/{projectId}/cast-voice/designs/{designId}/coverage | story:read | sleeperhit cast-voice coverage <projectId> --design <designId> | get_casting_coverage |
| Judge a voice design again | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/story-projects/{projectId}/cast-voice/designs/{designId}/coverage | story:write | sleeperhit cast-voice judge <projectId> --design <designId> [--focus <text>] | generate_casting_coverage |
| Draw headshot candidates for a cast member | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/story-projects/{projectId}/cast-portraits/design | artifact:publish | sleeperhit cast-portrait design <projectId> --character <c> [--direction <text>] [--age <a>] [--candidates <n>] [--keep-face] [--confirm] | design_cast_portraits |
| Choose a headshot candidate | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/story-projects/{projectId}/cast-portraits/choose | story:write | sleeperhit cast-portrait choose <projectId> --design <designId> --candidate <n> [--acknowledge-coverage] | choose_cast_portrait |
| Read a portrait design's casting coverage | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | GET /api/v1/story-projects/{projectId}/cast-portraits/designs/{designId}/coverage | story:read | sleeperhit cast-portrait coverage <projectId> --design <designId> | get_portrait_coverage |
| Judge a portrait design again | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/story-projects/{projectId}/cast-portraits/designs/{designId}/coverage | story:write | sleeperhit cast-portrait judge <projectId> --design <designId> [--focus <text>] | generate_portrait_coverage |
| List headshot candidate designs | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | GET /api/v1/story-projects/{projectId}/cast-portraits/designs | story:read | sleeperhit cast-portrait designs <projectId> [--character <c>] [--design <designId>] [--watch] | list_cast_portrait_designs |
| Read cast look directions | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | GET /api/v1/story-projects/{projectId}/cast-look | story:read | sleeperhit cast direction <projectId> [--character <c>] | get_cast_look_direction |
| Set a cast member's look direction | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | PATCH /api/v1/story-projects/{projectId}/cast-look | story:write | sleeperhit cast direction <projectId> --character <c> [--look <text>] [--age <a>] [--clear-look] [--clear-age] | set_cast_look_direction |
| Read a project mood board | available | Writers Lab project canon (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId}/mood-board | story:read | sleeperhit mood-board get <projectId> | get_mood_board |
| Keep a frame on the mood board | available | Writers Lab project canon (/dashboard/writing-lab) | POST /api/v1/story-projects/{projectId}/mood-board/frames | story:write | sleeperhit mood-board keep <projectId> --json '<frame>' | --file <json> | keep_mood_board_frame |
| Render candidate mood board frames | available | Writers Lab project canon (/dashboard/writing-lab) | POST /api/v1/story-projects/{projectId}/mood-board/render-frames | artifact:publish | sleeperhit mood-board render <projectId> --brief <text> [--count <n>] [--aspect <ratio>] [--confirm] | render_mood_board_frames |
| Drop a frame from the mood board | available | Writers Lab project canon (/dashboard/writing-lab) | DELETE /api/v1/story-projects/{projectId}/mood-board/frames/{frameId} | story:write | sleeperhit mood-board drop <projectId> <frameId> | drop_mood_board_frame |
| Generate the project cast | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/story-projects/{projectId}/cast | artifact:publish | sleeperhit cast generate <projectId> [--script <scriptUploadId>] [--character <name>] [--force] [--image face|body|sheet] [--confirm --quote <quoteId>] | generate_cast |
| Save episode character direction | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | PATCH /api/v1/story-projects/{projectId}/cast | story:write | sleeperhit cast direction <projectId> --script <scriptUploadId> --character <name> --json <direction> | update_character_direction |
| Read casting progress | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | GET /api/v1/story-projects/{projectId}/cast | story:read | sleeperhit cast status <projectId> [--script <scriptUploadId>] | get_project_cast |
| Prepare an episode's table read | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/scripts/{scriptUploadId}/table-read/prepare | artifact:publish | sleeperhit script table-read prepare <scriptUploadId> [--confirm] | prepare_table_read |
| Retry a failed creative analysis | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/scripts/{scriptUploadId}/table-read/retry-analysis | story:write | sleeperhit script table-read retry-analysis <scriptUploadId> | retry_creative_analysis |
| Remove a character from a read | available | Writers Lab cast (/dashboard/writing-lab/:projectId/:scriptId/cast) | POST /api/v1/scripts/{scriptUploadId}/table-read/characters/remove | story:write | sleeperhit script table-read remove-character <scriptUploadId> --character <name> | remove_character |
| Attach a source | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/story-projects/{projectId}/sources | source:write | sleeperhit sources add <projectId> --type text|markdown|url|pdf [--producer <name> --external-id <id>] [--originated-at <iso>] | add_source |
| List sources | available | Writers Lab project workflow (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId}/sources | source:read | sleeperhit sources list <projectId> | list_sources |
| Read a source | available | Writers Lab project workflow (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId}/sources/{sourceId} | source:read | sleeperhit sources get <projectId> <sourceId> | get_source |
| Delete a source | available | Writers Lab project workflow (/dashboard/writing-lab) | DELETE /api/v1/story-projects/{projectId}/sources/{sourceId} | source:write | sleeperhit sources delete <projectId> <sourceId> | delete_source |
| Generate a StoryPlan | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/story-projects/{projectId}/story-plans | story:write | sleeperhit plans create <projectId> --target ... --artifact ... | create_plan |
| List StoryPlans | available | Writers Lab project page plans (/dashboard/writing-lab/:projectId) | GET /api/v1/story-projects/{projectId}/story-plans | story:read | sleeperhit plans list <projectId> | list_plans |
| Read a StoryPlan | available | Writers Lab project page plans (/dashboard/writing-lab/:projectId) | GET /api/v1/story-plans/{planId} | story:read | sleeperhit plans get <planId> | get_plan |
| Rename a plan | available | Writers Lab plans waiting for you (/dashboard/writing-lab/:projectId) | PATCH /api/v1/story-plans/{planId} | story:write | sleeperhit plans rename <planId> <title> | rename_plan |
| Resume a StoryPlan | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/story-plans/{planId}/resume | story:write | sleeperhit plans resume <planId> | resume_story_plan |
| Approve a StoryPlan | available | Writers Lab project page plans (/dashboard/writing-lab/:projectId) | POST /api/v1/story-plans/{planId}/approve | story:write | sleeperhit plans approve <planId> --confirm | approve_plan |
| Reject a StoryPlan | available | Writers Lab project page plans (/dashboard/writing-lab/:projectId) | POST /api/v1/story-plans/{planId}/reject | story:write | sleeperhit plans reject <planId> | reject_plan |
| Read background activity | available | Dashboard background activity (/dashboard) | GET /api/v1/background-activity | story:read | sleeperhit activity | background_activity |
| Read screenplay drafting progress | available | Writers Lab screenplay editor (/dashboard/writing-lab/:projectId/:scriptId) | GET /api/v1/screenplay-drafts/{scriptUploadId} | story:read | sleeperhit screenplay-draft status <scriptUploadId> | screenplay_draft_status |
| Draft or resume an episode scene by scene | available | Writers Lab screenplay editor (/dashboard/writing-lab/:projectId/:scriptId) | POST /api/v1/screenplay-drafts/{scriptUploadId} | story:write | sleeperhit screenplay-draft start|resume <scriptUploadId> [--file <scene-plan.json>] | draft_episode/resume_screenplay_draft |
| Delete a whole script | available | Writers Lab script delete (/dashboard/writing-lab/:projectId/:scriptId/overview) | DELETE /api/v1/scripts/{scriptUploadId} | story:write | sleeperhit script delete <scriptId> --confirm | delete_script |
| Read an episode's overrides | available | Writers Lab episode overrides (/dashboard/writing-lab/:projectId/:scriptId/cast) | GET /api/v1/scripts/{scriptUploadId}/overrides | story:read | sleeperhit script overrides get <scriptUploadId> | get_script_overrides |
| Set or clear an episode's overrides | available | Writers Lab episode overrides (/dashboard/writing-lab/:projectId/:scriptId/cast) | PATCH /api/v1/scripts/{scriptUploadId}/overrides | story:write | sleeperhit script overrides set <scriptUploadId> [--avatar <text>] [--theater <text>] [--soundscape <text>] [--pitch-deck <text>] [--locations <text>] [--clear <override>] | update_script_overrides |
| Read one table-read line | available | Writers Lab table-read line detail (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/scripts/{scriptUploadId}/lines/{entryIndex} | story:read | sleeperhit script line get <scriptUploadId> <entryIndex> [--json] | get_script_line_tuning |
| Edit one table-read line | available | Writers Lab table-read line detail (/dashboard/writing-lab/:projectId/:scriptId/table-read) | PATCH /api/v1/scripts/{scriptUploadId}/lines/{entryIndex} | story:write | sleeperhit 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 link | available | Writers Lab table-read share dialog (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/scripts/{scriptUploadId}/share | story:read | sleeperhit script share get <scriptUploadId> [--json] | get_script_share |
| Share a table read | available | Writers Lab table-read share dialog (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/scripts/{scriptUploadId}/share | artifact:publish | sleeperhit 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 videos | available | Writers Lab Seasons & episodes (/dashboard/writing-lab/:projectId) | GET /api/v1/story-projects/{projectId}/episodes | story:read | sleeperhit projects episodes <projectId> [--season N] | list_project_episodes |
| Name a new season | available | Writers Lab Seasons & episodes (/dashboard/writing-lab/:projectId) | POST /api/v1/story-projects/{projectId}/seasons | story:write | sleeperhit projects seasons add <projectId> [--name <text>] | create_project_season |
| Upload a screenplay | available | Writers Lab upload (/dashboard/writing-lab) | POST /api/v1/scripts | story:write | sleeperhit script upload --title <title> --file <path> [--format text|fountain|fdx] | upload_script |
| Read a script | available | Writers Lab script details (/dashboard/writing-lab) | GET /api/v1/scripts/{scriptUploadId} | story:read | sleeperhit script show <scriptId> | get_script |
| Change a script's title, logline, format, genre or season | available | Writers Lab script details (/dashboard/writing-lab) | PATCH /api/v1/scripts/{scriptUploadId} | story:write | sleeperhit 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 script | available | Writers Lab script versions (/dashboard/writing-lab/:projectId/:scriptId/overview) | POST /api/v1/scripts/{scriptUploadId}/versions | story:write | sleeperhit 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 script | available | Writers Lab script versions (/dashboard/writing-lab/:projectId/:scriptId/overview) | DELETE /api/v1/scripts/{scriptUploadId}/versions/{versionId} | story:write | sleeperhit script versions delete <scriptId> <scriptUploadId> --confirm | delete_script_version |
| Export a screenplay as Fountain, Final Draft or PDF | available | Writers Lab export (/dashboard/writing-lab/:projectId/:scriptId) | GET /api/v1/scripts/{scriptUploadId}/export | story:read | sleeperhit 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 draft | available | Writers Lab episode map (/dashboard/writing-lab/:projectId) | POST /api/v1/story-projects/{projectId}/episodes | story:write | sleeperhit projects episodes start <projectId> <episodeId> | start_planned_episode |
| Write a version's text | available | Writers Lab screenplay editor (/dashboard/writing-lab/:projectId/:scriptId) | PATCH /api/v1/scripts/{scriptUploadId}/content | story:write | sleeperhit script write <scriptUploadId> --file <path> [--expected-file <path>] | write_script_content |
| Finish a draft into a locked version | available | Writers Lab screenplay editor (/dashboard/writing-lab/:projectId/:scriptId) | POST /api/v1/scripts/{scriptUploadId}/finish | story:write | sleeperhit script finish <scriptUploadId> [--coverage adopt|fresh] | finish_draft |
| List a screenplay's coverage history | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | GET /api/v1/artifacts/{artifactId}/coverage/versions | artifact:read | sleeperhit coverage versions <artifactId> | list_coverage_versions |
| Read a Black List analysis | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | GET /api/v1/artifacts/{artifactId}/coverage/blacklist | artifact:read | sleeperhit coverage blacklist <artifactId> [--report <reportId>] | get_blacklist_analysis |
| Create a story job | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/story-jobs | story:write | sleeperhit jobs create <planId> [--script <scriptUploadId>] | create_job |
| List story jobs | available | Writers Lab project workflow (/dashboard/writing-lab) | GET /api/v1/story-jobs | story:read | sleeperhit jobs list | list_jobs |
| Read a story job | available | Writers Lab project workflow (/dashboard/writing-lab) | GET /api/v1/story-jobs/{jobId} | story:read | sleeperhit jobs get <jobId> | get_job |
| Cancel a story job | available | Dashboard background activity (/dashboard) | POST /api/v1/story-jobs/{jobId}/cancel | story:write | sleeperhit jobs cancel <jobId> | cancel_job |
| Resume a story job | available | Dashboard background activity (/dashboard) | POST /api/v1/story-jobs/{jobId}/resume | story:write | sleeperhit jobs resume <jobId> | resume_story_job |
| List job artifacts | available | Writers Lab project workflow (/dashboard/writing-lab) | GET /api/v1/story-jobs/{jobId}/artifacts | artifact:read | sleeperhit jobs artifacts <jobId> | list_artifacts |
| Read an artifact | available | Writers Lab project workflow (/dashboard/writing-lab) | GET /api/v1/artifacts/{artifactId} | artifact:read | sleeperhit artifacts get <artifactId> | get_artifact |
| Rename a result | available | Writers Lab script details and video lists (/dashboard/writing-lab) | PATCH /api/v1/artifacts/{artifactId} | story:write | sleeperhit artifacts rename <artifactId> <title> | rename_artifact |
| Render a table-read video | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/render-video | artifact:publish | sleeperhit artifacts render-video <artifactId> | render_artifact_video |
| Read render status + share link | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/render-video | artifact:read | sleeperhit artifacts render-status <artifactId> | get_artifact_share |
| Read a render's publishable state | available | Writers Lab table-read publish button (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/publish-state | artifact:read | sleeperhit artifacts publish-state <artifactId> | get_publish_state |
| Send a render to Publishing (or remove it) | available | Writers Lab table-read publish button (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/publish-state | artifact:publish | sleeperhit artifacts publish <artifactId> [--off] | mark_publishable/unmark_publishable |
| Direct a theater motion graphic | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/artifacts/{artifactId}/theater-motion | artifact:publish | sleeperhit 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 clip | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/artifacts/{artifactId}/theater-motion-clip | artifact:publish | sleeperhit artifacts theater-motion-clip <artifactId> --scene <n> --entry <n> [--prompt <text>] [--duration <4..30>] | generate_theater_motion_clip |
| Design a theater scene canvas | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/artifacts/{artifactId}/theater-canvas | artifact:publish | sleeperhit artifacts theater-canvas <artifactId> --scene <n> --beats <json-array> | apply_theater_canvas |
| Read the theater presentation | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/theater | artifact:read | sleeperhit theater get <artifactId> | get_theater_settings |
| Change the theater presentation | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/theater | artifact:publish | sleeperhit 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 theater | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/theater-scene | artifact:publish | sleeperhit 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 cues | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/theater-fx-cues | artifact:publish | sleeperhit theater fx-cues <artifactId> --scene <n> | generate_scene_fx_cues |
| Write scene backdrop prompts | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/theater-backdrop-prompts | artifact:publish | sleeperhit theater backdrop-prompts <artifactId> [--scenes 0,2,5] [--force] | write_scene_backdrop_prompts |
| Read the noun imagery | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/noun-imagery | artifact:read | sleeperhit noun-imagery get <artifactId> | get_noun_imagery |
| Build the noun imagery | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/noun-imagery | artifact:publish | sleeperhit noun-imagery generate <artifactId> [--force] [--noun <key> [--label <text>] [--kind object|location|entity]] | generate_noun_imagery |
| List soundscape beds and regions | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/soundscapes | artifact:read | sleeperhit soundscapes list <artifactId> | get_soundscapes |
| Edit soundscape beds and regions | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/soundscapes | artifact:publish | sleeperhit soundscapes update-bed|add|update|attach|remove <artifactId> | update_soundscape/remove_soundscape |
| Animate a character's portrait | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/avatar-video | artifact:publish | sleeperhit cast animate <artifactId> --character <name> [--description <text>] | animate_avatar |
| Refine a table read | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/refine | artifact:publish | sleeperhit refine <artifactId> <instruction...> [--scope auto|screenplay|plan] [--confirm] | refine_artifact |
| Finalize a durable MP3 or MP4 | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/finalize | artifact:publish | sleeperhit finalize <artifactId> --mode audio|video [--refresh] | finalize_artifact |
| Update a read's recording with its changed lines | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/update-recording | artifact:publish | sleeperhit recording update <artifactId> [--confirm] | update_recording |
| Retry a failed or stalled durable MP3 finalize | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/finalize/retry | artifact:publish | sleeperhit finalize <artifactId> --retry | retry_artifact_finalize |
| Read a table-read cast | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId} | artifact:read | sleeperhit cast <artifactId> | get_cast |
| Read table-read script content | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/script | artifact:read | sleeperhit script get <artifactId> | get_table_read_script |
| Replace a table-read screenplay exactly | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/script | artifact:publish | sleeperhit script replace <artifactId> --file <path> [--instruction <text>] [--narration-policy include|suppress] [--defer-music] [--defer-audio-render] | replace_artifact_script |
| Read script content by page | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/script | artifact:read | sleeperhit script page <artifactId> <page> | get_script_page |
| Read script content by scene | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/script | artifact:read | sleeperhit script scene <artifactId> <sceneIndex> | get_script_scene |
| Read character lines | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/script | artifact:read | sleeperhit script character <artifactId> <character...> | get_character_lines |
| List a table read's flagged lines | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/review-items | artifact:read | sleeperhit script review list <artifactId> | list_line_reviews |
| Flag a table-read line for review | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/review-items | artifact:publish | sleeperhit 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 flag | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | DELETE /api/v1/artifacts/{artifactId}/review-items/{entryIndex} | artifact:publish | sleeperhit script review unflag <artifactId> <entryIndex> | unflag_line_for_review |
| Recast a character voice | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/voice | artifact:publish | sleeperhit voice set <artifactId> --character <c> --voice-id <id> --voice-name <name> [--no-canon] | recast_voice |
| Restore a character's previous voice | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/voice/restore | artifact:publish | sleeperhit voice restore <artifactId> [--character <c>] | restore_voice |
| Re-voice one character in a finished read | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/revoice | artifact:publish | sleeperhit 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 direction | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/revoice-line | artifact:publish | sleeperhit voice revoice-line <artifactId> --entry <index> [--speed <x>] [--direction <text> | --no-direction] [--confirm] | revoice_line |
| Regenerate a character avatar | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/avatar | artifact:publish | sleeperhit avatar set <artifactId> --character <c> [--refine <text>] [--style <style>] [--confirm] | recast_avatar |
| Regenerate a character figure | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/figure | artifact:publish | sleeperhit figure set <artifactId> --character <c> [--refine <text>] [--reference-image-url <url>] [--confirm] | recast_figure |
| Update the cast (voices + avatars) | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/cast | artifact:publish | sleeperhit cast update <artifactId> --json '<entries-or-{entries,avatarStyle}>' [--confirm] (cast-wide restyle: sleeperhit cast restyle <artifactId> --style <s> [--confirm]) | update_cast |
| Read the enriched cast | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/cast | artifact:read | sleeperhit cast <artifactId> | get_cast |
| Generate script coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | POST /api/v1/artifacts/{artifactId}/coverage | story:write | sleeperhit coverage generate <artifactId> | generate_coverage |
| Read script coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | GET /api/v1/artifacts/{artifactId}/coverage | artifact:read | sleeperhit coverage get <artifactId> | get_coverage |
| Analyze brand storytelling coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | POST /api/v1/brand-coverage | story:write | sleeperhit brand-coverage generate <content|-> [--type <text>] [--audience <text>] [--industry <text>] [--channel <text>] [--voice <text>] | analyze_brand_coverage |
| Read brand coverage report | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | GET /api/v1/brand-coverage/{reportId} | story:read | sleeperhit brand-coverage get <reportId> | get_brand_coverage |
| Generate brand storytelling | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/brand-narrative | story:write | sleeperhit brand-narrative generate <brief|-> [--type <text>] [--audience <text>] [--industry <text>] [--channel <text>] [--voice <text>] [--length <text>] [--facts <file>] | generate_brand_narrative |
| Generate scene music | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/music | artifact:publish | sleeperhit music generate <artifactId> [--coverage <0..1|0..100>] [--scenes 0,2,5] | generate_music |
| Update scene music | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/music | artifact:publish | sleeperhit 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 status | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/music | artifact:read | sleeperhit music get <artifactId> | get_music |
| Modify voices over a range | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/voice-modification | artifact:publish | sleeperhit modify-voice <artifactId> --start <n> --end <n> | modify_voice |
| Refine character performance | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/performance | artifact:publish | sleeperhit performance <artifactId> --character <name|NARRATOR|ALL> [--speed-factor 1.2] [--emotions a,b] | refine_performance |
| List my studio voices | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/voices | story:read | sleeperhit voices list | list_voices |
| Hear a voice say a line | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/voices/preview | story:write | sleeperhit voices preview <voiceId> (--text <line> | --artifact <artifactId> --character <c>) [--provider <p>] | preview_voice |
| Rename a library voice | available | Writers Lab (/dashboard/writing-lab) | PATCH /api/v1/voices/{voiceId} | story:write | sleeperhit voices rename <voiceId> --name <name> | rename_voice |
| Delete a library voice | available | Writers Lab (/dashboard/writing-lab) | DELETE /api/v1/voices/{voiceId} | story:write | sleeperhit voices delete <voiceId> [--confirm] | delete_voice |
| Migrate a voice everywhere it is used | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/voice-migrations | story:write | sleeperhit voices migrate <fromVoiceId> --to <toVoiceId> [--to-provider <p>] [--to-name <n>] [--project <projectId>] [--character <c>] [--confirm] | migrate_voice |
| List voice migrations | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/voice-migrations | story:read | sleeperhit voices migrations [--voice <voiceId>] | list_voice_migrations |
| Undo a voice migration | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/voice-migrations/{migrationId}/undo | story:write | sleeperhit voices migration-undo <migrationId> | undo_voice_migration |
| Mint a voice-clone recording link | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/voices/clone-link | story:write | sleeperhit voices clone | create_voice_clone_link |
| Mint a voice consent link | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/voices/{voiceId}/consent-link | story:write | sleeperhit voices consent <voiceId> | create_voice_consent_link |
| Withdraw a cloned voice's consent | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/voices/{voiceId}/revoke-consent | story:write | sleeperhit voices revoke-consent <voiceId> --confirm | revoke_voice_consent |
| List likeness approvals | available | My Library likeness approvals (/dashboard/library) | GET /api/v1/likeness-consents | story:read | sleeperhit likeness list | list_likeness_consents |
| Mint a likeness approval link | available | My Library likeness approvals (/dashboard/library) | POST /api/v1/likeness-consents/links | story:write | sleeperhit likeness link <name> [--email <email>] | create_likeness_consent_link |
| Withdraw a likeness approval | available | My Library likeness approvals (/dashboard/library) | POST /api/v1/likeness-consents/{consentId}/revoke | story:write | sleeperhit likeness revoke <consentId> --confirm | revoke_likeness_consent |
| Mint a Performance Booth recording link | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/table-read/performance-booth | story:write | sleeperhit performance-booth <jobId> | create_performance_booth_link |
| Read which table-read lines have a performed take | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/table-read/performance-booth | story:read | sleeperhit performance-booth <jobId> --status | get_performance_booth_status |
| Start a Pro voice clone | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/voices/pro/start | story:write | sleeperhit voices clone --pro --name <name> [--language <iso>] [--upgrade-from <voiceId>] | create_pro_voice_clone_link |
| Read the Pro voice clone recording script | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/voices/pro/script | story:read | sleeperhit voices pro script | get_pro_voice_clone_script |
| Start Pro voice clone training | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/voices/pro/train | story:write | sleeperhit voices pro train <jobId> | start_pro_voice_clone_training |
| Poll a Pro voice clone | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/voices/pro/{jobId} | story:read | sleeperhit voices pro status <jobId> | get_pro_voice_clone |
| Read a pitch deck's chapters | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/chapters | story:read | sleeperhit pitch-deck chapters <jobId> | get_pitch_deck_chapters |
| Read pitch deck plan coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | GET /api/v1/pitch-decks/{jobId}/storyboard/coverage | story:read | sleeperhit pitch-deck coverage <jobId> | get_storyboard_coverage |
| Generate pitch deck plan coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | POST /api/v1/pitch-decks/{jobId}/storyboard/coverage | story:write | sleeperhit pitch-deck coverage <jobId> --generate | generate_storyboard_coverage |
| Read a pitch deck's intent | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/intent | story:read | sleeperhit pitch-deck intent <jobId> | get_video_intent |
| Edit a draft pitch deck's intent | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/intent | story:write | sleeperhit 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 chapter | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/refine | story:write | sleeperhit 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 narrator | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/narrator | story:read | sleeperhit pitch-deck narrator <jobId> | get_pitch_deck_narrator |
| Cast the pitch deck narrator | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/narrator | story:write | sleeperhit pitch-deck narrator <jobId> --voice-id <voiceId> [--provider <name>] | --clear | set_pitch_deck_narrator |
| Set a pitch deck's black interludes | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/interludes | story:write | sleeperhit pitch-deck interludes <jobId> --json <list> | --file <path> | --clear | update_pitch_deck_interludes |
| Set a pitch deck's title sequence | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/title-sequence | story:write | sleeperhit 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] | --clear | update_pitch_deck_title_sequence |
| Set a pitch deck's closing sequence | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/closing-sequence | story:write | sleeperhit pitch-deck closing-sequence <jobId> [--quote <text> [--quote-attribution <source>] | --no-quote] [--coming-soon <text>] [--production-credit <text>] [--on|--off] | --clear | update_pitch_deck_closing_sequence |
| Set a pitch deck's visual grammar | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/visual-grammar | story:write | sleeperhit pitch-deck visual-grammar <jobId> [--text <words> | --file <path>] | update_pitch_deck_visual_grammar |
| Make living portraits for a pitch deck's title intros | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/title-sequence/motion-closes | artifact:publish | sleeperhit pitch-deck title-motion-closes <jobId> [--name <name>]… [--confirm] | render_pitch_deck_title_motion_closes |
| Read the pitch deck finish | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/look | story:read | sleeperhit pitch-deck look <jobId> | get_pitch_deck_look |
| Set the pitch deck finish | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/look | story:write | sleeperhit 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 blur | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/motion-blur | story:read | sleeperhit pitch-deck motion-blur <jobId> | get_pitch_deck_motion_blur |
| Set the pitch deck motion blur | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/motion-blur | story:write | sleeperhit pitch-deck motion-blur <jobId> [--chapter <chapterIndex>[:<shot>,…|moving|none]]… [--strength standard|subtle] [--off] | set_pitch_deck_motion_blur |
| Read the pitch deck quiet track | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/quiet-track | story:read | sleeperhit pitch-deck quiet-track <jobId> | get_pitch_deck_quiet_track |
| Set the pitch deck quiet track | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/quiet-track | story:write | sleeperhit pitch-deck quiet-track <jobId> --track silence|room_tone | --off | set_pitch_deck_quiet_track |
| Read the pitch deck video model | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/video-model | story:read | sleeperhit pitch-deck video-model <jobId> | get_pitch_deck_video_model |
| Set the pitch deck video model | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/video-model | story:write | sleeperhit pitch-deck video-model <jobId> --model wan3-prime|vidu-q4 | set_pitch_deck_video_model |
| List the pitch deck versions | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/versions | story:read | sleeperhit pitch-deck versions <jobId> | list_pitch_deck_versions |
| Read a pitch deck version | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/versions/{number} | story:read | sleeperhit pitch-deck version-clips <jobId> <number> [--download <dir>] | get_pitch_deck_version |
| Ask for a pitch deck version zip | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/versions/{number}/zip | story:write | sleeperhit pitch-deck version-clips <jobId> <number> --zip | request_pitch_deck_version_zip |
| Read the pitch deck camera motion | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/camera | story:read | sleeperhit pitch-deck camera <jobId> | get_pitch_deck_camera |
| Set the pitch deck camera motion | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/camera | story:write | sleeperhit 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 again | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/render-clip | artifact:publish | sleeperhit pitch-deck render-clip <jobId> --chapter <chapterIndex> [--call <callId>] [--confirm] | render_pitch_deck_chapter_clip |
| Select a take of one pitch deck call | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/select-take | story:write | sleeperhit pitch-deck select-take <jobId> --chapter <chapterIndex> --call <callId> --take <n> | select_pitch_deck_take |
| Repair one take of a pitch deck call in place | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/repair-take | artifact:publish | sleeperhit pitch-deck repair-take <jobId> --chapter <chapterIndex> --call <callId> --take <n> [--confirm] | repair_pitch_deck_take |
| Override the repair decision on one pitch deck take | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/take-repair-override | story:write | sleeperhit pitch-deck override-repair <jobId> --chapter <chapterIndex> --call <callId> --take <n> --keep|--restore|--rewatch | override_pitch_deck_take_repair |
| Trim one take of a pitch deck call | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/trim-take | story:write | sleeperhit 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 footage | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/drop-line | story:write | sleeperhit 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-over | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/stage-voice-over | artifact:publish | sleeperhit 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 chapter | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/insert | story:write | sleeperhit pitch-deck add-chapter <jobId> [--at <position> | --after <chapterIndex>] | add_pitch_deck_chapter |
| Remove a pitch deck chapter | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/remove | story:write | sleeperhit pitch-deck remove-chapter <jobId> --chapter <chapterIndex> | remove_pitch_deck_chapter |
| Put the pitch deck chapters in a new order | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/reorder | story:write | sleeperhit pitch-deck reorder-chapters <jobId> (--order <chapterIndex,...> | --move <chapterIndex> --after <chapterIndex|first>) | reorder_pitch_deck_chapters |
| Render one chapter's text layer | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/storyboard/regenerate-text | artifact:publish | sleeperhit pitch-deck regenerate-text <jobId> --chapter <chapterIndex> [--confirm] | regenerate_pitch_deck_text |
| Direct how a deck's text looks and moves | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/storyboard/direct-text-motion | story:write | sleeperhit 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 audio | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/video-export | story:write | sleeperhit pitch-deck export <jobId> | export_pitch_deck_video |
| Approve the pitch deck plan into the render | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/plan/approve | story:write | sleeperhit pitch-deck approve-plan <jobId> [--confirm] [--acknowledge-plan-coverage "<reason>"] | approve_pitch_deck_plan |
| Finish the pitch deck | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/finish | artifact:publish | sleeperhit 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 master | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/reassemble | story:write | sleeperhit pitch-deck reassemble <jobId> | reassemble_pitch_deck |
| Let one pitch deck take still out at the provider go | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/chapters/{chapterIndex}/abandon-take | artifact:publish | sleeperhit pitch-deck abandon-take <jobId> --chapter <chapterIndex> --call <callId> --take <n> | abandon_pitch_deck_take |
| Stop a pitch deck's render | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/cancel-render | artifact:publish | sleeperhit pitch-deck cancel-render <jobId> | cancel_pitch_deck_render |
| Let the deck's automatic fixes try more | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/more-fixes | artifact:publish | sleeperhit pitch-deck more-fixes <jobId> [--confirm] | allow_more_pitch_deck_fixes |
| Read pitch deck video coverage | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/video-coverage | story:read | sleeperhit pitch-deck video-coverage <jobId> | get_video_coverage |
| Cover the pitch deck video again | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/video-coverage | story:write | sleeperhit pitch-deck video-coverage <jobId> --generate | generate_video_coverage |
| Read the pitch deck delivery class | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/resolution | story:read | sleeperhit pitch-deck resolution <jobId> | get_pitch_deck_resolution |
| Choose the pitch deck delivery class | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/resolution | story:write | sleeperhit pitch-deck resolution <jobId> --resolution <720p|1080p> | --default | set_pitch_deck_resolution |
| Read a trailer's beats | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/beats | story:read | sleeperhit trailer beats <jobId> | get_trailer_beats |
| Read every trailer beat's render state and credit trail | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/render-states | story:read | sleeperhit trailer render-status <jobId> | get_trailer_render_states |
| Read the trailer narrator | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/narrator | story:read | sleeperhit trailer narrator <jobId> | get_trailer_narrator |
| Cast the trailer narrator | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/narrator | story:write | sleeperhit trailer narrator <jobId> --voice-id <voiceId> [--provider <name>] | --clear | set_trailer_narrator |
| Read the trailer aspect ratio | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/aspect | story:read | sleeperhit trailer aspect <jobId> | get_trailer_aspect |
| Choose the trailer aspect ratio | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/aspect | story:write | sleeperhit trailer aspect <jobId> <9:16|16:9|1:1> | set_trailer_aspect |
| Choose the trailer audio policy | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/audio-policy | story:write | sleeperhit trailer audio-policy <jobId> [narrate|suppress] | set_trailer_audio_policy |
| Read the trailer delivery class | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/resolution | story:read | sleeperhit trailer resolution <jobId> | get_trailer_resolution |
| Choose the trailer delivery class | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/resolution | story:write | sleeperhit trailer resolution <jobId> --resolution <720p|1080p> | --default | set_trailer_resolution |
| Read the trailer finish | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/look | story:read | sleeperhit trailer look <jobId> | get_trailer_look |
| Set the trailer finish | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/look | story:write | sleeperhit trailer look <jobId> <camera|period-35mm|night-interior|none> [--intensity light|standard|strong] [--adjust <effect>=<level>,…] | set_trailer_look |
| Read the trailer motion blur | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/motion-blur | story:read | sleeperhit trailer motion-blur <jobId> | get_trailer_motion_blur |
| Set the trailer motion blur | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/motion-blur | story:write | sleeperhit trailer motion-blur <jobId> [--beat <beatIndex>[:<shot>,…|moving|none]]… [--strength standard|subtle] [--off] | set_trailer_motion_blur |
| Read the trailer camera motion | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/camera | story:read | sleeperhit trailer camera <jobId> | get_trailer_camera |
| Set the trailer camera motion | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/camera | story:write | sleeperhit 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 track | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/quiet-track | story:read | sleeperhit trailer quiet-track <jobId> | get_trailer_quiet_track |
| Set the trailer quiet track | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/quiet-track | story:write | sleeperhit trailer quiet-track <jobId> --track silence|room_tone | --off | set_trailer_quiet_track |
| Cut a trailer beat's line out, keep the rest of its footage | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/{beatIndex}/drop-line | story:write | sleeperhit trailer drop-line <jobId> --beat <beatIndex> [--line <n>] [--keep before|after] [--to <beatIndex>] | drop_trailer_beat_line |
| Duplicate a trailer from its plan | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/duplicate | story:write | sleeperhit trailer duplicate <jobId> [--title <text>] | duplicate_trailer |
| Set a trailer's black interludes | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/interludes | story:write | sleeperhit trailer interludes <jobId> --json <list> | --file <path> | --clear | update_trailer_interludes |
| Set a trailer's closing sequence | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/closing-sequence | story:write | sleeperhit trailer closing-sequence <jobId> [--quote <text> [--quote-attribution <source>] | --no-quote] [--coming-soon <text>] [--production-credit <text>] [--on|--off] | --clear | update_trailer_closing_sequence |
| List the trailer versions | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/versions | story:read | sleeperhit trailer versions <jobId> | list_trailer_versions |
| Read a trailer version | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/versions/{number} | story:read | sleeperhit trailer version-clips <jobId> <number> [--download <dir>] | get_trailer_version |
| Ask for a trailer version zip | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/versions/{number}/zip | story:write | sleeperhit trailer version-clips <jobId> <number> --zip | request_trailer_version_zip |
| Delete a trailer | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | DELETE /api/v1/trailers/{jobId} | story:write | sleeperhit trailer delete <jobId> | delete_trailer |
| Rename a trailer | available | Writers Lab trailer list (/dashboard/writing-lab/:projectId/:scriptId/videos) | PATCH /api/v1/trailers/{jobId} | story:write | sleeperhit trailer rename <jobId> <title> [--automatic] | rename_trailer |
| Delete a pitch deck | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | DELETE /api/v1/pitch-decks/{jobId} | story:write | sleeperhit pitch-deck delete <jobId> | delete_pitch_deck |
| Rename a pitch deck | available | Writers Lab deck list (/dashboard/writing-lab/:projectId/:scriptId/videos) | PATCH /api/v1/pitch-decks/{jobId} | story:write | sleeperhit pitch-deck rename <jobId> <title> [--automatic] | rename_pitch_deck |
| Duplicate a pitch deck from its plan | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/duplicate | story:write | sleeperhit pitch-deck duplicate <jobId> [--title <text>] | duplicate_pitch_deck |
| Publish a pitch deck | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/publish | story:write | sleeperhit pitch-deck publish <jobId> | publish_pitch_deck |
| Unpublish a pitch deck | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/unpublish | story:write | sleeperhit pitch-deck unpublish <jobId> | unpublish_pitch_deck |
| Render a finished pitch deck's PDF | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/pdf | story:write | sleeperhit pitch-deck pdf <jobId> | render_pitch_deck_pdf |
| Read per-beat music and sound effects | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/storyboard/audio | story:read | sleeperhit trailer audio <jobId> | get_trailer_scene_audio |
| Score one beat's music | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/music | story:write | sleeperhit trailer music <score|update|remove|apply-library> <jobId> --beat <n> [flags] | score_trailer_scene_music |
| Place sound effects on one beat | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/sfx | story:write | sleeperhit trailer sfx <add|update|remove|apply-library> <jobId> --beat <n> [flags] | add_trailer_scene_sfx |
| Read per-scene music and sound effects | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/storyboard/audio | story:read | sleeperhit pitch-deck audio <jobId> | get_pitch_deck_scene_audio |
| Score one scene's music | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/storyboard/music | story:write | sleeperhit pitch-deck music <score|update|remove|apply-library> <jobId> --chapter <chapterIndex> [flags] | score_pitch_deck_scene_music |
| Place sound effects on one scene | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/storyboard/sfx | story:write | sleeperhit pitch-deck sfx <add|update|remove|apply-library> <jobId> --chapter <chapterIndex> [flags] | add_pitch_deck_scene_sfx |
| Read the trailer audio timeline | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/storyboard/audio-timeline | story:read | sleeperhit trailer timeline <jobId> show | get_trailer_audio_timeline |
| Edit the trailer audio timeline | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/audio-timeline | story:write | sleeperhit 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 timeline | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/storyboard/audio-timeline | story:read | sleeperhit pitch-deck timeline <jobId> show | get_pitch_deck_audio_timeline |
| Edit the pitch-deck audio timeline | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/storyboard/audio-timeline | story:write | sleeperhit 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 map | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/storyboard/sound-map | story:read | sleeperhit trailer sound-map <jobId> [--beat <n>] | get_trailer_sound_map |
| Read the pitch-deck sound map | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/storyboard/sound-map | story:read | sleeperhit pitch-deck sound-map <jobId> [--chapter <chapterIndex>] | get_pitch_deck_sound_map |
| Read the pitch deck's score to picture | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/score-to-picture | story:read | sleeperhit pitch-deck score-to-picture <jobId> show | get_pitch_deck_score_to_picture |
| Score the pitch deck to picture | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/score-to-picture | artifact:publish | sleeperhit pitch-deck score-to-picture <jobId> start [--direction <text>] [--confirm] | score_pitch_deck_to_picture |
| Revert the pitch deck to its scene beds | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/score-to-picture/revert | story:write | sleeperhit pitch-deck score-to-picture <jobId> revert | revert_pitch_deck_score_to_picture |
| Read the pitch deck's bell on the beat | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/pitch-decks/{jobId}/bell-lane | story:read | sleeperhit pitch-deck bell <jobId> show | get_pitch_deck_bell_lane |
| Strike a bell on every beat of the pitch deck | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/bell-lane | story:write | sleeperhit 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 deck | available | Writers Lab videos pitch-deck review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/pitch-decks/{jobId}/bell-lane/remove | story:write | sleeperhit pitch-deck bell <jobId> remove | remove_pitch_deck_bell_lane |
| List the sounds a project uses | available | Writers Lab project library (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId}/sounds | story:read | sleeperhit projects sounds <projectId> [--kind bell|music|sfx] [--query <text>] | list_project_sounds |
| Read the trailer's score to picture | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/score-to-picture | story:read | sleeperhit trailer score-to-picture <jobId> show | get_trailer_score_to_picture |
| Score the trailer to picture | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/score-to-picture | artifact:publish | sleeperhit trailer score-to-picture <jobId> start [--direction <text>] [--confirm] | score_trailer_to_picture |
| Revert the trailer to its scene beds | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/score-to-picture/revert | story:write | sleeperhit trailer score-to-picture <jobId> revert | revert_trailer_score_to_picture |
| Read trailer plan coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | GET /api/v1/trailers/{jobId}/storyboard/coverage | story:read | sleeperhit trailer coverage <jobId> | get_storyboard_coverage |
| Generate trailer plan coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectId/:scriptId/coverage) | POST /api/v1/trailers/{jobId}/storyboard/coverage | story:write | sleeperhit trailer coverage <jobId> --generate | generate_storyboard_coverage |
| Read a trailer's intent | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/intent | story:read | sleeperhit trailer intent <jobId> | get_video_intent |
| Edit a draft trailer's intent | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/intent | story:write | sleeperhit 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 beat | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/refine | story:write | sleeperhit 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 again | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/render-clip | artifact:publish | sleeperhit trailer render-clip <jobId> --beat <n> [--call <callId>] [--confirm] | render_trailer_beat_clip |
| Select a take of one trailer call | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/{beatIndex}/select-take | story:write | sleeperhit trailer select-take <jobId> --beat <n> --call <callId> --take <n> | select_trailer_take |
| Repair one take of a trailer call in place | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/{beatIndex}/repair-take | artifact:publish | sleeperhit trailer repair-take <jobId> --beat <n> --call <callId> --take <n> [--confirm] | repair_trailer_take |
| Override the repair decision on one trailer take | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/{beatIndex}/take-repair-override | story:write | sleeperhit trailer override-repair <jobId> --beat <n> --call <callId> --take <n> --keep|--restore|--rewatch | override_trailer_take_repair |
| Trim one take of a trailer call | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/{beatIndex}/trim-take | story:write | sleeperhit 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-over | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/{beatIndex}/stage-voice-over | artifact:publish | sleeperhit trailer stage-voice-over <jobId> --beat <n> --call <callId> --take <n> [--confirm] | stage_trailer_take_as_voice_over |
| Finish the trailer | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/finish | artifact:publish | sleeperhit trailer finish <jobId> [--resolution 720p|1080p] [--confirm] [--acknowledge-video-coverage] | finish_trailer |
| Re-assemble a trailer whose assembly failed, or rebuild its master | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/reassemble | story:write | sleeperhit trailer reassemble <jobId> | reassemble_trailer |
| Let one trailer take still out at the provider go | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/beats/{beatIndex}/abandon-take | artifact:publish | sleeperhit trailer abandon-take <jobId> --beat <beatIndex> --call <callId> --take <n> | abandon_trailer_take |
| Stop a trailer's render | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/cancel-render | artifact:publish | sleeperhit trailer cancel-render <jobId> | cancel_trailer_render |
| Let the trailer's automatic fixes try more | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/more-fixes | artifact:publish | sleeperhit trailer more-fixes <jobId> [--confirm] | allow_more_trailer_fixes |
| Read trailer video coverage | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/video-coverage | story:read | sleeperhit trailer video-coverage <jobId> | get_video_coverage |
| Cover the trailer video again | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/video-coverage | story:write | sleeperhit trailer video-coverage <jobId> --generate | generate_video_coverage |
| Move a trailer beat to another position | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/move-beat | story:write | sleeperhit trailer move-beat <jobId> --from <n> --to <n> | move_trailer_beat |
| Insert a blank trailer beat | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/insert-beat | story:write | sleeperhit trailer insert-beat <jobId> [--at <n> | --after <n>] | insert_trailer_beat |
| Remove a trailer beat | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/remove-beat | story:write | sleeperhit trailer remove-beat <jobId> --beat <n> | remove_trailer_beat |
| Read a trailer beat's earlier cuts | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/trailers/{jobId}/storyboard/takes | story:read | sleeperhit trailer takes <jobId> [--beat <n>] | get_trailer_beat_takes |
| Put an earlier cut of a beat back | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/restore-take | story:write | sleeperhit trailer restore-take <jobId> --beat <n> --url <url> | restore_trailer_take |
| Direct how a trailer beat's text moves | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/direct-text-motion | story:write | sleeperhit trailer direct-text-motion <jobId> --beat <n> --direction <text> | --closing-element quote|coming-soon|production-credit --direction <text> | --clear | direct_trailer_text_motion |
| Render one trailer text layer | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/storyboard/regenerate-text | artifact:publish | sleeperhit trailer regenerate-text <jobId> --beat <n> [--confirm] | regenerate_trailer_text |
| Re-stitch the finished trailer master | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/video-export | story:write | sleeperhit trailer export <jobId> | export_trailer_video |
| Approve the trailer plan into the render | available | Writers Lab videos trailer review (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/trailers/{jobId}/plan/approve | story:write | sleeperhit trailer approve-plan <jobId> [--confirm] [--acknowledge-plan-coverage "<reason>"] | approve_trailer_plan |
| List My-Library images | available | My Library (/dashboard/library) | GET /api/v1/library/images | story:read | sleeperhit library images [--limit N] [--cursor C] | list_my_library_images |
| List reusable My-Library audio | available | My Library (/dashboard/library) | GET /api/v1/library/audio | story:read | sleeperhit library audio list [--kind music|sfx|soundscape] [--query <text>] [--limit N] [--cursor C] | list_my_library_audio |
| Import reusable audio | available | My Library (/dashboard/library) | POST /api/v1/library/audio | story:write | sleeperhit library audio import (--file <path> | --source-url <url>) --kind <kind> --label <text> | import_my_library_audio |
| Rename a reusable audio asset | available | Writers Lab table-read sound picker (/dashboard/writing-lab/:projectId/:scriptId/table-read) | PATCH /api/v1/library/audio/{assetId} | story:write | sleeperhit library audio rename <assetId> <label> | rename_my_library_audio |
| Manage sound effects | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | POST /api/v1/artifacts/{artifactId}/sfx | artifact:publish | sleeperhit sfx add|update|remove <artifactId> | add_sfx/update_sfx/remove_sfx |
| List sound effects | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectId/:scriptId/table-read) | GET /api/v1/artifacts/{artifactId}/sfx | artifact:read | sleeperhit sfx list <artifactId> | list_sfx |
| Read the location plates | available | Writers Lab videos asset panel (/dashboard/writing-lab/:projectId/:scriptId/videos) | GET /api/v1/artifacts/{artifactId}/location-plates | artifact:read | sleeperhit locations get <artifactId> | get_location_plates |
| Remake one location plate | available | Writers Lab videos asset panel (/dashboard/writing-lab/:projectId/:scriptId/videos) | POST /api/v1/artifacts/{artifactId}/location-plates/{plateKey}/remake | artifact:publish | sleeperhit locations remake <artifactId> <plateKey> [--confirm] | remake_location_plate |
| List publishing provider config | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-provider-configs | publishing:connect | sleeperhit publishing provider-configs list | list_publishing_provider_configs |
| Upsert publishing provider config | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-provider-configs | publishing:connect | sleeperhit publishing provider-configs upsert --provider <provider> --medium <medium> | upsert_publishing_provider_config |
| Create a publishing series | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/story-projects/{projectId}/publishing-series | publishing:write | sleeperhit publishing series create <projectId> [--title <title>] | create_publishing_series |
| List publishing series | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/story-projects/{projectId}/publishing-series | publishing:read | sleeperhit publishing series list <projectId> | list_publishing_series |
| Read a publishing series | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-series/{seriesId} | publishing:read | sleeperhit publishing series get <seriesId> | get_publishing_series |
| Update a publishing series | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | PATCH /api/v1/publishing-series/{seriesId} | publishing:write | sleeperhit 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 sources | available | Writers Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/show-source-templates | publishing:read | sleeperhit publishing series templates | list_show_source_templates |
| Quote a recurring show | available | Writers Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-series/{seriesId}/quote | publishing:read | sleeperhit publishing series quote <seriesId> | get_show_quote |
| Preview a show's sources | available | Writers Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-series/{seriesId}/source-preview | publishing:read | sleeperhit publishing series preview-sources <seriesId> [--sources <json>] [--lookback-days <n>] | preview_show_sources |
| Make a show episode now (a preview until live) | available | Writers Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-series/{seriesId}/episodes | publishing:write | sleeperhit publishing series produce <seriesId> [--prompt <text>] [--episode-type <key>] [--live] [--confirm] | produce_show_episode |
| List a show's episodes | available | Writers Lab publishing — Show (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-series/{seriesId}/episodes | publishing:read | sleeperhit publishing series episodes <seriesId> | list_show_episodes |
| Generate podcast cover art | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-series/{seriesId}/generate-cover-art | publishing:write | sleeperhit publishing series generate-cover-art <seriesId> [--title <title>] [--description <text>] [--podcast-category <text>] [--podcast-subcategory <text>] | generate_publishing_cover_art |
| List publishing destinations | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-series/{seriesId}/destinations | publishing:read | sleeperhit publishing destinations list <seriesId> | list_publishing_destinations |
| Connect a publishing destination | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-series/{seriesId}/destinations | publishing:connect | sleeperhit publishing destinations upsert <seriesId> --provider rss | upsert_publishing_destination |
| List publishing releases | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-series/{seriesId}/releases | publishing:read | sleeperhit publishing releases list <seriesId> | list_publishing_releases |
| Promote an artifact into a publishing release | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-series/{seriesId}/releases | publishing:write | sleeperhit publishing releases create <seriesId> --source-artifact-id <artifactId> --title <title> | create_publishing_release |
| Read a publishing release | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-releases/{releaseId} | publishing:read | sleeperhit publishing releases get <releaseId> | get_publishing_release |
| Update publishing release metadata | available | Writers Lab publishing episode editor (/dashboard/writing-lab/:projectId/:scriptId/publishing) | PATCH /api/v1/publishing-releases/{releaseId} | publishing:write | sleeperhit publishing releases update <releaseId> [--title <title>] [--description <text>] | update_publishing_release |
| Generate a podcast episode description | available | Writers Lab publishing episode editor (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-releases/{releaseId}/description/generate | publishing:write | sleeperhit publishing releases generate-description <releaseId> [--direction <text>] | generate_publishing_release_description |
| Schedule a publishing release | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-releases/{releaseId}/schedule | publishing:publish | sleeperhit publishing releases schedule <releaseId> --at <iso> --confirm | schedule_publishing_release |
| Publish a release | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-releases/{releaseId}/publish | publishing:publish | sleeperhit publishing releases publish <releaseId> --confirm | publish_publishing_release |
| Refresh published release media | available | Writers Lab publishing episode editor (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-releases/{releaseId}/refresh-media | publishing:publish | sleeperhit publishing releases refresh-media <releaseId> --source-artifact-id <artifactId> | refresh_published_release_media |
| Cancel a publishing release | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-releases/{releaseId}/cancel | publishing:publish | sleeperhit publishing releases cancel <releaseId> | cancel_publishing_release |
| Unpublish a published release | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | POST /api/v1/publishing-releases/{releaseId}/unpublish | publishing:publish | sleeperhit publishing releases unpublish <releaseId> --confirm | unpublish_publishing_release |
| List publishing release targets | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-releases/{releaseId}/targets | publishing:read | sleeperhit publishing releases targets <releaseId> | list_publishing_release_targets |
| List publishing analytics | available | Writers Lab publishing listening numbers (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-series/{seriesId}/analytics | publishing:analytics | sleeperhit publishing analytics list <seriesId> | list_publishing_analytics |
| Read RSS feed | available | Writers Lab publishing (/dashboard/writing-lab/:projectId/:scriptId/publishing) | GET /api/v1/publishing-feeds/{seriesSlug}.xml | sleeperhit 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.