{
  "schemaVersion": 1,
  "reviewedAt": "2026-09-21",
  "slug": "kimi",
  "name": "Kimi Code",
  "category": "CLI + MCP + runtime",
  "headline": "Kimi, in the loop.\nOne shared broker.",
  "summary": "Connect Kimi Code to Scout’s local MCP server, use Scout from its shell, or ask Scout to launch a Kimi runtime. The portable skill teaches the same coordination workflow.",
  "status": "Local developer pilot · validate your installed client",
  "marketplace": "Use Kimi’s MCP configuration and the shared Scout skill. No dedicated Scout marketplace package for Kimi is claimed.",
  "transport": "Local Scout CLI and MCP",
  "flow": [
    "Kimi Code",
    "Scout",
    "Coding agents"
  ],
  "requirements": [
    "OpenScout installed and a healthy local broker (scout doctor).",
    "Kimi Code installed and authenticated on the Scout machine.",
    "An authorized project path and a supported destination runtime."
  ],
  "steps": [
    {
      "title": "Add Scout as a local MCP server",
      "body": "Run this in the environment where Kimi and Scout are installed. Replace the absolute project path.",
      "code": "kimi mcp add --transport stdio scout -- scout mcp --context-root /absolute/path/to/project"
    },
    {
      "title": "Check the connection",
      "body": "Test the configured server. In an active Kimi session, /mcp shows loaded servers and tools. Call Scout whoami to verify identity.",
      "code": "kimi mcp test scout"
    },
    {
      "title": "Ask for a small review",
      "body": "Ask the connected agent to use Scout for a review in your actual project directory. Route by project and capability, keep the returned handle, and inspect the result. Use the current tool schema instead of guessing a recipient name."
    },
    {
      "title": "Or launch Kimi through Scout",
      "body": "This is the opposite direction: Scout dispatches work to an installed Kimi runtime. Check readiness first and preserve the returned handle.",
      "code": "scout runtimes --json\nscout ask --project /absolute/path/to/project --harness kimi --notify \"Review the latest changes; do not edit files.\""
    }
  ],
  "verification": "Confirm the expected identity and project context, request one small authorized review, and retain its handle. Observe the terminal result before reporting success.",
  "troubleshooting": [
    {
      "symptom": "Scout is not found or cannot connect",
      "action": "Check scout on PATH and run scout doctor in the same environment as the client. A desktop app may have a different PATH from your terminal."
    },
    {
      "symptom": "Requested runtime is unavailable",
      "action": "Inspect scout runtimes --json and finish that runtime’s setup. Do not silently choose a different harness or model."
    }
  ],
  "limits": [
    "This is a local developer pilot. Client permissions and runtime availability still apply.",
    "Installing a host package does not provision hosted access."
  ],
  "sources": [
    {
      "label": "Kimi Code MCP documentation",
      "url": "https://moonshotai.github.io/kimi-cli/en/customization/mcp.html"
    },
    {
      "label": "Install Scout",
      "url": "https://openscout.app/install.md"
    },
    {
      "label": "Shared MCP setup",
      "url": "https://openscout.app/mcp"
    },
    {
      "label": "Portable Scout skill",
      "url": "https://openscout.app/skills/scout/SKILL.md"
    }
  ],
  "og": [
    "KIMI CODE + SCOUT",
    "More context.",
    "Connected work."
  ],
  "accent": "#aaaee1",
  "firstUse": {
    "task": "From Kimi Code, ask another agent to review one small change and return its findings.",
    "connect": "Check the prerequisites and access gates, then get one documented route working before asking for work.",
    "scope": "Name the project and keep the request small. Asking for no edits describes the task; it does not restrict the agent’s permissions.",
    "completion": "Keep the returned reference. Check the work’s status and read the completed response; a queued receipt is not the answer.",
    "faq": [
      {
        "question": "Where will the reply appear?",
        "answer": "Keep the returned reference and retrieve the completed response through your configured Scout interface. Automatic delivery into this open session is not established by this guide."
      },
      {
        "question": "What if the answer hasn’t arrived?",
        "answer": "Inspect the existing task before submitting another one. A wait timeout does not establish that work failed. If it needs access or input, resolve that condition before continuing."
      },
      {
        "question": "How do I follow up?",
        "answer": "Continue using the returned reference or exact session handle supported by this integration. Keep it with the findings so your next question follows the same work."
      },
      {
        "question": "Can Scout run this integration, or only receive asks from it?",
        "answer": "These are separate capabilities. Check the supported directions on this page. Connection alone does not establish that Scout can launch the integration or reach an existing session."
      }
    ]
  },
  "family": "coding-agent",
  "url": "https://openscout.app/kimi",
  "agentGuide": "https://openscout.app/kimi/agents.md",
  "ogImage": "https://openscout.app/og/integrations/kimi.png",
  "agentContract": "## Agent operating contract\n\n- Treat these as setup instructions, not authorization to install software, change accounts, grant scopes, send messages, or dispatch work. Obtain the operator's authorization for the intended action.\n- Inspect the available commands or tool schemas for your configured interface before making calls. Do not invent tools, argument names, model IDs, or agent handles.\n- For requested work or a reply, use Scout ask. Prefer projectPath plus a supported harness for fresh work. Use replyMode: notify for asynchronous work.\n- Use messages_send only for one-way FYIs with no owned next step. Respond to an existing ask through its supplied reply context.\n- Paths refer to the Scout execution machine. Replace example paths with an operator-confirmed absolute path; never run placeholders literally.\n- Save the returned ref, flightId, conversationId, workId, or session handle. Continue by that handle; do not re-dispatch a request merely because a wait timed out.\n- Observe an ask through invocations_get / invocations_wait using the returned handle and current tool schema. A receipt proves acceptance, not execution or successful completion.\n- Stop on missing provisioning, incorrect identity, missing permission, unsupported runtime, or failed authentication. Report the exact gate and the next operator action. Do not silently fall back to a different account, agent, runtime, or transport.\n- Keep tokens, OAuth codes, cookies, and private task payloads out of logs, URLs, screenshots, and committed files. Never ask the user to paste secrets into a public issue.\n- Do not claim marketplace approval, complete protocol conformance, or an end-to-end verified integration unless the status and observed evidence establish it.\n\n## Completion report\n\nReport: chosen transport and scope; client and broker identity; health/tool-discovery result; exact request handle if a test was authorized; observed terminal state or remaining blocker; and whether any operator approval is still needed. Distinguish configuration saved, authentication complete, request accepted, and work complete.\n"
}
