Open the live ChatCut editor in the in-app browser so the user can watch edits land in real time and edit manually themselves. Uses the native InAppBrowser tool — see the in-app-browser skill for the full action reference.
When to open
- Before the first project-mutating operation of the session (create, edit, captions, import, timeline changes) — open by default, without being asked. Editing with the editor closed is a broken experience.
- A ChatCut tool result includes
browserHandoff(especiallyrequired: true) or a live project/editor URL, and the project was just created or targeted for visible editing work. - The user explicitly asks to open a project in the in-app browser.
- Before long-running visible work (import, transcription, generation, timeline assembly) when the editor is not already open on the current project.
Pure discovery (list_projects only, no follow-up work) does not auto-open.
Do not re-open on every turn; the editor is live-synced, so an already-open tab shows new edits without any reload.
How to open
- Choose the URL:
browserHandoff.urlwhen present (it carrieseditor-boot-token, which auto-logs the in-app browser into the same account as the MCP connector); otherwise the returnededitorUrl. Preserve all query parameters. Never rewrite or hand-build editor URLs. - Localize the path by conversation language: Chinese → insert
/zh/after the editor site domain; otherwise keep the default. Keep domain, remaining path, query, and hash intact. - First open of the session:
{
"action": "navigate",
"session": "chatcut",
"params": { "url": "<handoff-url>", "newTab": true }
}
- Later in the session, reuse the same tab:
find_tabwith the editor URL to re-activate it, ornavigatewith the samesessionand nonewTab. Keep ONE editor tab per session.
After opening
- Once the tab reports opened, the handoff is complete. Continue the ChatCut workflow; do not poll the page, take screenshots, or run visual checks just to prove the editor opened.
- ChatCut can take a while on first load of a new project (cold sync). If it visibly sticks on "Loading workspace / Syncing project data" for more than ~20 seconds,
navigateto the same URL once more — the session cookie is already set and the boot token is multi-use within its TTL. - If
InAppBrowseris not available this turn, agent browser control is disabled: present the cleaneditorUrlas a Markdown link instead, and say the user can open it themselves. Do not work around via HTTP or shell.
Link hygiene (always)
- URLs shown to the user — in tables, Markdown links, or plain text — must be the clean
editorUrl. - Never show a URL containing
editor-boot-token. If only the handoff URL is available, strip the token parameter before display. - The tokenized URL is only ever passed to
InAppBrowser.