# BitterClip > BitterClip turns a recorded conversation into a finished episode and the clips from it. It transcribes every word tied to the moment it was spoken, reads the whole session, and its built-in agent makes the cut; you direct it in plain words or by editing the transcript, and every cut resolves against the audio. It runs in the browser at app.bitterclip.com; ChatGPT and Claude can operate the same workbench through an optional connection. The model is Recording → Episode → Clip: a Recording is a raw uploaded source; an Episode is one stitched transcript timeline (one or more recordings) and the unit you work in; a Clip is an editable cut derived from an episode. A Render attempts to make media; an Export is one completed exact version. A Moment saves intent for review, not an Episode. BitterClip is a product of SheetGenius, Inc. (https://company.sheetgenius.com), the company that operates the service and is named in its terms and privacy policy. Support: hello@bitterclip.com. ## Plans - There is no free plan. Creator is $1 for 7 days, then $24/month: 10 hours of footage a month; $10 of AI agent use a month; The whole editor for your own ChatGPT, Claude or Codex (63 tools); Live Studio: you and one guest, a separate 720p video of each, up to 75 minutes; Clean exports, files up to 4 GB. The $1 trial covers one recording up to two hours and $5 of AI agent use, card required, with watermarked exports. Studio and clean exports start on a paid plan. - Producer is $99/month: Everything in Creator; 40 hours of footage a month; $40 of AI agent use a month; Async recording: one link, up to 25 people, no account needed; Priority rendering, files up to 20 GB. - How BitterClip makes money: From the subscription, by building a good workbench, not by reselling AI. The built-in agent costs what OpenRouter billed for each request plus a flat 15%, which covers OpenRouter's fees, card processing and requests that fail after they're billed. Your own ChatGPT or Claude can run the whole editor on the plan you already pay for. We run the company lean, so the subscription is enough. People pick the built-in agent's model, from low-cost models to the strongest, and can top up agent work in exact $20, $50 or $100 amounts. - ChatGPT, Claude or Codex can run the whole editing workbench over MCP (63 tools, listed at https://bitterclip.com/docs/assistants/tool-reference), on the AI plan the person already pays for. That doesn't draw on BitterClip's included agent use, which pays for the built-in agent. ## Comparisons - [Compare BitterClip](https://bitterclip.com/compare): Head-to-head comparisons with recording tools, editors, and clip generators, each with a short answer, a job-by-job table, and fine print from the other tool's own pages. - [BitterClip vs CapCut: Phone Edits vs Finished Episodes](https://bitterclip.com/compare/capcut): CapCut is a free phone editor built for short videos. BitterClip turns long recorded conversations into finished episodes and clips. Choose BitterClip if you record long conversations and every one has to become an episode plus clips; choose CapCut if you make short videos on your phone and want templates, effects, and one tap to TikTok. - [BitterClip vs Captions: Finish the Whole Session](https://bitterclip.com/compare/captions): Captions styles short vertical videos shot on your phone. BitterClip turns a whole recorded session into a finished episode and the clips you choose. Choose BitterClip if you record long conversations, and each one needs an episode plus clips; choose Captions if you shoot short vertical video on an iPhone, or want an avatar presenting for you. - [BitterClip vs Descript: One Session In, Episode and Clips Out](https://bitterclip.com/compare/descript): Descript records and edits every kind of video in one app. BitterClip's agent turns each recording into a finished episode and clips, and your own ChatGPT or Claude can run the whole editor. Choose BitterClip if every session has to come out as an episode plus vertical clips; choose Descript if you want recording, screen capture and editing in one app, or voice cloning to patch lines. - [BitterClip vs Kapwing: Long Recordings or Social Video?](https://bitterclip.com/compare/kapwing): Kapwing is a browser studio where a team makes short social video from prompts and templates. BitterClip turns long recordings into finished episodes and clips. Choose BitterClip if your videos start as a long recording that has to become an episode plus clips; choose Kapwing if your videos start as a prompt or template, with two or three people editing together. - [BitterClip vs Klap: Control After the First Cut](https://bitterclip.com/compare/klap): Klap turns a link into a stack of shorts, fast. BitterClip turns the whole recording into a finished episode and clips you can keep editing. Choose BitterClip if you want the whole recording finished, and you'd rather direct the edit than pick from a new stack; choose Klap if you want a stack of shorts from one link with little effort, posted to four platforms on a schedule. - [BitterClip vs Munch: Clipping Tool or Social Suite?](https://bitterclip.com/compare/munch): Munch writes your social posts and publishes them across five platforms. BitterClip turns your recordings into finished episodes and clips you can keep editing. Choose BitterClip if you came for the clips and want to edit them, not generate new ones; choose Munch if you want AI to write your posts and publish them to five platforms on a schedule. - [BitterClip vs OpusClip: The Clips You Ask For, Plus the Episode](https://bitterclip.com/compare/opus-clip): OpusClip turns one long video into a stack of captioned shorts. BitterClip makes the clips you ask for, plus the full episode. Choose BitterClip if you'd rather say what each clip should be, and you want the full episode too; choose OpusClip if you want ten captioned vertical clips by Friday, posted for you, without touching a timeline. - [BitterClip vs Podcastle: Remote Guests or Finished Episodes](https://bitterclip.com/compare/podcastle): Podcastle (now called Async) records up to ten people and hosts your audio show. BitterClip turns each session into a finished video episode and clips. Choose BitterClip if the finished thing is a video episode plus clips, not just cleaner audio; choose Podcastle if you record several remote guests at once, or your audio show needs hosting and a feed. - [BitterClip vs Riverside: Recording Is Half the Job](https://bitterclip.com/compare/riverside): Riverside records big remote panels in up to 4K. BitterClip records you and a guest, then turns the session into a finished episode and clips. Choose BitterClip if finishing the episode is the part you dread, or you collect answers from one link; choose Riverside if you record big remote panels in 4K, or want podcast hosting in the same place. - [BitterClip vs Submagic: Clips or Whole Recordings?](https://bitterclip.com/compare/submagic): Submagic styles a short clip with animated caption templates in minutes. BitterClip turns a whole recording into a finished episode plus vertical clips. Choose BitterClip if you record whole conversations and each needs an episode plus vertical clips; choose Submagic if your footage is already short and you want it captioned and posted today. - [BitterClip vs VEED: Toolbox or Workshop?](https://bitterclip.com/compare/veed): VEED handles many different video jobs in one browser tab. BitterClip does one job, every week: a recording in, a finished episode and clips out. Choose BitterClip if you record the same kind of session every week and it has to come out finished; choose VEED if your month is many different video jobs: subtitles, a dub, a captioned ad, a screen walkthrough. - [BitterClip vs Vizard: The Whole Episode, Not Just the Clips](https://bitterclip.com/compare/vizard): Vizard turns one upload into 30+ captioned clips for very little money. BitterClip finishes the whole recording: the episode, then the clips. Choose BitterClip if each recording has to leave finished: the full episode, then the clips you direct; choose Vizard if you want a batch of captioned clips from every upload, posted on a schedule to six platforms. - [BitterClip vs Zoom: Record the Conversation, Not the Call](https://bitterclip.com/compare/zoom): Zoom records the meeting. BitterClip records a separate video of each person and hands you the episode, ready to edit. Choose BitterClip if the call is going to become an episode, clips, or something you send a client; choose Zoom if the meeting itself is the point, or more than two people are on it. ## Install - [Connect BitterClip](https://bitterclip.com/connect): the page for people. One-click setup for Claude, ChatGPT, Claude Code and Codex, with live connection status when signed in. - [Install BitterClip in Claude Code or Codex](https://bitterclip.com/docs/assistants/install): instructions an agent follows to install, have the person sign in, verify and hand off. Use it for any request to install BitterClip, including "Read https://bitterclip.com/docs/assistants/install and follow it exactly to install BitterClip, then tell me how to start." - MCP server: https://app.bitterclip.com/mcp (streamable HTTP with OAuth sign-in; never paste a token). - Optional editing skills: https://github.com/sheetgenius/bitterclip-plugin ## Getting started - [BitterClip docs](https://bitterclip.com/docs): Finished episodes and clips from the conversations you record, made with the agent built into the editor. Start here. - [What is BitterClip?](https://bitterclip.com/docs/getting-started/what-is-bitterclip): A plain introduction to BitterClip, the Recording → Episode → Clip model, and how a clip gets made. - [Use the built-in agent](https://bitterclip.com/docs/getting-started/use-the-built-in-agent): Open an Episode, say what you want in plain words, and direct the cut until it is right. Nothing to connect. - [Your first clip](https://bitterclip.com/docs/getting-started/your-first-clip): Sign up, upload a recording, and get your first captioned clip out, start to finish, in the browser. - [Projects and collaborators](https://bitterclip.com/docs/getting-started/projects-and-collaborators): What a project is, how to switch between projects, and how to invite an editor, reviewer, or client to work alongside you. - [Import a Zoom cloud recording](https://bitterclip.com/docs/getting-started/import-zoom-cloud-recording): Check Zoom import configuration, record a meeting to the cloud, follow it into BitterClip, and verify the Episode before deleting the original. - [Import your YouTube archive](https://bitterclip.com/docs/getting-started/import-youtube-takeout): Export videos you uploaded with Google Takeout, then bring the ZIP files into BitterClip as source-linked Episodes. - [Find and share your clips](https://bitterclip.com/docs/getting-started/find-and-share-clips): Where your finished clips live, how to download the MP4, and how to share a clip as a link people can play anywhere. ## Use it from your AI assistant - [Use BitterClip from your AI assistant](https://bitterclip.com/docs/assistants/overview): Connect Claude or ChatGPT to browse and work with BitterClip; editing support depends on the host plan. - [Connect ChatGPT](https://bitterclip.com/docs/assistants/connect-chatgpt): Add BitterClip to ChatGPT as a custom app in Developer mode, check the connection, then make your first clip. - [Connect Claude](https://bitterclip.com/docs/assistants/connect-claude): Add BitterClip to Claude as a Connector and review your first source-backed clip. - [Install BitterClip in Claude Code or Codex](https://bitterclip.com/docs/assistants/install): Instructions an AI agent follows to connect BitterClip in Claude Code or Codex, have the person sign in, verify, and hand off to editing. - [BitterClip tool reference](https://bitterclip.com/docs/assistants/tool-reference): The 63 default model tools captured from the serving product. - [App-only MCP tools](https://bitterclip.com/docs/assistants/app-only-tools): The 49 app-only tools available for MCP hosts to list. - [recordings_list MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_list): Lists standalone recordings (raw source media): the drawer, not the editorial unit. Use this for source/ingest/readiness asks ("latest searchable session", - [projects_list MCP tool](https://bitterclip.com/docs/assistants/tools/projects_list): Lists or finds BitterClip projects/shows visible to this person, including projects shared with them. It resolves a named show/project, a project shared by - [account_context_get MCP tool](https://bitterclip.com/docs/assistants/tools/account_context_get): Reads the owner's optional studio-wide working context: one bounded paragraph of standing context that spans Projects (who the studio is, recurring audienc - [account_context_set MCP tool](https://bitterclip.com/docs/assistants/tools/account_context_set): Confirms the owner's optional studio-wide working context: one bounded paragraph of standing context that spans Projects. Owner-only: guests and non-owner - [project_brief_set MCP tool](https://bitterclip.com/docs/assistants/tools/project_brief_set): Confirms the Project's working brief: the durable steering text every host and ingest synthesis reads for this Project (what to make, tone, audience, what - [project_participants_read MCP tool](https://bitterclip.com/docs/assistants/tools/project_participants_read): Reads a Project's opt-in visible-person recognition, exact representative images, saved reviews and background match status. Empty-gallery groups can be na - [project_participants_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/project_participants_mutate): Studio-owner operation for Project-scoped face recognition. enable requires explicit participant permission and expected_consent_revision from a fresh read - [transcript_search MCP tool](https://bitterclip.com/docs/assistants/tools/transcript_search): Searches what was SAID across the library using approximate time-anchored transcript units, saved moments, and Episode descriptions/chapters; visual annota - [recordings_create_from_url MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_create_from_url): Use this to programmatically add a media file to BitterClip without the web UI. The caller provides a fetchable URL; BitterClip validates that the URL is p - [recordings_request_upload MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_request_upload): Use this when an agent has a local audio or video file and needs to upload it programmatically. Returns a short-lived direct-to-storage upload grant: eithe - [recordings_finalize_upload MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_finalize_upload): Use this after uploading bytes to a grant from recordings_request_upload. Finalizes the storage object into a BitterClip recording and starts transcription - [recordings_abort_upload MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_abort_upload): Cancels an unfinished direct recording upload grant after a failed local-file upload attempt, cleaning up stale multipart uploads. - [open_uploader MCP tool](https://bitterclip.com/docs/assistants/tools/open_uploader): Use this when the user wants to add a local audio or video recording to BitterClip. Returns a shareable, token-gated upload link (a hosted drop-zone page) - [upload_link_create MCP tool](https://bitterclip.com/docs/assistants/tools/upload_link_create): Creates a hosted BitterClip upload link for local audio or video files. Use this when the user wants a link or another camera operator will contribute late - [recordings_prepare_preview MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_prepare_preview): Idempotently prepares or repairs the browser-playable preview for an existing video recording. Repeating the call while repair is active reuses that work. - [recordings_retranscribe MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_retranscribe): Re-runs transcription + speaker diarization (pyannote) on an EXISTING recording. It recovers speaker labels when a recording shows everyone as one unnamed - [recordings_update MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_update): Use this when the user wants to rename a BitterClip recording or set/replace its description or chapters. Video visual analysis is automatic; audio-only re - [recordings_get_speaker_evidence MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_get_speaker_evidence): Reads the first-class speaker evidence for a recording. Returns one row per diarized speaker track, profile bindings, confirmation state, voiceprint/transc - [recordings_get_person_detections MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_get_person_detections): Reads raw person-detection evidence for one source-time window of a recording. Returns detector boxes normalized to the recording's display frame, each wit - [recordings_visual_identity_read MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_visual_identity_read): Reads saved exact-image answers, current native background work, capability limits and guarded recovery actions. Optional contextual image questions includ - [recordings_visual_identity_undo MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_visual_identity_undo): Appends a guarded withdrawal of the current exact-image answer, or restore the answer it corrected. Preserves newer and unrelated answers. The durable Undo - [recordings_visual_identity_retry MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_visual_identity_retry): Retries only native application of the current saved image answer. Preserves the answer and starts no recognition, transcription or render provider work. E - [recordings_visual_identity_decide MCP tool](https://bitterclip.com/docs/assistants/tools/recordings_visual_identity_decide): Records one source-current human answer about the exact visible person marked in one Recording frame. Yes confirms only the displayed face-to-person propos - [speaker_rename MCP tool](https://bitterclip.com/docs/assistants/tools/speaker_rename): Relabels one diarized speaker track inside a recording or that recording's episode-of-one, without confirming identity, creating a SpeakerProfile, or enrol - [compositions_assemble_score MCP tool](https://bitterclip.com/docs/assistants/tools/compositions_assemble_score): UI helper for the composition editor: assemble an ordered set of (recording, start, end) segments into ONE continuous transcript score — the words from eve - [compositions_save_draft MCP tool](https://bitterclip.com/docs/assistants/tools/compositions_save_draft): Durably persists an Episode or Clip's overlays, settings (aspect ratio, captions) and copy (title, description, chapters), each under the optional draft-re - [angle_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/angle_mutate): One camera-angle change per call: hide, show, trim, nudge, or remove. A camera is positioned by its footage session's clock, so there is no action that mov - [capture_session_create MCP tool](https://bitterclip.com/docs/assistants/tools/capture_session_create): Creates a project-scoped Footage session for a bucket of recordings captured across one real-world period. The session starts without a master recording, r - [capture_session_read MCP tool](https://bitterclip.com/docs/assistants/tools/capture_session_read): Reads the evidence-backed Footage-session manifest. Returns source facts, typed observations, solve receipts, exact capture-time gaps and overlaps, source/ - [capture_session_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/capture_session_mutate): One footage-session change per call: add_recordings, camera_group_set, listening_reference_set, remove_recording, set_recording_start, or retry_analysis. a - [capture_session_build_episode MCP tool](https://bitterclip.com/docs/assistants/tools/capture_session_build_episode): Revision-guarded projection of a settled footage-session chronology into its ordinary editable episode. Collapses real idle gaps, chooses a deterministic c - [episode_camera_group_set MCP tool](https://bitterclip.com/docs/assistants/tools/episode_camera_group_set): Explicitly assigns synchronized camera angles in one editable Episode to a stable camera group: a new opaque group when camera_group_key is omitted, an exi - [camera_program_set MCP tool](https://bitterclip.com/docs/assistants/tools/camera_program_set): Performs exactly one Picture Program command without changing Program Audio, transcript timing, Episode chronology, or duration. Requires the current revis - [music_cue_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/music_cue_mutate): Adds, moves, trims, replaces, mutes, removes, or restores one music cue in an Episode. Requires the Episode's current revision from episode_read. Each cue - [speaker_title_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/speaker_title_mutate): Adds, revises, hides, removes, or restores one sparse professional speaker label in an Episode. Requires the Episode's current revision from episode_read. - [audio_program_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/audio_program_mutate): One Program-audio change per call: set, pin_set, treatment_set, or revert. This controls source audio only; it does not add, mix, lower, or duck background - [compositions_get_draft MCP tool](https://bitterclip.com/docs/assistants/tools/compositions_get_draft): Restores the saved working draft when the editor opens (so prior trims/cuts come back after a reload), by recording_id for the per-recording draft or by co - [help MCP tool](https://bitterclip.com/docs/assistants/tools/help): Returns BitterClip help: discovery with no input, short sourced passages for a natural-language question, or the page at an exact bitterclip://docs URI. Co - [speakers_list MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_list): Lists the people BitterClip remembers for this account, with per-person recording/word/voiceprint counts, first/last-seen dates, and review flags. filter=a - [speakers_get MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_get): Reads one remembered person, including names, saved voice examples, project names, merge history, and appearance counts. With project_id, it also reports t - [speakers_search MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_search): Searches people by name, alias, slug, or project presentation name, resolving similar names before the user is asked to choose. - [speakers_get_appearances MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_get_appearances): Reads a person's current Recording voices, saved answers with lost placement, and editorial Moments. Each voice carries its current identity state, source - [speakers_review_read MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_review_read): One speaker review read per call. kind:requests lists open account-owner speaker review requests — a read-only queue of possible duplicate people for a hum - [speakers_avatar_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_avatar_mutate): One profile-photo change per call: set_from_reference is the profile-picture chooser — it copies one cropped reference-gallery candidate (from speakers_lis - [speakers_track_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_track_mutate): One diarized-track change per call, scoped to the recording (a bare id resolves as a recording). withdraw_answer withdraws one saved human answer and its d - [speakers_profile_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_profile_mutate): One account-level person governance change per call. merge applies an explicitly reviewed duplicate merge (moves bindings, aliases, and saved voice example - [speakers_list_avatar_candidates MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_list_avatar_candidates): App-only repair helper. Lists the current profile photo, prior profile-photo history, and the cropped reference-gallery candidates a human can choose from. - [speakers_merge_preview MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_merge_preview): Previews a proposed duplicate-speaker merge before any profile is changed. Returns the recommended survivor, what would move, and the artifacts that will n - [speakers_set_project_presentation MCP tool](https://bitterclip.com/docs/assistants/tools/speakers_set_project_presentation): Sets how one remembered person appears inside a project: display name, export name, role, visibility, order, and short bio. This does not rename transcript - [moments_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/moments_mutate): One moment change per call: create, update_label, adjust_range, or set_state. create saves a moment on the recording from an explicit time range or transcr - [open_workspace MCP tool](https://bitterclip.com/docs/assistants/tools/open_workspace): App-only read. Opens a Project handoff or an existing Episode/Clip in the shared BitterClip workspace without creating or changing saved state. Ordinary ag - [workspace_open MCP tool](https://bitterclip.com/docs/assistants/tools/workspace_open): Read-only. Requires exact target_type + target_id from prior discovery; it is not a discovery tool, and a Project is not a route to a named Episode/Clip. P - [review_points_place MCP tool](https://bitterclip.com/docs/assistants/tools/review_points_place): Saves 1–20 source-backed, reviewable Moments on one existing Episode, then opens the same workspace. If exactly one placement succeeds, it is focused; mult - [identity_read_account MCP tool](https://bitterclip.com/docs/assistants/tools/identity_read_account): App-only account FX read. Returns the account-wide brand name, starter/owned brand options, saved Signature library rows, and the new-project Signature def - [identity_read_project MCP tool](https://bitterclip.com/docs/assistants/tools/identity_read_project): App-only Brand Studio read. Returns the project default reel identity pack, apply receipt, prewarm status, selectable presets/cut styles, account-scoped mu - [fx_template_preview MCP tool](https://bitterclip.com/docs/assistants/tools/fx_template_preview): App-only, provider-free preview of one checked-in opener or outro template using its exact supported details. Returns the canonical renderer HTML without c - [identity_brand_update MCP tool](https://bitterclip.com/docs/assistants/tools/identity_brand_update): App-only Brand Studio write. Sets the account's brand display name — the starter-brand wordmark shown in FX previews, Signature Studio start points, and re - [identity_account_defaults_update MCP tool](https://bitterclip.com/docs/assistants/tools/identity_account_defaults_update): App-only account FX write. Sets or clears the account-wide Signature defaults that new projects inherit. opener_library_entry_id/outro_library_entry_id poi - [identity_assets_list MCP tool](https://bitterclip.com/docs/assistants/tools/identity_assets_list): Lists the saved Signature assets available in a project context: account-library opener entries, outro entries, cut-style entries, a compact curated identi - [identity_asset_ingest MCP tool](https://bitterclip.com/docs/assistants/tools/identity_asset_ingest): Ingests an image/logo/texture from HTTPS or base64 into the account's asset library. Without project_id it serves account authoring; an accessible Project - [brand_pack_write MCP tool](https://bitterclip.com/docs/assistants/tools/brand_pack_write): Creates or updates an account-scoped brand pack for an accessible Project: wordmark, organization, palette, fonts, tagline and optional ingested logo. Acco - [fx_studio_open MCP tool](https://bitterclip.com/docs/assistants/tools/fx_studio_open): Opens the live FX Studio creative workbench, optionally on a saved scene. The same view updates as its actual HTML/CSS/JavaScript source changes through sc - [fx_studio_read MCP tool](https://bitterclip.com/docs/assistants/tools/fx_studio_read): App-only account effect library and current scene state. include_source adds the exact immutable source/context/asset snapshot for contained browser execut - [scene_write MCP tool](https://bitterclip.com/docs/assistants/tools/scene_write): Creates or replaces a complete programmable effect, not a fixed-template parameter preset. It takes an ES module exporting scene with id, mount(ctx), reset - [scene_read MCP tool](https://bitterclip.com/docs/assistants/tools/scene_read): Reads a saved scene's source verbatim, its revision/hash, settings and version history. Without project_id it reads the caller's own account. Optional revi - [scene_edit MCP tool](https://bitterclip.com/docs/assistants/tools/scene_edit): Applies a literal string replacement to the current scene source. Requires expected_revision plus expected_sha256 from scene_read. old_string must match ex - [scene_preview MCP tool](https://bitterclip.com/docs/assistants/tools/scene_preview): Renders exact frames of a saved scene in a contained browser and returns real MCP PNG images. The snapshot binds source revision, settings, assets and runt - [identity_apply_to_project MCP tool](https://bitterclip.com/docs/assistants/tools/identity_apply_to_project): Model-visible Signature apply for saving authored or selected Brand Studio defaults. Saves project defaults as account-library refs for NEW highlight reels - [identity_library_remove MCP tool](https://bitterclip.com/docs/assistants/tools/identity_library_remove): App-only Brand Studio delete lifecycle. Removes an account-owned saved Signature asset or music bed from the library. If the removed asset is currently a p - [identity_part_promote_to_brand MCP tool](https://bitterclip.com/docs/assistants/tools/identity_part_promote_to_brand): App-only explicit promotion for an already-inserted opener/outro object. Reads the addressed Program occurrence, promotes its preset params and gain to the - [identity_prewarm_project MCP tool](https://bitterclip.com/docs/assistants/tools/identity_prewarm_project): App-only explicit retry/prep for a project's current Brand Studio identity. Reuses the existing IdentityMomentBake source-backed opener/outro path and neve - [identity_music_beds_list MCP tool](https://bitterclip.com/docs/assistants/tools/identity_music_beds_list): App-only Brand/Music Studio library read. Returns a terse index of account-owned music beds (plus global samples): title, generation prompt, provider, dura - [identity_music_beds_curate MCP tool](https://bitterclip.com/docs/assistants/tools/identity_music_beds_curate): App-only account Music Library curation. Renames, favorites, tags, archives, rejects, or restores a reusable track without deleting its audio or changing e - [music_library_cue_handoff MCP tool](https://bitterclip.com/docs/assistants/tools/music_library_cue_handoff): App-only durable handoff from a Timeline music range to the account Music Library. Open stores revision and elastic range facts in a server receipt; apply - [transcript_words_window MCP tool](https://bitterclip.com/docs/assistants/tools/transcript_words_window): App/internal read-only semantic locator for a small set of transcript lines on a RAW recording (the drawer, not an episode). Word annotations are approxima - [episode_read MCP tool](https://bitterclip.com/docs/assistants/tools/episode_read): Reads an EPISODE (comp_...) as stitched transcript prose with inline navigation hints, visual evidence, segment manifest, speaker legend (per-speaker word - [episode_zoom MCP tool](https://bitterclip.com/docs/assistants/tools/episode_zoom): Inspects chosen cut boundaries: at most 6 windows per call, each <=12 seconds (typically 5–6), and at most 4 measured edges TOTAL across all windows. Broad - [episode_framing_guidance MCP tool](https://bitterclip.com/docs/assistants/tools/episode_framing_guidance): Reads bounded, source-time framing EVIDENCE for up to 12 named source-backed occurrences in an Episode or Clip. Per occurrence: crop_window arithmetic for - [episode_subject_presence MCP tool](https://bitterclip.com/docs/assistants/tools/episode_subject_presence): App-only read of who is visually on screen across one bounded EPISODE-time window, as intervals rather than detections. Each interval reports both episode - [episode_sample_frames MCP tool](https://bitterclip.com/docs/assistants/tools/episode_sample_frames): Samples up to 4 explicit episode-time points, or up to 8 deterministic frames inside one <=30s EPISODE region (longer spans: multiple windows) — pixel evid - [recording_sample_frames MCP tool](https://bitterclip.com/docs/assistants/tools/recording_sample_frames): Inspects raw Recording pixels directly on the recording's SOURCE-time axis, including capture-session footage that intentionally has no Episode-of-one. It - [episode_audio_evidence MCP tool](https://bitterclip.com/docs/assistants/tools/episode_audio_evidence): App-only read of precomputed absolute-scale audio facts for source-time ranges already projected into an Episode timeline. Returns sample peak and RMS in t - [episodes_list MCP tool](https://bitterclip.com/docs/assistants/tools/episodes_list): Lists or finds top-level EPISODES, the unit of work: the front door for browse, latest/open, project recaps or coaching prep. `query` matches episode, proj - [episode_create MCP tool](https://bitterclip.com/docs/assistants/tools/episode_create): Assembles a new EPISODE or derived reel from ordered recording/episode/template ranges into ONE combined video. A reel cut from an Episode takes derived_fr - [episode_clone MCP tool](https://bitterclip.com/docs/assistants/tools/episode_clone): Creates a clean draft branch from an existing top-level episode: a separate version for comparison or a workshop reset that the user explicitly wants. The - [episode_update MCP tool](https://bitterclip.com/docs/assistants/tools/episode_update): Updates the saved episode's own title, description, Episode-time chapters, and/or Episode date. Requires the Episode's draft_revision from episode_read; a - [clip_create_portrait_sibling MCP tool](https://bitterclip.com/docs/assistants/tools/clip_create_portrait_sibling): Creates a separate 9:16 portrait sibling from one current rendered 16:9 landscape Clip. Requires the landscape Clip's exact revision, draft_revision, and p - [clip_create MCP tool](https://bitterclip.com/docs/assistants/tools/clip_create): Creates a short derived Clip from one current Program range. Typed input:{type:clip|episode,id:comp_...} plus a stable variant_id creates an explicitly req - [clip_update MCP tool](https://bitterclip.com/docs/assistants/tools/clip_update): Updates one exact Clip's title and/or description. Requires the Clip's draft_revision from episode_read; a stale token fails without overwriting newer huma - [episode_edit MCP tool](https://bitterclip.com/docs/assistants/tools/episode_edit): Edits the current Program in place through one stable occurrence operation. Several partial shortenings inspected on one revision fit one occurrence.remove - [episode_fx_insert MCP tool](https://bitterclip.com/docs/assistants/tools/episode_fx_insert): Inserts one configured opener or outro, a built-in FX artifact, as ordinary time-bearing media (not an overlay) at a revision-bound Episode point or edit p - [episode_change_set_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/episode_change_set_mutate): One durable Program change-set action per call: start, resume, stop, or revert. start applies 1–250 ordered, receipt-backed Program occurrence operations u - [episode_change_set_read MCP tool](https://bitterclip.com/docs/assistants/tools/episode_change_set_read): Reads authoritative progress, recovery state, and a bounded page of individual operation receipts for one durable Program change set. This does not move th - [episode_edit_full MCP tool](https://bitterclip.com/docs/assistants/tools/episode_edit_full): App-only wrapper over the full shared episode edit primitive used by the BitterClip editor and MCP Apps widget. It accepts the same occurrence operations a - [align_span MCP tool](https://bitterclip.com/docs/assistants/tools/align_span): Promote a provisional transcript-backed span to a cited span, or explicitly reject it. Accepts exactly one target: a Program occurrence (episode_id plus th - [episode_render MCP tool](https://bitterclip.com/docs/assistants/tools/episode_render): Renders a persisted episode (composition) into a downloadable MP4 — the materialize step after episode_create / episode_edit. Music authored by the develop - [episode_status MCP tool](https://bitterclip.com/docs/assistants/tools/episode_status): Reports the render status of an episode (composition) after episode_render: the episode-vocabulary materialize poll. Returns the render lifecycle state (st - [render_create MCP tool](https://bitterclip.com/docs/assistants/tools/render_create): Renders an Episode or Clip to downloadable media. Multi-segment highlight/reel/shareable-video creation uses episode_create; a single-range Clip uses clip_ - [render_status MCP tool](https://bitterclip.com/docs/assistants/tools/render_status): Reports render lifecycle and returns the target's current structural revision, available render-plan hash, current-render custody, and its private/current - [export_sample_frames MCP tool](https://bitterclip.com/docs/assistants/tools/export_sample_frames): Pure-read pixel inspection of one exact rendered Export MP4, including burned overlays and captions. Requires the exact export_id, expected_render_generati - [output_public_url MCP tool](https://bitterclip.com/docs/assistants/tools/output_public_url): Creates expiring public review and direct-download URLs for one exact finished BitterClip render. The review URL is the practical human handoff; download_u - [open_recording MCP tool](https://bitterclip.com/docs/assistants/tools/open_recording): Use this when the user wants to open, edit, trim, or pick a clip from a specific recording. Opens the recording as an episode (a composition-of-one) in the - [connections_status MCP tool](https://bitterclip.com/docs/assistants/tools/connections_status): Checks publish readiness for a platform before packages are prepared or published. Returns whether this BitterClip account has a connected destination with - [publishing_package_create MCP tool](https://bitterclip.com/docs/assistants/tools/publishing_package_create): One reviewable package per call, from either a ready clip export (export_id) or a rendered episode (composition_id); exactly one. platform picks the destin - [publishing_state_read MCP tool](https://bitterclip.com/docs/assistants/tools/publishing_state_read): One publish-state read per call, by exactly one id argument. output_id (rxpt_… export or comp_… composition, optional kind hint) returns the output's canon - [publishing_publish_mutate MCP tool](https://bitterclip.com/docs/assistants/tools/publishing_publish_mutate): One workspace publish-workflow change per call. The subject id rides at the top level so authorization tier-checks the exact subject: export_id for prepare - [youtube_prepare_recording_package MCP tool](https://bitterclip.com/docs/assistants/tools/youtube_prepare_recording_package): Use this after the user or agent has drafted the YouTube title and detailed description for a full recording. It creates a reviewable YouTube package backe - [publishing_get_composition_publish_state MCP tool](https://bitterclip.com/docs/assistants/tools/publishing_get_composition_publish_state): Reports publish readiness for an edited composition before packages are prepared or published. It is read-only and returns the canonical publish_state enve - [publish_prepare MCP tool](https://bitterclip.com/docs/assistants/tools/publish_prepare): Creates reviewable publish packages for an episode or clip. This never publishes externally; a fresh server-bound final confirmation is required before any - [publish_update MCP tool](https://bitterclip.com/docs/assistants/tools/publish_update): Edits copy for a reviewable publish package or approval item before it is published. If the package was already approved, the edit supersedes that decision - [publish_send MCP tool](https://bitterclip.com/docs/assistants/tools/publish_send): Returns a no-effect workspace review handoff for supplied ApprovalItem/package ID(s). This model-visible handoff never creates a PublishRecord, queues work - [publish_status MCP tool](https://bitterclip.com/docs/assistants/tools/publish_status): Reports package, approval, or external publish lifecycle. Returns concrete external URLs only when BitterClip has verified them. ## Connect your channels - [Connect YouTube](https://bitterclip.com/docs/connect/youtube): Connect a YouTube channel as a publishing destination, and clear the Brand-Account trap that quietly breaks the connection. - [Connect X](https://bitterclip.com/docs/connect/x): Connect X so BitterClip can post your clips to your feed, including how the sign-in works and when to reconnect. - [Connect LinkedIn](https://bitterclip.com/docs/connect/linkedin): Connect LinkedIn so BitterClip can post your clips to your own feed. - [Connect Instagram](https://bitterclip.com/docs/connect/instagram): What the Connect Instagram button does today, and the dependable way to get your clips onto Instagram right now. ## Publishing - [Publish a clip](https://bitterclip.com/docs/publishing/publish-a-clip): Prepare a finished clip for connected channels, confirm the exact post in BitterClip, and check its status. ## Help - [FAQ](https://bitterclip.com/docs/help/faq): Quick answers to the questions creators ask most about BitterClip: cost, coding, where it runs, where your clips live, and publishing. - [Troubleshooting](https://bitterclip.com/docs/help/troubleshooting): The most common snags people hit with BitterClip, each with a quick fix. ## Changelog - [What's new](https://bitterclip.com/docs/changelog): A running list of notable changes to BitterClip, newest first. ## Blog - [Pi vs. DeepSeek Harness: why we chose Pi](https://bitterclip.com/blog/pi-vs-deepseek-harness): A concrete look at why BitterClip uses the Pi agent harness for its embedded AI agent, how it works, and when DeepSeek Harness would fit better. - [Visual analysis in BitterClip just got a lot faster](https://bitterclip.com/blog/gemini-3-7-multiple-witnesses): Gemini 3.7 cut median model response time by 61% in our video tests, with no strong semantic difference from 3.6. So we upgraded and kept 3.6 as the fallback. - [A condensed memory of the work](https://bitterclip.com/blog/a-condensed-memory-of-the-work): A coach we work with sends every client a highlight reel of their session — not as marketing, but as memory. That habit explains more about where BitterClip is going than any feature list. - [We stopped making templates](https://bitterclip.com/blog/we-stopped-making-templates): Every effect in BitterClip is real code — which means your AI assistant can write one, look at rendered frames of its own work, and make it better. Why we built motion design that way. - [Your show has a signature now](https://bitterclip.com/blog/your-show-has-a-signature-now): Introducing Identity Studio: branded openers, outros, and a signature look for every project — designed by you in a full-screen studio, or by your AI assistant, live, in the conversation.