{
  "schemaVersion": 1,
  "reviewedAt": "2026-09-23",
  "slug": "claude",
  "name": "Claude Code",
  "category": "Plugin + channel",
  "headline": "Claude Code, with the rest\nof your agents.",
  "summary": "Ask any of your Scout agents for work without leaving Claude Code, and follow the result in the same session. The Scout plugin adds /scout commands; the CLI and MCP work too.",
  "status": "Local developer pilot · validate your installed client",
  "marketplace": "Install scout from the OpenScout custom plugin marketplace hosted in oscout/claude-scout. Custom marketplace installation does not imply a curated marketplace approval.",
  "transport": "Claude plugin commands · optional Scout channel · CLI/MCP",
  "flow": [
    "Claude Code",
    "Scout",
    "Coding agents"
  ],
  "requirements": [
    "OpenScout installed and a healthy local broker (scout doctor).",
    "Claude Code installed and authenticated on the Scout machine.",
    "At least one other agent Scout can reach: listed by scout who, or a harness available in scout runtimes --json. Its provider usage and permissions still apply.",
    "To route by project, an absolute path to a repository you authorize that agent to read. The path must exist on the Scout machine."
  ],
  "steps": [
    {
      "title": "Check the broker and your agents",
      "body": "Run these commands in a terminal on the Scout machine. Doctor should report a healthy broker; who lists the agents you can ask. Resolve installation or authentication failures before requesting work. See Install Scout below if the CLI is missing.",
      "code": "scout doctor\nscout who"
    },
    {
      "title": "Install the Scout plugin",
      "body": "Run these commands inside Claude Code after Scout is healthy.",
      "code": "/plugin marketplace add oscout/claude-scout\n/plugin install scout@openscout"
    },
    {
      "title": "Ask an agent from Claude Code",
      "body": "Inside Claude Code, list your agents, then ask one by name. The receipt comes back right away; the answer follows in the same Scout conversation. To route by project instead, use --project with an absolute path, and --harness to choose the runtime. In a terminal without the plugin, scout ask takes the same arguments. Save the ref from the receipt.",
      "code": "/scout:who\n/scout:ask --to <agent> \"Review the uncommitted diff. Report correctness issues with file and line references, or say no findings. Do not edit files or run tests.\""
    },
    {
      "title": "Let replies reach your open session (optional)",
      "body": "By default you follow results with /scout:latest or scout wait. To have replies arrive in the Claude Code session you already have open, turn on Scout’s channel with the host’s development-channel opt-in; the package README has the steps. Ordinary asks do not need it."
    },
    {
      "title": "Follow the returned work",
      "body": "In a terminal, replace RETURNED_REF with the exact ref from the receipt. Wait for the result before deciding what to change. Then use the same ref for a follow-up. A timeout means you should observe the existing request again; it is not a reason to dispatch another review.",
      "code": "scout wait RETURNED_REF --timeout 120\nscout ask --ref RETURNED_REF \"Explain the highest-priority finding, or confirm there were no findings. Do not edit files or run tests.\""
    }
  ],
  "verification": "Success means the request returned a ref, scout wait reported completed with the agent’s reply, and a follow-up used that same ref. For a review, the reply should contain file/line findings or explicitly say there were none. A queued receipt, timeout, or request for permission is not a completed review. These are instructions for your own run, not a claim that your environment has already passed.",
  "troubleshooting": [
    {
      "symptom": "The receipt is queued, or the wait times out",
      "action": "Keep the returned ref and run scout wait on it again. Check the agent’s harness for an authentication or permission request. Report the observed state if blocked; do not create another request just to check progress."
    },
    {
      "symptom": "The agent cannot see the intended changes",
      "action": "Confirm that the absolute project path points at the intended checkout on the Scout machine. Include the desired branch or diff scope in the prompt. A shared checkout can change while the agent reads it; keep it stable for the duration of the review."
    },
    {
      "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.",
    "Scout stores coordination records locally. Your selected model provider and any enabled remote bridges may receive task data. Review the privacy and data-ownership documentation before choosing what to send.",
    "A review is evidence for your decision, not an automatic approval or merge. OpenScout is intended for high-trust local developer pilots."
  ],
  "sources": [
    {
      "label": "Example: Claude Code asks Codex for a review",
      "url": "https://openscout.app/blog/claude-code-codex-review-workflow"
    },
    {
      "label": "First ask walkthrough",
      "url": "https://openscout.app/docs/learn-02-first-ask"
    },
    {
      "label": "Data ownership",
      "url": "https://openscout.app/docs/architecture#the-data-model"
    },
    {
      "label": "Claude Scout package and channel setup",
      "url": "https://github.com/oscout/claude-scout"
    },
    {
      "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": [
    "CLAUDE CODE + SCOUT",
    "Keep the conversation.",
    "Expand the team."
  ],
  "accent": "#d97757",
  "firstUse": {
    "task": "From Claude Code, ask Codex for a second opinion on one small change. Request findings before any edits.",
    "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/claude",
  "agentGuide": "https://openscout.app/claude/agents.md",
  "ogImage": "https://openscout.app/og/integrations/claude.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 the plugin, use /scout:ask with --project, a supported --harness, and --notify. Follow the returned ref with scout wait in the shell or the supplied reply context. Channel delivery requires the separate host opt-in. If using MCP directly instead, inspect the available tool schemas first.\n- Use the transport-specific instructions above. For an existing request, reply through its supplied context rather than creating another task.\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 the existing request through the configured transport. 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"
}
