Use BelliedMonkey with your AI

Your AI can call BelliedMonkey—live subtitles, page translate, save-to-study—same action names.

Three steps

  1. Install the App or browser extension
  2. Copy the AI instructions into your assistant
  3. Ask it to start live subtitles / translate this page / save to study
Get the App Get the extension

What you can ask for

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.

C1 · Live bilingual subtitles

Captions from what your device is playing.

start_live_subtitles

C2 · Video bilingual captions

On supported in-page videos.

translate_video_captions

C3 · Podcast bilingual

Prefer Live Subtitles in the native podcast app.

start_live_subtitles

In-page audio or video uses translate_video_captions.

C4a · Save to study

Keep this line in your study library.

capture_to_study

C4b · Explain / drill

Explain the line or make a drill card.

explain_or_drill

C5 · Translate this page

Bilingual view of the current page.

translate_page

If something is missing, the action says so. Examples:

Instructions for your AI

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.

Tools

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"]
        }
      }
    }
  ]
}

Use BelliedMonkey from your AI coding harness

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

Claude Code

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.

Next tier: target D3, first wave. Planned: Claude Code plugin + MCP (not listed yet—no install URL).

D1 Docs · available now

Codex

Call the same BelliedMonkey actions from Codex.

Paste tools JSON / system prompt into Codex custom instructions; confirms stay in-app.

Next tier: target D3, first wave. Planned: codex mcp add / marketplace plugin (not live).

D1 Docs · available now

dsh

Invoke listen/study from your daily dsh harness.

Put this page’s instructions in the dsh task/system prompt; run ready.check first.

Next tier: target D3 in H2. Planned: dsh-belliedmonkey plugin (not published).

D1 Docs · available now

Doubao

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.

Next tier: D2 this season. Work custom connector / Remote MCP (Volcengine secondary; not live).

D1 Docs · available now

WorkBuddy

Same action names inside WorkBuddy for video translate / study.

Paste the guide; if only custom instructions exist, stay on D1.

Next tier: target D3 after an API probe. H0 is docs-only, no install URL.

D1 Docs · available now

Grok Bot

Ask Grok Bot to drive BelliedMonkey listen / study.

Paste this page into the bot’s custom instructions; same action ids; confirms stay in-app.

Next tier: target D3 = Grok Connector + public Remote MCP (W2), tracked as N25-H-remote. Not the H1 local bridge, and not local stdio. Do not claim D3 before Remote ships. Not in the Claude Code + Codex first batch. No install URL.

D1 Docs · available now

Meta Muse

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.

Exploring: Meta Muse + Connectors. Depth is not locked to D2 or D3. If it goes remote, follow W2 / N25-H-remote — no localhost, and not local stdio. H0 is docs-only.

Get the App Get the extension Open setup Failed? See failure codes (§6)

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.

Failure codes

These 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.

Install and set up

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.

Privacy

FAQ

How does ChatGPT or Claude call BelliedMonkey?

Copy the instructions on this page into your assistant, and have it run ready.check first.

Should I send my API key to the AI?

No. Keys stay in the local app. Do not paste them into chat.

Does it support official dual subtitles on Netflix?

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.

Are belliedmonkey.com and belliedmonkey.cc different?

The actions are the same. The domain and the copy belong to each site. This page is the international site.

Can I use this without the browser extension?

Page translation and in-page video captions need the extension. Live subtitles can run in the App.

How do I stop BelliedMonkey from being invoked?

Dismiss the confirm card, or turn off "Allow invoke" in settings.

Not supported

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.