{#- Settings → Integrations: Claude Code on this machine. Expects: plan, remove_plan, mode, modes, message, error, checks, unlinked. Nothing is written until a button is pressed. -#} {%- set d = plan.detection %}
{% if message %}

{{ message }}

{% endif %} {% if error %}{% endif %}

Claude Code on this machine

claude
{% if d.claude_path %}{{ d.claude_path }} {{ d.claude_version or ("version unknown: " ~ d.version_error) }}{% else %}not found on PATH{% endif %}
Desktop app
{% if d.desktop_app %}{{ d.desktop_app }}{% else %}not found{% endif %}
http hooks
{{ "supported" if d.http_hooks else "not confirmed" }}
User settings
{{ plan.paths.settings }}

Plan

Hooks: {{ plan.mode }} ({{ plan.mode_reason }})

{% if plan.error %}

{{ plan.error }}. Nothing will be written.

{% elif plan.hooks %}

{{ plan.hooks.summary }}

{% set diff = plan.hooks.diff() %} {% if diff %}
{{ diff }}
{% endif %} {% endif %} {% for note in plan.notes %}

{{ note }}

{% endfor %}

MCP server

{% if plan.mcp_ok %}

{{ plan.mcp_detail }}

{% else %}

{{ plan.mcp_detail }}. Claude Code registers it itself; run this in a terminal (relaybay token prints it with the token filled in):

{{ plan.mcp_command }}
{% endif %}
{% if checks %}

Check

{% endif %}

Unlinked hook sessions

{% if unlinked %}

Hook events whose session could not be matched to one relaybay session. They link exactly once the agent passes its hook_session on a write.

    {% for s in unlinked %}
  1. {{ s.name }} {% if s.status %}{{ s.status }}{% endif %} {{ s.unlinked_reason }} · {{ s.cwd or "" }} · seen
    {{ s.cc_session_id }}
  2. {% endfor %}
{% else %}

None.

{% endif %}