Unified UI / API / CLI / MCP operation map
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 |
| 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 |
| 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 library (/dashboard/writing-lab) | PATCH /api/v1/story-projects/{projectId} | story:write | sleeperhit projects update <projectId> [--name <text>] [--description <text>] [--metadata <json>] [--archived true|false] | update_project |
| Archive a story project | available | Writers Lab project library (/dashboard/writing-lab) | DELETE /api/v1/story-projects/{projectId} | story:write | sleeperhit projects delete <projectId> | delete_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 foundational Series Bible coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectSlug/coverage) | GET /api/v1/story-projects/{projectId}/series-bible/coverage | story:read | sleeperhit bible coverage <projectId> | get_series_bible_coverage |
| Generate foundational Series Bible coverage | available | Writers Lab coverage panel (/dashboard/writing-lab/:projectSlug/coverage) | POST /api/v1/story-projects/{projectId}/series-bible/coverage | story:write | sleeperhit bible coverage <projectId> --generate | generate_series_bible_coverage |
| Create a conversational season run | available | Writers Lab publishing (/dashboard/writing-lab/:projectSlug/publishing) | POST /api/v1/story-projects/{projectId}/season-runs | story:write | sleeperhit seasons create <projectId> | create_season_run |
| List season runs | available | Writers Lab publishing (/dashboard/writing-lab/:projectSlug/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 (/dashboard/writing-lab/:projectSlug/publishing) | GET /api/v1/season-runs/{runId} | story:read | sleeperhit seasons get <runId> | get_season_run |
| Map one season episode | available | Writers Lab publishing (/dashboard/writing-lab/:projectSlug/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 (/dashboard/writing-lab/:projectSlug/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 coverage panel (/dashboard/writing-lab/:projectSlug/coverage) | 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 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 |
| 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 | 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 workflow (/dashboard/writing-lab) | GET /api/v1/story-projects/{projectId}/story-plans | story:read | sleeperhit plans list <projectId> | list_plans |
| Read a StoryPlan | available | Writers Lab project workflow (/dashboard/writing-lab) | GET /api/v1/story-plans/{planId} | story:read | sleeperhit plans get <planId> | get_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 workflow (/dashboard/writing-lab) | POST /api/v1/story-plans/{planId}/approve | story:write | sleeperhit plans approve <planId> --confirm | approve_plan |
| Reject a StoryPlan | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/story-plans/{planId}/reject | story:write | sleeperhit plans reject <planId> | reject_plan |
| Create a story job | available | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/story-jobs | story:write | sleeperhit jobs create <planId> | 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 | Writers Lab project workflow (/dashboard/writing-lab) | POST /api/v1/story-jobs/{jobId}/cancel | story:write | sleeperhit jobs cancel <jobId> | cancel_job |
| Resume a story job | available | Writers Lab project workflow (/dashboard/writing-lab) | 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 |
| Render a table-read video | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/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/:projectSlug/table-read) | GET /api/v1/artifacts/{artifactId}/render-video | artifact:read | sleeperhit artifacts render-status <artifactId> | get_artifact_share |
| 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..15>] [--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..15>] | 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 |
| Refine a table read | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/table-read) | POST /api/v1/artifacts/{artifactId}/refine | artifact:publish | sleeperhit refine <artifactId> <instruction...> | refine_artifact |
| Finalize a durable MP3 or MP4 | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/table-read) | POST /api/v1/artifacts/{artifactId}/finalize | artifact:publish | sleeperhit finalize <artifactId> --mode audio|video | finalize_artifact |
| Retry a failed durable MP3 finalize | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/table-read) | POST /api/v1/artifacts/{artifactId}/script | artifact:publish | sleeperhit script replace <artifactId> --file <path> [--instruction <text>] [--narration-policy include|suppress] [--defer-music] | replace_artifact_script |
| Read script content by page | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/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/:projectSlug/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/:projectSlug/table-read) | GET /api/v1/artifacts/{artifactId}/script | artifact:read | sleeperhit script character <artifactId> <character...> | get_character_lines |
| Recast a character voice | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/table-read) | POST /api/v1/artifacts/{artifactId}/voice | artifact:publish | sleeperhit voice set <artifactId> --character <c> --voice-id <id> --voice-name <name> | recast_voice |
| Regenerate a character avatar | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/table-read) | POST /api/v1/artifacts/{artifactId}/avatar | artifact:publish | sleeperhit avatar set <artifactId> --character <c> [--refine <text>] [--style <style>] | recast_avatar |
| Update the cast (voices + avatars) | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/table-read) | POST /api/v1/artifacts/{artifactId}/cast | artifact:publish | sleeperhit cast update <artifactId> --json '<entries-or-{entries,avatarStyle}>' (cast-wide restyle: sleeperhit cast restyle <artifactId> --style <s>) | update_cast |
| Read the enriched cast | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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>] [--scope screenplay|scene|entry] [--mode merge|replace] | update_music |
| Read scene music status | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/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/:projectSlug/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/:projectSlug/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 |
| 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 |
| 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 storyboard | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/pitch-decks/{jobId}/storyboard | story:read | sleeperhit pitch-deck storyboard <jobId> | get_pitch_deck_storyboard |
| Refine one storyboard frame | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/pitch-decks/{jobId}/storyboard/refine | story:write | sleeperhit pitch-deck refine <jobId> --chapter <n> [--image-prompt <text>] [--transition-prompt <text>] [--motion-prompt <text>] [--composition image|text|both] [--caption <text>] [--text-treatment <text>] [--text-mode voiceover|caption] [--narration <text>] [--narration-voice <id>] [--duration <4..15>] | refine_pitch_deck_frame |
| Re-render one storyboard still | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/pitch-decks/{jobId}/storyboard/regenerate | artifact:publish | sleeperhit pitch-deck regenerate <jobId> --chapter <n> | regenerate_pitch_deck_frame |
| Re-render one storyboard motion clip | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/pitch-decks/{jobId}/storyboard/regenerate-clip | artifact:publish | sleeperhit pitch-deck regenerate-clip <jobId> --chapter <n> | regenerate_pitch_deck_clip |
| Re-render one storyboard text layer | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/pitch-decks/{jobId}/storyboard/regenerate-text | artifact:publish | sleeperhit pitch-deck regenerate-text <jobId> --chapter <n> | regenerate_pitch_deck_text |
| Approve the pitch deck storyboard | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/pitch-decks/{jobId}/storyboard/approve | story:write | sleeperhit pitch-deck approve-storyboard <jobId> | approve_pitch_deck_storyboard |
| Approve the pitch deck draft | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/pitch-decks/{jobId}/draft/approve | story:write | sleeperhit pitch-deck approve-draft <jobId> | approve_pitch_deck_draft |
| Swap a storyboard still from My Library | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/pitch-decks/{jobId}/storyboard/swap-library | story:write | sleeperhit pitch-deck swap-library <jobId> --chapter <n> --image-id <id> | swap_pitch_deck_frame_from_library |
| Apply a scene component to a pitch deck | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/pitch-decks/{jobId}/storyboard/apply-component | story:write | sleeperhit pitch-deck apply-component <jobId> --component-id <id> [--chapter <n>] [--placement start|end|<n>] [--values <json>] | apply_scene_component_to_pitch_deck |
| Read a trailer storyboard | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/trailers/{jobId}/storyboard | story:read | sleeperhit trailer storyboard <jobId> | get_trailer_storyboard |
| Refine one trailer beat | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/trailers/{jobId}/storyboard/refine | story:write | sleeperhit trailer refine <jobId> --beat <n> [--image-prompt <text>] [--transition-prompt <text>] [--motion-prompt <text>] [--caption <text>] [--duration <4..15>] | refine_trailer_frame |
| Re-render one trailer still | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/trailers/{jobId}/storyboard/regenerate | artifact:publish | sleeperhit trailer regenerate <jobId> --beat <n> | regenerate_trailer_frame |
| Re-render one trailer motion clip | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/trailers/{jobId}/storyboard/regenerate-clip | artifact:publish | sleeperhit trailer regenerate-clip <jobId> --beat <n> | regenerate_trailer_clip |
| Re-render one trailer text layer | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/trailers/{jobId}/storyboard/regenerate-text | artifact:publish | sleeperhit trailer regenerate-text <jobId> --beat <n> | regenerate_trailer_text |
| Approve the trailer storyboard | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/trailers/{jobId}/storyboard/approve | story:write | sleeperhit trailer approve-storyboard <jobId> | approve_trailer_storyboard |
| Approve the trailer draft | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/trailers/{jobId}/draft/approve | story:write | sleeperhit trailer approve-draft <jobId> | approve_trailer_draft |
| Swap a trailer still from My Library | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/trailers/{jobId}/storyboard/swap-library | story:write | sleeperhit trailer swap-library <jobId> --beat <n> --image-id <id> | swap_trailer_frame_from_library |
| Apply a scene component to a trailer | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/trailers/{jobId}/storyboard/apply-component | story:write | sleeperhit trailer apply-component <jobId> --component-id <id> [--beat <n>] [--placement start|end|<n>] [--values <json>] | apply_scene_component_to_trailer |
| List My-Library images | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/library/images | story:read | sleeperhit library images | list_my_library_images |
| List reusable My-Library audio | available | Writers Lab (/dashboard/writing-lab) | GET /api/v1/library/audio | story:read | sleeperhit library audio list [--kind music|sfx|soundscape] [--query <text>] | list_my_library_audio |
| Import reusable audio | available | Writers Lab (/dashboard/writing-lab) | POST /api/v1/library/audio | story:write | sleeperhit library audio import (--file <path> | --source-url <url>) --kind <kind> --label <text> | import_my_library_audio |
| Manage sound effects | available | Writers Lab table-read studio (/dashboard/writing-lab/:projectSlug/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/:projectSlug/table-read) | GET /api/v1/artifacts/{artifactId}/sfx | artifact:read | sleeperhit sfx list <artifactId> | list_sfx |
| List publishing provider config | available | Writers Lab publishing (/dashboard/writing-lab/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/publishing) | PATCH /api/v1/publishing-series/{seriesId} | publishing:write | sleeperhit publishing series update <seriesId> [--title <title>] [--status <status>] | update_publishing_series |
| Generate podcast cover art | available | Writers Lab publishing (/dashboard/writing-lab/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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/:projectSlug/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 (/dashboard/writing-lab/:projectSlug/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 (/dashboard/writing-lab/:projectSlug/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/:projectSlug/publishing) | POST /api/v1/publishing-releases/{releaseId}/schedule | publishing:publish | sleeperhit publishing releases schedule <releaseId> --at <iso> | schedule_publishing_release |
| Publish a release | available | Writers Lab publishing (/dashboard/writing-lab/:projectSlug/publishing) | POST /api/v1/publishing-releases/{releaseId}/publish | publishing:publish | sleeperhit publishing releases publish <releaseId> | publish_publishing_release |
| Refresh published release media | available | Writers Lab publishing (/dashboard/writing-lab/:projectSlug/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/:projectSlug/publishing) | POST /api/v1/publishing-releases/{releaseId}/cancel | publishing:publish | sleeperhit publishing releases cancel <releaseId> | cancel_publishing_release |
| List publishing release targets | available | Writers Lab publishing (/dashboard/writing-lab/:projectSlug/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 (/dashboard/writing-lab/:projectSlug/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/:projectSlug/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.