{"version":"2.1.224","anchor":"self-hosted-runner-operator-tools","canonical_anchor":"self-hosted-runner-operator-tools","heading":"Self-hosted runner operator tools","tier":"use","area":"Self-Hosted Runner","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.224\/e\/self-hosted-runner-operator-tools","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.224","markdown":"### Self-hosted runner operator tools\n\nNine operator tools can inspect runners, sessions, secrets, health, metrics and logs, loaded only via --base-tools.\n\n**What**\n\nNine new tools let an operator inspect and drive a self-hosted runner fleet: `self_hosted_runner_get_pool`, `_list_runners`, `_list_sessions`, `_list_secrets`, `_spawn_local`, `_read_health`, `_read_metrics`, `_tail_log` and `_requeue_session`. They load only when the CLI's `--base-tools` names one of them, and never when `CLAUDE_CODE_REMOTE` is set or the session kind is \"bg\". Auth reuses the operator's existing OAuth session, and tailed logs are redacted for secrets before reaching model context.\n\n**Details**\n\n- The enabling latch is one-way in production: the internal helper that turns the operator tools back off is documented as test-only.\n- When a runner spawns a session, any tool name starting with `self_hosted_runner_` is stripped from the server-supplied tools list before launch, so a spawned session cannot be handed fleet-operator tools.\n- If stripping empties the list, the `--tools` argument is dropped entirely and the default tool pool is used.\n\n**Evidence**\n\n`[runner:session] Stripped self-hosted-runner operator tool names from the server-supplied tools arg`, `self_hosted_runner_spawn_local`\n\n- Area: Self-Hosted Runner\n- Names: `CLAUDE_CODE_REMOTE`\n- Tier: Use it now\n- Useful: 3\/5\n- Signal: 5\/5"}