[{"data":1,"prerenderedAt":614},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fassistants\u002Finstall":3,"docs-navigation":497},{"id":4,"title":5,"body":6,"date":481,"description":482,"extension":483,"meta":484,"navigation":485,"ogImage":481,"path":488,"section":489,"seo":490,"stem":491,"summary":481,"tags":492,"updated":495,"__hash__":496},"docs\u002Fdocs\u002Fassistants\u002Finstall.md","Install BitterClip in Claude Code or Codex",{"type":7,"value":8,"toc":474},"minimark",[9,13,23,31,41,46,90,94,259,263,427,431,460,470],[10,11,5],"h1",{"id":12},"install-bitterclip-in-claude-code-or-codex",[14,15,16,17,22],"p",{},"This page is written for AI agents. People can use the ",[18,19,21],"a",{"href":20},"\u002Fconnect","connect page",", which also\ncovers Claude and ChatGPT.",[14,24,25,26,30],{},"To have an agent install BitterClip, send it this message. In Codex, start it with ",[27,28,29],"code",{},"\u002Fgoal",".",[32,33,39],"pre",{"className":34,"code":36,"language":37,"meta":38},[35],"language-text","Read https:\u002F\u002Fbitterclip.com\u002Fdocs\u002Fassistants\u002Finstall and follow it exactly to install BitterClip, then tell me how to start.\n","text","",[27,40,36],{"__ignoreMap":38},[42,43,45],"h2",{"id":44},"installation-contract","Installation contract",[47,48,49,68,71,77,84,87],"ul",{},[50,51,52,56,57,60,61,64,65,30],"li",{},[53,54,55],"strong",{},"Server:"," ",[27,58,59],{},"https:\u002F\u002Fapp.bitterclip.com\u002Fmcp",", streamable HTTP with OAuth sign-in. Server\nname: ",[27,62,63],{},"bitterclip","; Claude Code lists the plugin's server as ",[27,66,67],{},"plugin:bitterclip:bitterclip",[50,69,70],{},"Use only the section for the client you are running in. Do not install into both Claude\nCode and Codex because both are present.",[50,72,73,74,76],{},"Inspect first. If a working ",[27,75,63],{}," server already points at the address above, keep\nit and go to verification. Preserve unrelated servers and configuration.",[50,78,79,80,83],{},"The person signs in to BitterClip in their own browser and clicks ",[53,81,82],{},"Allow",". Never ask for a\npassword, cookie or token, and never add a bearer token or authorization header.",[50,85,86],{},"Installation ends after verification and the handoff. Do not upload media, create\nprojects, edit, render or publish while installing.",[50,88,89],{},"Report the client, the server address, sign-in and verification separately. If a step is\nstill pending, such as a new session or sign-in, name it instead of saying the installation\nis ready.",[42,91,93],{"id":92},"install-in-claude-code","Install in Claude Code",[95,96,97,137,208,228,250],"ol",{},[50,98,99,100],{},"Inspect the current configuration:",[32,101,105],{"className":102,"code":103,"language":104,"meta":38,"style":38},"language-bash shiki shiki-themes github-dark-dimmed","claude plugin list\nclaude mcp get plugin:bitterclip:bitterclip\n","bash",[27,106,107,123],{"__ignoreMap":38},[108,109,112,116,120],"span",{"class":110,"line":111},"line",1,[108,113,115],{"class":114},"s7B5-","claude",[108,117,119],{"class":118},"sP_-H"," plugin",[108,121,122],{"class":118}," list\n",[108,124,126,128,131,134],{"class":110,"line":125},2,[108,127,115],{"class":114},[108,129,130],{"class":118}," mcp",[108,132,133],{"class":118}," get",[108,135,136],{"class":118}," plugin:bitterclip:bitterclip\n",[50,138,139,140,172,175,176],{},"If the BitterClip plugin is missing, add its marketplace and install it for this user.\nIt brings the connection and BitterClip's editing skills:",[32,141,143],{"className":102,"code":142,"language":104,"meta":38,"style":38},"claude plugin marketplace add sheetgenius\u002Fbitterclip-plugin\nclaude plugin install bitterclip@bitterclip\n",[27,144,145,160],{"__ignoreMap":38},[108,146,147,149,151,154,157],{"class":110,"line":111},[108,148,115],{"class":114},[108,150,119],{"class":118},[108,152,153],{"class":118}," marketplace",[108,155,156],{"class":118}," add",[108,158,159],{"class":118}," sheetgenius\u002Fbitterclip-plugin\n",[108,161,162,164,166,169],{"class":110,"line":125},[108,163,115],{"class":114},[108,165,119],{"class":118},[108,167,168],{"class":118}," install",[108,170,171],{"class":118}," bitterclip@bitterclip\n",[173,174],"br",{},"If this Claude Code cannot install plugins, add the connection alone instead and say so\nin your report:",[32,177,179],{"className":102,"code":178,"language":104,"meta":38,"style":38},"claude mcp add --scope user --transport http bitterclip https:\u002F\u002Fapp.bitterclip.com\u002Fmcp\n",[27,180,181],{"__ignoreMap":38},[108,182,183,185,187,189,193,196,199,202,205],{"class":110,"line":111},[108,184,115],{"class":114},[108,186,130],{"class":118},[108,188,156],{"class":118},[108,190,192],{"class":191},"sDGpf"," --scope",[108,194,195],{"class":118}," user",[108,197,198],{"class":191}," --transport",[108,200,201],{"class":118}," http",[108,203,204],{"class":118}," bitterclip",[108,206,207],{"class":118}," https:\u002F\u002Fapp.bitterclip.com\u002Fmcp\n",[50,209,210,211,214,215,218,219,221,222],{},"Sign in. The plugin loads in a new session. Ask the person to start one, run ",[27,212,213],{},"\u002Fmcp",",\nchoose BitterClip, then ",[53,216,217],{},"Authenticate",". Their browser opens BitterClip; they sign in and\nclick ",[53,220,82],{},". Ask:",[32,223,226],{"className":224,"code":225,"language":37,"meta":38},[35],"Please start a new Claude Code session, run \u002Fmcp, choose BitterClip and authenticate. Sign in to BitterClip in the browser window that opens and click Allow, then let me know.\n",[27,227,225],{"__ignoreMap":38},[50,229,230,231,234,235,238,239,241,242,245,246,249],{},"Verify. ",[27,232,233],{},"claude mcp get plugin:bitterclip:bitterclip"," (or ",[27,236,237],{},"claude mcp get bitterclip","\nfor the connection alone) must show ",[27,240,59],{}," and a connected\nstatus. In a session where BitterClip's tools are loaded, call ",[27,243,244],{},"projects_list"," with ",[27,247,248],{},"{}",":\na structured response proves an authenticated read that changes nothing.",[50,251,252,253],{},"Hand off. Tell the person to start a new Claude Code session in a folder without a code\nrepository, since the work is a video, and send:",[32,254,257],{"className":255,"code":256,"language":37,"meta":38},[35],"Using BitterClip, help me make my first clip. Briefly explain how you can help, then show my recent recordings or help me upload one.\n",[27,258,256],{"__ignoreMap":38},[42,260,262],{"id":261},"install-in-codex","Install in Codex",[95,264,265,298,321,381,404,419],{},[50,266,267,268,271,272,275,276],{},"Find the executable. The ChatGPT desktop app bundles Codex at\n",[27,269,270],{},"\u002FApplications\u002FChatGPT.app\u002FContents\u002FResources\u002Fcodex"," on macOS. Use it when present;\notherwise use ",[27,273,274],{},"codex"," on the shell path.",[32,277,279],{"className":102,"code":278,"language":104,"meta":38,"style":38},"\u002FApplications\u002FChatGPT.app\u002FContents\u002FResources\u002Fcodex --version || codex --version\n",[27,280,281],{"__ignoreMap":38},[108,282,283,285,288,292,295],{"class":110,"line":111},[108,284,270],{"class":114},[108,286,287],{"class":191}," --version",[108,289,291],{"class":290},"scLw-"," ||",[108,293,294],{"class":114}," codex",[108,296,297],{"class":191}," --version\n",[50,299,99,300],{},[32,301,303],{"className":102,"code":302,"language":104,"meta":38,"style":38},"codex plugin list\ncodex mcp list\n",[27,304,305,313],{"__ignoreMap":38},[108,306,307,309,311],{"class":110,"line":111},[108,308,274],{"class":114},[108,310,119],{"class":118},[108,312,122],{"class":118},[108,314,315,317,319],{"class":110,"line":125},[108,316,274],{"class":114},[108,318,130],{"class":118},[108,320,122],{"class":118},[50,322,323,324,358,360,361],{},"If the BitterClip plugin is missing, add its marketplace and install it. It brings the\nconnection and BitterClip's editing skills:",[32,325,327],{"className":102,"code":326,"language":104,"meta":38,"style":38},"codex plugin marketplace add https:\u002F\u002Fgithub.com\u002Fsheetgenius\u002Fbitterclip-plugin.git --ref main\ncodex plugin add bitterclip@bitterclip\n",[27,328,329,348],{"__ignoreMap":38},[108,330,331,333,335,337,339,342,345],{"class":110,"line":111},[108,332,274],{"class":114},[108,334,119],{"class":118},[108,336,153],{"class":118},[108,338,156],{"class":118},[108,340,341],{"class":118}," https:\u002F\u002Fgithub.com\u002Fsheetgenius\u002Fbitterclip-plugin.git",[108,343,344],{"class":191}," --ref",[108,346,347],{"class":118}," main\n",[108,349,350,352,354,356],{"class":110,"line":125},[108,351,274],{"class":114},[108,353,119],{"class":118},[108,355,156],{"class":118},[108,357,171],{"class":118},[173,359],{},"If this Codex cannot install plugins, add the connection alone and say so in your report:",[32,362,364],{"className":102,"code":363,"language":104,"meta":38,"style":38},"codex mcp add bitterclip --url https:\u002F\u002Fapp.bitterclip.com\u002Fmcp\n",[27,365,366],{"__ignoreMap":38},[108,367,368,370,372,374,376,379],{"class":110,"line":111},[108,369,274],{"class":114},[108,371,130],{"class":118},[108,373,156],{"class":118},[108,375,204],{"class":118},[108,377,378],{"class":191}," --url",[108,380,207],{"class":118},[50,382,383,384,386,387],{},"Sign in. The command opens the person's browser, where they sign in to BitterClip and\nclick ",[53,385,82],{},". Wait for it to report success. If a browser window opened, do not also\nopen the URL it prints: the sign-in callback works once.",[32,388,390],{"className":102,"code":389,"language":104,"meta":38,"style":38},"codex mcp login bitterclip\n",[27,391,392],{"__ignoreMap":38},[108,393,394,396,398,401],{"class":110,"line":111},[108,395,274],{"class":114},[108,397,130],{"class":118},[108,399,400],{"class":118}," login",[108,402,403],{"class":118}," bitterclip\n",[50,405,230,406,409,410,412,413,415,416,418],{},[27,407,408],{},"codex mcp list"," must show ",[27,411,63],{}," at ",[27,414,59],{},". The\ntools load in a new task, whose first ",[27,417,244],{}," call proves the authenticated read.",[50,420,421,422],{},"Hand off. Create a new task with the starter prompt below if this client lets you, or ask\nthe person to start one, then end with one line saying the installation is done and where\nto continue.",[32,423,425],{"className":424,"code":256,"language":37,"meta":38},[35],[27,426,256],{"__ignoreMap":38},[42,428,430],{"id":429},"troubleshooting","Troubleshooting",[47,432,433,439,448,454],{},[50,434,435,438],{},[53,436,437],{},"Sign-in fails or is refused:"," repeat the client's sign-in step. After the first sign-in\nthe connection renews itself.",[50,440,441,447],{},[53,442,443,446],{},[27,444,445],{},"GET https:\u002F\u002Fapp.bitterclip.com\u002Fmcp"," returns 405:"," expected for this transport; it is\nnot an authentication test.",[50,449,450,453],{},[53,451,452],{},"The server is missing after installation:"," start a new session or task, then inspect\nagain.",[50,455,456,459],{},[53,457,458],{},"A tool call is refused:"," BitterClip's response says why and what to do; relay it to the\nperson.",[14,461,462,463,469],{},"The ",[18,464,468],{"href":465,"rel":466},"https:\u002F\u002Fgithub.com\u002Fsheetgenius\u002Fbitterclip-plugin",[467],"nofollow","BitterClip plugin"," is the source of\nthe marketplaces above.",[471,472,473],"style",{},"html pre.shiki code .s7B5-, html code.shiki .s7B5-{--shiki-default:#F69D50}html pre.shiki code .sP_-H, html code.shiki .sP_-H{--shiki-default:#96D0FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sDGpf, html code.shiki .sDGpf{--shiki-default:#6CB6FF}html pre.shiki code .scLw-, html code.shiki .scLw-{--shiki-default:#F47067}",{"title":38,"searchDepth":475,"depth":475,"links":476},3,[477,478,479,480],{"id":44,"depth":125,"text":45},{"id":92,"depth":125,"text":93},{"id":261,"depth":125,"text":262},{"id":429,"depth":125,"text":430},null,"Instructions an AI agent follows to connect BitterClip in Claude Code or Codex, have the person sign in, verify, and hand off to editing.","md",{},{"label":486,"order":487},"Install with an agent",5,"\u002Fdocs\u002Fassistants\u002Finstall","assistants",{"title":5,"description":482},"docs\u002Fassistants\u002Finstall",[489,493,494,274],"mcp","claude-code","2026-09-24","BUihcZMj0EC6qQNZqDEf2nEgW9EOtdr6b5kykVSmxI4",[498],{"title":499,"path":500,"stem":501,"children":502},"Docs","\u002Fdocs","docs",[503,508,528,534,560,593,605],{"title":504,"path":500,"stem":505,"label":506,"order":507},"BitterClip docs","docs\u002Findex","Overview",0,{"title":509,"path":510,"stem":511,"children":512,"page":527},"Assistants","\u002Fdocs\u002Fassistants","docs\u002Fassistants",[513,517,521,522],{"title":514,"path":515,"stem":516,"label":514,"order":125},"Connect ChatGPT","\u002Fdocs\u002Fassistants\u002Fconnect-chatgpt","docs\u002Fassistants\u002Fconnect-chatgpt",{"title":518,"path":519,"stem":520,"label":518,"order":475},"Connect Claude","\u002Fdocs\u002Fassistants\u002Fconnect-claude","docs\u002Fassistants\u002Fconnect-claude",{"title":5,"path":488,"stem":491,"label":486,"order":487},{"title":523,"path":524,"stem":525,"label":526,"order":111},"Use BitterClip from your AI assistant","\u002Fdocs\u002Fassistants\u002Foverview","docs\u002Fassistants\u002Foverview","Use it from your assistant",false,{"title":529,"path":530,"stem":531,"children":532,"label":529,"order":111},"What's new","\u002Fdocs\u002Fchangelog","docs\u002Fchangelog\u002Findex",[533],{"title":529,"path":530,"stem":531,"label":529,"order":111},{"title":535,"path":536,"stem":537,"children":538,"page":527},"Connect","\u002Fdocs\u002Fconnect","docs\u002Fconnect",[539,545,550,555],{"title":540,"path":541,"stem":542,"label":543,"order":544},"Connect Instagram","\u002Fdocs\u002Fconnect\u002Finstagram","docs\u002Fconnect\u002Finstagram","Instagram",4,{"title":546,"path":547,"stem":548,"label":549,"order":475},"Connect LinkedIn","\u002Fdocs\u002Fconnect\u002Flinkedin","docs\u002Fconnect\u002Flinkedin","LinkedIn",{"title":551,"path":552,"stem":553,"label":554,"order":125},"Connect X","\u002Fdocs\u002Fconnect\u002Fx","docs\u002Fconnect\u002Fx","X",{"title":556,"path":557,"stem":558,"label":559,"order":111},"Connect YouTube","\u002Fdocs\u002Fconnect\u002Fyoutube","docs\u002Fconnect\u002Fyoutube","YouTube",{"title":561,"path":562,"stem":563,"children":564,"page":527},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[565,570,575,581,585,589],{"title":566,"path":567,"stem":568,"label":569,"order":475},"Find and share your clips","\u002Fdocs\u002Fgetting-started\u002Ffind-and-share-clips","docs\u002Fgetting-started\u002Ffind-and-share-clips","Find and share clips",{"title":571,"path":572,"stem":573,"label":571,"order":574},"Import your YouTube archive","\u002Fdocs\u002Fgetting-started\u002Fimport-youtube-takeout","docs\u002Fgetting-started\u002Fimport-youtube-takeout",2.5,{"title":576,"path":577,"stem":578,"label":579,"order":580},"Import a Zoom cloud recording","\u002Fdocs\u002Fgetting-started\u002Fimport-zoom-cloud-recording","docs\u002Fgetting-started\u002Fimport-zoom-cloud-recording","Import a Zoom recording",2.4,{"title":582,"path":583,"stem":584,"label":582,"order":125},"Projects and collaborators","\u002Fdocs\u002Fgetting-started\u002Fprojects-and-collaborators","docs\u002Fgetting-started\u002Fprojects-and-collaborators",{"title":586,"path":587,"stem":588,"label":586,"order":507},"What is BitterClip?","\u002Fdocs\u002Fgetting-started\u002Fwhat-is-bitterclip","docs\u002Fgetting-started\u002Fwhat-is-bitterclip",{"title":590,"path":591,"stem":592,"label":590,"order":111},"Your first clip","\u002Fdocs\u002Fgetting-started\u002Fyour-first-clip","docs\u002Fgetting-started\u002Fyour-first-clip",{"title":594,"path":595,"stem":596,"children":597,"page":527},"Help","\u002Fdocs\u002Fhelp","docs\u002Fhelp",[598,602],{"title":599,"path":600,"stem":601,"label":599,"order":111},"FAQ","\u002Fdocs\u002Fhelp\u002Ffaq","docs\u002Fhelp\u002Ffaq",{"title":430,"path":603,"stem":604,"label":430,"order":125},"\u002Fdocs\u002Fhelp\u002Ftroubleshooting","docs\u002Fhelp\u002Ftroubleshooting",{"title":606,"path":607,"stem":608,"children":609,"page":527},"Publishing","\u002Fdocs\u002Fpublishing","docs\u002Fpublishing",[610],{"title":611,"path":612,"stem":613,"label":611,"order":111},"Publish a clip","\u002Fdocs\u002Fpublishing\u002Fpublish-a-clip","docs\u002Fpublishing\u002Fpublish-a-clip",1790187546034]