ChatCut plugin for ChatGPT install guide This plain text version is returned because your User-Agent does not look like a browser. Browser page: https://chatcut.io/es/chatgpt-plugin Full installation guide: This installs the ChatCut Codex plugin from the public marketplace repository: ```text https://github.com/ChatCut-Inc/agent-plugin.git ``` The example uses the `main` Git ref. ## Host environment gate First determine whether this conversation is running inside the ChatGPT/Codex web app or inside the ChatGPT/Codex desktop app on the user's local machine. If you are inside the web app or any isolated remote workspace, stop before running install commands. This web or isolated remote conversation cannot modify the desktop app's local plugin directory or bundled Codex configuration, so it cannot install or configure ChatCut for the desktop app. Tell the user to open ChatGPT/Codex desktop on the machine where they want to edit videos, start a new conversation there, and paste the install prompt that matches the user's conversation language. For any other language, use the English prompt. ```text English: Read chatcut.io/chatgpt to install the ChatCut plugin and set up a new task for me. Chinese: 阅读 chatcut.io/chatgpt,帮我安装 ChatCut 插件并创建一个新任务。 ``` If you are inside the desktop app on the user's local machine, continue with this guide. If you are not sure, ask the user whether this conversation is in the web app or the desktop app before running any commands. The commands below intentionally call the Codex CLI bundled by the Codex desktop app directly. Before running anything, first locate that bundled desktop-app CLI and replace `""` with its full path for the current machine. Keep the quotes around the path, especially on Windows or when the path contains spaces. If you are a Codex agent reading this file for a user, find the bundled Codex CLI path for this Codex desktop-app installation before running the commands. Do not use a standalone Codex CLI from `npm`, Homebrew, another package manager, or a random `codex` found in `PATH`. ```text "" ``` ## Agent execution contract If you are a Codex agent reading this for a user, read this whole guide before running commands. Do not stop after install, login, verification, browser checks, or troubleshooting. Required order: 1. Complete **Host environment gate**. If you are in the web app or an isolated remote workspace, stop there and send the user to the desktop app with the install prompt. 2. Install, log in, and verify the ChatCut plugin. 3. If browser controls work, continue to **Required final step: open the user's first editing conversation**. 4. If browser controls fail on Windows, use **Windows Node REPL MCP fix**, then return to the required final step. 5. Setup is incomplete until you print one required self-report from the final step. ## Prerequisites Before installing, verify the bundled Codex CLI is available: ```text "" --version ``` This must be the Codex CLI bundled with the desktop app. If the command resolves to a standalone CLI, stop and locate the desktop app's bundled CLI instead. Node.js does not have to be visible in `PATH` before installing the plugin. If the `node_repl` MCP tool is not available during verification, missing Node.js visibility may be the cause. In that case, check whether Codex already bundles a Node.js environment that only needs to be added to `PATH` before installing Node.js separately. ## Install If you are a Codex agent reading this file for a user, install the ChatCut plugin for them. Do not only describe these commands; run them when the user has asked you to set up ChatCut. Add the Git marketplace at the `main` ref: ```text "" plugin marketplace add https://github.com/ChatCut-Inc/agent-plugin.git --ref main ``` If adding the marketplace fails with a Git availability error such as `program not found`, first verify Git is available in the terminal that will run the Codex command: ```text git --version ``` If Git is not available on `PATH`, troubleshoot Git availability for the current machine. Using the proper bundled Codex CLI does not automatically give that CLI Git access in the current shell. On Windows, Codex's bundled Git may exist here but not be on the terminal `PATH`: ```text %USERPROFILE%\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\git\cmd\git.exe ``` If that file exists and prints a version, temporarily prepend its directory to `PATH` for the install command, then rerun the marketplace add command. If you need a durable fix, add the Git binary directory to User or System `PATH`, open a new terminal so `PATH` updates are loaded, then rerun the marketplace add command. Do not assume the Codex desktop bundle includes a separate Git executable unless you have verified one for this installation. ONLY as a last resort, if no usable Git executable is available from `PATH` or the Codex runtime, install Git on the user's machine, open a new terminal, confirm `git --version`, and then rerun the marketplace add command. If marketplace add, or another network step fails with a timeout, connection reset, TLS error, DNS error, or proxy-related error, retry through the user's local HTTP/HTTPS proxy if one is running. Common local proxy ports include `7890`, `7897`, `1080`, `8080`, and `8888`. For example, try setting both `HTTPS_PROXY` and `HTTP_PROXY` to `http://127.0.0.1:7890`, then rerun the failed command. Use the proxy port that actually matches the user's network tool; do not leave a bad proxy configured after testing. List marketplaces and note the marketplace name Codex assigned: ```text "" plugin marketplace list ``` List plugins in that marketplace: ```text "" plugin list --marketplace ``` Install the ChatCut plugin: ```text "" plugin add chatcut@ ``` Do not open a new thread yet. Complete the login and verification steps below first. ## Log In After installing the plugin, authenticate the ChatCut MCP server: ```text "" mcp login chatcut ``` This command opens the ChatCut browser OAuth page automatically. Follow the browser sign-in flow. When the command completes successfully, ChatCut is logged in for future Codex sessions. ## Verify Check the installed plugin status: ```text "" plugin list --marketplace --json ``` The ChatCut row should show `chatcut@` with status `installed, enabled`. Also verify that Codex can still read the marketplace configuration: ```text "" plugin marketplace list --json ``` Verify the ChatCut MCP server is registered: ```text "" mcp get chatcut --json ``` Verify the Node REPL MCP server is registered and enabled: ```text "" mcp list --json "" mcp get node_repl --json ``` The MCP list should show `node_repl` as enabled. If the agent can read the skill and discover browser controls, continue to **Required final step: open the user's first editing conversation**. If it cannot discover browser controls and the machine is Windows, use the Windows Node REPL MCP fix below, then return to the required final step. ### Windows Node REPL MCP fix Use this only when browser-control discovery fails on Windows. In that case, the Codex in-app Browser MCP can be installed while `mcp__node_repl__js` is still not exposed. This usually means the `node_repl` MCP server is registered, but `node_repl.exe` cannot start. First, find the Codex config and Node REPL runtime: ```powershell $codexHome = "$env:USERPROFILE\.codex" $config = Join-Path $codexHome "config.toml" Get-Content $config ``` Look for a block like this: ```toml [mcp_servers.node_repl] command = 'C:\Users\\AppData\Local\OpenAI\Codex\runtimes\cua_node\\bin\node_repl.exe' [mcp_servers.node_repl.env] NODE_REPL_NODE_PATH = '...\bin\node.exe' NODE_REPL_NODE_MODULE_DIRS = '...\bin\node_modules' ``` Validate whether `node_repl.exe` starts. Replace the path with the one from your config: ```powershell & "C:\Users\\AppData\Local\OpenAI\Codex\runtimes\cua_node\\bin\node_repl.exe" --help Write-Output "LASTEXITCODE=$LASTEXITCODE" ``` If it prints help and `LASTEXITCODE=0`, the binary is fine. If it exits with `-1073741515`, Windows cannot find a required DLL, commonly VC runtime DLLs. Locate the bundled VC runtime DLL directory: ```powershell Get-ChildItem "$env:USERPROFILE\.cache\codex-runtimes\codex-primary-runtime\dependencies\python" ` -File -Include "vcruntime140.dll","vcruntime140_1.dll","msvcp140.dll" | Select-Object FullName ``` The useful directory is usually: ```text C:\Users\\.cache\codex-runtimes\codex-primary-runtime\dependencies\python ``` Add that directory to your durable User `PATH`: ```powershell $dir = "$env:USERPROFILE\.cache\codex-runtimes\codex-primary-runtime\dependencies\python" $userPath = [Environment]::GetEnvironmentVariable('Path', 'User') if (($userPath -split ';') -notcontains $dir) { $newPath = if ([string]::IsNullOrWhiteSpace($userPath)) { $dir } else { "$userPath;$dir" } [Environment]::SetEnvironmentVariable('Path', $newPath, 'User') } [Environment]::GetEnvironmentVariable('Path', 'User') -split ';' | Where-Object { $_ -eq $dir } ``` After changing User `PATH`, fully quit and reopen Codex before trying browser-control discovery again. Do not keep testing in the installation thread: that thread has already captured its MCP tool list and the Browser MCP will not be exposed there even if the fix worked. A new PowerShell session should show the durable path entry: ```powershell $env:Path -split ';' | Where-Object { $_ -like '*codex-primary-runtime*dependencies*python*' } ``` After reopening Codex, start a new thread. The `node_repl` MCP process should inherit the updated `PATH` and find `vcruntime140.dll` / `vcruntime140_1.dll`. Then ask the Codex agent to read `browser:control-in-app-browser` again and rediscover the browser controls. Important: adding the directory inside one shell with `$env:PATH = ...` only affects that shell. Use durable User or System `PATH`, then fully quit and reopen Codex so browser-control discovery can see the updated environment. You can then validate that `node_repl.exe` starts. Replace the path with the one from your config: ```powershell & "C:\Users\\AppData\Local\OpenAI\Codex\runtimes\cua_node\\bin\node_repl.exe" --help Write-Output "LASTEXITCODE=$LASTEXITCODE" ``` Expected success: ```text Run the node_repl MCP stdio server. ... LASTEXITCODE=0 ``` Do not rely on this deprecated flag: ```toml [features] js_repl = true ``` If you added it, remove it. If you changed User or System `PATH`, fully quit and reopen Codex before trying to discover browser controls again. The tool list is captured when the thread starts, so the installation thread will not gain the Browser MCP or `mcp__node_repl__js` after the fix. After reopening Codex, start a new thread and ask Codex to read `browser:control-in-app-browser` again, search for `node_repl js`, or use the internal browser again. Once `mcp__node_repl__js` is exposed, the Browser skill bootstrap should work: ```js const { setupBrowserRuntime } = await import("C:/Users//.codex/plugins/cache/openai-bundled/browser//scripts/browser-client.mjs"); await setupBrowserRuntime({ globals: globalThis }); globalThis.browser = await agent.browsers.get("iab"); nodeRepl.write(await browser.documentation()); ``` Then the in-app Browser can be made visible with: ```js await (await browser.capabilities.get("visibility")).set(true); ``` The root cause in this case is not ChatCut and not the Browser plugin. It is `node_repl.exe` failing to start because the VC runtime DLL directories are missing from the MCP server environment. If you changed Node.js visibility or `PATH`, fully quit and reopen Codex after completing this verification. If the MCP server is not found, open a new Codex thread and rerun the plugin verification commands. If you changed User or System `PATH`, fully quit and reopen Codex first. If the MCP server is found but you are not logged in, rerun: ```text "" mcp login chatcut ``` If the plugin does not appear, rerun the marketplace list command to confirm the marketplace name, then rerun the plugin list command with that exact name. ## Required final step: open the user's first editing conversation REQUIRED: you must create and open the user's first ChatCut conversation yourself — do not just describe how, and do not ask the user whether to proceed. You are not finished until you do. If you skip it, the user is stranded: ChatCut's MCP tools are NOT reachable from this installation conversation. The current installation conversation CANNOT reach the newly installed MCP tools, even after login succeeds. Do not attempt ChatCut tool calls here — they WILL fail. A brand-new conversation is mandatory. Preconditions: the plugin is installed, `"" mcp login chatcut` succeeded, and `node_repl` is enabled. If you changed Node.js visibility or `PATH` during setup, fully quit and reopen Codex or the agent app before starting the new conversation. Resolve `startupPromptLanguage` from the user's actual conversation language, not the operating system language. Do not ask the user to choose. Generate the startup prompt in `startupPromptLanguage` using the exact prompts below; for any other `startupPromptLanguage`, translate the English one. ```text Chinese: ChatCut 插件已经安装好了,请你用内置浏览器打开一个 ChatCut 项目,把项目名称命名为“我的第一个ChatCut视频”,然后先告诉我你整体可以做什么,尤其是这三部分:视频剪辑(语音清理、字幕、转场、补充素材等)、MG 动画制作、素材生成(视频、旁白、音乐、音效等)。之后问我有什么素材、想做什么样的视频,告诉我你可以根据我的具体需求一步步开始制作,并且我也可以随时进入 ChatCut 编辑界面自己调整时间线、字幕、MG 动画等任何内容,就像使用传统编辑器一样。 English: The ChatCut plugin is already installed. Please use the built-in browser to open a ChatCut project, name the project "My First ChatCut Video", then first tell me an overall view of what you can do, especially these three parts —— video editing(speech cleanup, caption, transition, b-roll, etc), motion graphics creation, assets generation(video, voiceover, music, sound effects, etc). After that, ask me what materials I have and what kind of video I want to make. Tell me you can start making it step by step based on my specific needs and I can also hop into the ChatCut editing interface anytime and adjust things by myself, timeline, captions, motion graphics, anything, just like a traditional editor. Spanish: El plugin de ChatCut ya está instalado. Usa el navegador integrado para abrir un proyecto de ChatCut, nombra el proyecto "Mi primer video de ChatCut" y luego primero dame una visión general de lo que puedes hacer, especialmente estas tres partes: edición de video (limpieza de voz, subtítulos, transiciones, b-roll, etc.), creación de motion graphics y generación de recursos (video, voz en off, música, efectos de sonido, etc.). Después pregúntame qué materiales tengo y qué tipo de video quiero crear. Dime que puedes empezar a crearlo paso a paso según mis necesidades concretas y que también puedo entrar en la interfaz de edición de ChatCut en cualquier momento para ajustar cosas por mi cuenta, como la línea de tiempo, los subtítulos, los motion graphics o cualquier otro elemento, igual que en un editor tradicional. ``` ### Codex hosts — do these IN ORDER. Do not skip ahead to the fallback. 1. DISCOVER (mandatory, not conditional). Call `tool_search` for `create_thread`, `send_message_to_thread`, `navigate_to_codex_page`, `set_thread_title`, `list_projects`, and any current-project/current-workspace lookup tool — even if none appear in your initial tool list; they are dynamic and discovery is how they become callable. Only if `tool_search` itself does not exist may you scan already-visible tools for equivalent create/send/switch/project-context tools. 2. TARGET CONTEXT. Preserve the installation conversation's Codex container. If this installation conversation belongs to a Codex project/workspace, create the new conversation in that same project/workspace target; use `list_projects` or the host's current-project/current-workspace metadata to resolve the matching `projectId`/target. Do not omit the target or create a projectless conversation when the installation conversation is project-scoped. If this installation conversation is projectless, create a projectless conversation. Only fall back if the host provides no way to preserve or determine the current project/workspace target; in that case, say that project context could not be preserved. 3. CREATE. If `create_thread` accepts an initial user message, call it once with the target from step 2 and the resolved startup prompt as that message. If it does not, create the thread with the target from step 2, then IMMEDIATELY call `send_message_to_thread` with the startup prompt targeting the new thread id. Invariant: this step is not done until the new thread CONTAINS the startup prompt. A created-but-empty thread is a failure, not a success. 4. SWITCH. If `navigate_to_codex_page` (or an equivalent switch/open tool) is available, you MUST call it to move the user into the new thread. 5. TITLE (optional). If `set_thread_title` is available, set it to the project name. Skipping the title is fine; skipping the message in step 3 is not. 6. FALLBACK — last resort only. Hand the user the prompt to paste ONLY if: (i) `tool_search` is unavailable AND no equivalent create tool is visible, (ii) `tool_search` returned no match for any create-conversation tool, (iii) the host cannot preserve or determine the current project/workspace target, or (iv) a required call actually returned an error. "I assumed this host does not support it" is NOT a valid reason. When you fall back, name the exact discovery query that found nothing, the exact missing project-context capability, or the exact tool call and error. ### Required self-report (before ending your turn, print exactly one) - (A) "Started a new conversation and sent your first prompt" — include the new thread's title or id. In the user's language, also explain that this current conversation is only the installation conversation and cannot directly use ChatCut yet; the user should continue in the new conversation you created and opened for them. Report (A) only if you actually called the create/send tools and the thread contains the prompt. - (B) "Could not auto-start the conversation" — give the paste-in prompt and state which step (1, 2, 3, or 4) was unavailable or failed. ### Completion gate Do not tell the user ChatCut is installed or setup is complete until this step is done. "Done" = the new Codex conversation is open with the startup prompt sent (report A), OR you handed the user the exact prompt with the failed discovery or tool step (report B). Correct for Codex hosts: resolve the current project/workspace target, call `create_thread` with that target and the startup prompt as the initial message, then `navigate_to_codex_page` to switch the user in, then report (A) with the thread id. Incorrect for Codex hosts: print the startup prompt in THIS conversation and stop; or say "just open a new chat and ask ChatCut to make a video" without attempting any create/send/switch call. ## Update To refresh the marketplace snapshot later, upgrade all marketplaces or optionally name one marketplace explicitly: ```text "" plugin marketplace upgrade "" plugin marketplace upgrade ``` Then rerun the verification commands above.