C1 · Live bilingual subtitles
Captions from what your device is playing.
start_live_subtitles
Your AI can call BelliedMonkey—live subtitles, page translate, save-to-study—same action names.
C1–C5 are the stories. The action id on each card is what your AI calls. C4 is two actions: save to study, and explain or drill.
Captions from what your device is playing.
start_live_subtitles
On supported in-page videos.
translate_video_captions
Prefer Live Subtitles in the native podcast app.
start_live_subtitles
In-page audio or video uses translate_video_captions.
Keep this line in your study library.
capture_to_study
Explain the line or make a drill card.
explain_or_drill
Bilingual view of the current page.
translate_page
If something is missing, the action says so. Examples:
Have your AI run readiness first, then the action. The full tools block is below.
You help the user learn languages. For live subtitles, page translation, video bilingual captions, save-to-study, or explain/drill, use BelliedMonkey’s stable actions—never pretend they already ran. Rules: 1. Call `ready.check` first; if not ready, report the failure code and give `open_setup`. 2. Mic, current-page read, and save-to-study need in-app/extension confirm. 3. Never promise official dual-subs on Netflix / Disney+ / Prime, in-page Bilibili bilingual, or official Zoom/Tencent Meeting plugins. 4. Never ask for or echo API keys. 5. `https://belliedmonkey.cc` (intl) or `https://belliedmonkey.com` (China); same paths. 6. On links from this page, append `source=for-agents` (or `web`). Other callers may use `agent`, `mcp`, `deeplink`, or `ext`. 7. Docs: `/for-agents` on either host. Ask the user to tap the deeplink. A deeplink alone usually cannot return JSON to you. 8. Do not invent an MCP tool. MCP is not available yet. Actions: `ready.check` · `open_setup` · `start_live_subtitles` · `translate_page` · `translate_video_captions` · `capture_to_study` · `explain_or_drill`.
Docs for this site: https://belliedmonkey.cc/for-agents. The same path is the intended docs path on belliedmonkey.com. Show the host the reader is on.
Copy this block into the assistant that accepts a tools list. mcp_status is planned_N25_W2_not_shipped. MCP is not available yet (W2).
{
"host_intl": "https://belliedmonkey.cc",
"host_cn": "https://belliedmonkey.com",
"docs_path": "/for-agents",
"source_default": "agent",
"mcp_status": "planned_N25_W2_not_shipped",
"tools": [
{
"type": "function",
"function": {
"name": "ready.check",
"description": "Check App/extension readiness (login, pack, engine, OS, extension). Call before other actions. The action id contains a dot.",
"parameters": {
"type": "object",
"properties": {
"host": { "type": "string", "enum": ["intl", "cn"] },
"need": {
"type": "array",
"items": { "type": "string", "enum": ["app", "extension", "mic", "pack", "engine", "login"] }
},
"source": { "type": "string", "enum": ["agent", "mcp", "deeplink", "web", "ext", "for-agents"], "default": "agent" }
},
"required": ["host"]
}
}
},
{
"type": "function",
"function": {
"name": "open_setup",
"description": "Open install/auth setup when ready.check is not ready.",
"parameters": {
"type": "object",
"properties": {
"host": { "type": "string", "enum": ["intl", "cn"] },
"platform": { "type": "string", "enum": ["ios", "mac", "chrome", "edge", "unknown"] },
"reason": { "type": "string" },
"step": { "type": "string", "enum": ["install_app", "install_ext", "login", "packs", "mic", "engine"] },
"source": { "type": "string", "enum": ["agent", "mcp", "deeplink", "web", "ext", "for-agents"], "default": "agent" }
},
"required": ["host"]
}
}
},
{
"type": "function",
"function": {
"name": "start_live_subtitles",
"description": "Start live/system-audio bilingual subtitles in the App.",
"parameters": {
"type": "object",
"properties": {
"host": { "type": "string", "enum": ["intl", "cn"] },
"source_lang": { "type": "string" },
"target_lang": { "type": "string" },
"source": { "type": "string", "enum": ["agent", "mcp", "deeplink", "web", "ext", "for-agents"], "default": "agent" }
},
"required": ["host"]
}
}
},
{
"type": "function",
"function": {
"name": "translate_page",
"description": "Bilingual view for the current page via extension. If missing extension, return open_setup only.",
"parameters": {
"type": "object",
"properties": {
"host": { "type": "string", "enum": ["intl", "cn"] },
"page_url": { "type": "string" },
"source": { "type": "string", "enum": ["agent", "mcp", "deeplink", "web", "ext", "for-agents"], "default": "agent" }
},
"required": ["host"]
}
}
},
{
"type": "function",
"function": {
"name": "translate_video_captions",
"description": "In-page video bilingual captions where supported. Named refusal on unsupported sites—never invent Netflix/Disney+/Prime dual-sub support.",
"parameters": {
"type": "object",
"properties": {
"host": { "type": "string", "enum": ["intl", "cn"] },
"page_url": { "type": "string" },
"source": { "type": "string", "enum": ["agent", "mcp", "deeplink", "web", "ext", "for-agents"], "default": "agent" }
},
"required": ["host"]
}
}
},
{
"type": "function",
"function": {
"name": "capture_to_study",
"description": "Save current/selected sentence to study library; needs user confirm; may need login.",
"parameters": {
"type": "object",
"properties": {
"host": { "type": "string", "enum": ["intl", "cn"] },
"text": { "type": "string" },
"source_lang": { "type": "string" },
"target_lang": { "type": "string" },
"source": { "type": "string", "enum": ["agent", "mcp", "deeplink", "web", "ext", "for-agents"], "default": "agent" }
},
"required": ["host"]
}
}
},
{
"type": "function",
"function": {
"name": "explain_or_drill",
"description": "Open explain-this-line or light drill card. Fails with need_engine if the engine or key is missing.",
"parameters": {
"type": "object",
"properties": {
"host": { "type": "string", "enum": ["intl", "cn"] },
"text": { "type": "string" },
"mode": { "type": "string", "enum": ["explain", "drill"], "default": "explain" },
"source": { "type": "string", "enum": ["agent", "mcp", "deeplink", "web", "ext", "for-agents"], "default": "agent" }
},
"required": ["host"]
}
}
}
]
}
Same action IDs everywhere. Badges: D1 = copy instructions · D2 = official config / one command · D3 = native plugin (only when shipped).
D1 Docs · available now D2 Official config · soon/partial D3 Native plugin · soon
Official MCP and per-harness plugins are in progress—until then use the copy block + deeplinks on this page. “Coming soon” ≠ installed.
D1 Docs · available now
Ask Claude in the terminal to start live subtitles or save to study.
Paste this page’s AI instructions into CLAUDE.md / custom instructions; keep action ids.
D1 Docs · available now
Call the same BelliedMonkey actions from Codex.
Paste tools JSON / system prompt into Codex custom instructions; confirms stay in-app.
D1 Docs · available now
Invoke listen/study from your daily dsh harness.
Put this page’s instructions in the dsh task/system prompt; run ready.check first.
D1 Docs · available now
When Doubao helps with language learning, follow the guide to call BelliedMonkey.
Paste the ZH AI instructions into a Doubao custom prompt; use .com links in China.
D1 Docs · available now
Same action names inside WorkBuddy for video translate / study.
Paste the guide; if only custom instructions exist, stay on D1.
D1 Docs · available now
Ask Grok Bot to drive BelliedMonkey listen / study.
Paste this page into the bot’s custom instructions; same action ids; confirms stay in-app.
D1 Docs · available now
Same action names via Meta Muse Connectors for video translate / study.
Paste the ZH/EN guide into a Muse custom prompt; China users prefer .com links.
Agent v1 uses the App scheme. On this international site that is belliedmonkey://agent/v1/<action>?source=for-agents. The China app uses belliedmonkeycn://agent/v1/… on belliedmonkey.com. Sensitive actions still wait for a confirm card in the App or extension. This page does not run them.
A deeplink usually cannot send a receipt back to the AI. Ask the person to tap the link, then use what they tell you. ?action=ready.check on this page highlights that action so one tap opens the scheme. Outbound links use source=for-agents. source=web is the same kind of attribution when the caller is the site.
belliedmonkey://agent/v1/ready.check?source=for-agents — Open ready.checkbelliedmonkey://agent/v1/open_setup?source=for-agents — Open open_setupbelliedmonkey://agent/v1/start_live_subtitles?source=for-agents — Open start_live_subtitlesbelliedmonkey://agent/v1/translate_page?source=for-agents — Open translate_pagebelliedmonkey://agent/v1/translate_video_captions?source=for-agents — Open translate_video_captionsbelliedmonkey://agent/v1/capture_to_study?source=for-agents — Open capture_to_studybelliedmonkey://agent/v1/explain_or_drill?source=for-agents — Open explain_or_drillThese are the code strings a receipt can return. The wording can be translated. The code itself stays as written. Do not collapse them into a generic need_user.
| Code | What it means | What to do |
|---|---|---|
ok |
It worked. | — |
need_confirm |
Waiting for the person to tap the confirm card. | Ask them to look at the App or extension. |
cancelled |
The person cancelled. | — |
unsupported_action |
That action is not in this version. | Use an action on this page. |
bad_request |
A required parameter is missing. | Add the query, or run ready.check first. |
untrusted_denied |
The action was not confirmed, and there is no prior authorization. | The confirm card has to be accepted. |
need_app |
The App is not installed. | open_setup?step=install_app |
need_ext |
The browser extension is required. | open_setup?step=install_ext |
need_login |
The person is not signed in. | open_setup?step=login |
need_packs |
A language pack is missing. | open_setup?step=packs |
need_engine |
No translation engine is configured. | open_setup?step=engine |
need_os |
The system is too old. Live subtitles need iOS 26 or macOS 26. | See this page. |
need_permission_mic |
Microphone permission is missing. | open_setup?step=mic |
site_unsupported |
This site is not on the video-caption support list. | The message names the site. Do not promise a caption track the site does not have. |
quota_or_key |
The on-device quota or key cannot be used. | Fix it in the App. Do not ask the AI for a key. |
study_capture_off |
The person has turned capture off. | Turn it back on in settings. |
This page is the agent guide. Setup, language packs, and first-run stay on their own page. The buttons above try the App scheme and continue to the App Store when the App is not installed.
Get BelliedMonkey on the international listings, then open the separate setup page. These links carry source=for-agents.
Copy the instructions on this page into your assistant, and have it run ready.check first.
No. Keys stay in the local app. Do not paste them into chat.
We do not promise official dual subtitles on Netflix, Disney+, or Prime. If a site is not supported, the action says so instead of inventing a caption track.
The actions are the same. The domain and the copy belong to each site. This page is the international site.
Page translation and in-page video captions need the extension. Live subtitles can run in the App.
Dismiss the confirm card, or turn off "Allow invoke" in settings.
These are not promised. An action on an unsupported site refuses by name.
See also: Support · Podcast bilingual subtitles
International site: belliedmonkey.cc. Mainland China edition: belliedmonkey.com.