CLAUDE_ENVIRONMENT_SECRET= CLAUDE_RUNNER_ACCOUNT= Set up Claude Code self-hosted runner on this VM by following the exe.dev recipe at https://exe-staging.dev/deploy/claude-code-runner.md from top to bottom. The values at the top of this message are mine: - CLAUDE_ENVIRONMENT_SECRET: the environment key claude.ai showed once when you created the self-hosted environment - CLAUDE_RUNNER_ACCOUNT: the email of the claude.ai account whose sessions this runner serves, or `none` for a runner anyone in your organization can use Ask me for any that still say before you need them. The recipe's example VM name is my-claude-code-runner. This VM's name is the output of `hostname`: use it wherever the recipe writes my-claude-code-runner. Skip the step that creates the VM; you are on it. You are done when all of these are true. Check each one yourself: - Claude Code 2.1.224 or later installed for a dedicated `claude-runner` user - The environment key in /etc/claude/environment-secret, readable only by `claude-runner` - The claude-runner systemd service, enabled so it comes back after a reboot - `Registered: runner_id=` in `journalctl -u claude-runner`, with no `[runner:fatal]` line after it Run "Set up the runner by hand" from "On the VM", skipping VM creation and SSH. CLAUDE_ENVIRONMENT_SECRET is a secret: write it to /etc/claude/environment-secret with `printf '%s\n' "$value" | sudo -u claude-runner sh -c 'cat > /etc/claude/environment-secret'` instead of the interactive paste, and never print it. If CLAUDE_RUNNER_ACCOUNT is `none`, skip /etc/claude/runner.env. Don't start a session: that happens on claude.ai. If the log says `RegisterRunner auth failed`, tell the owner the environment key is wrong or revoked. Finish by pointing the owner to "Start a session on your VM". Finish with the URLs I should open.