CCR CLOUD JOURNAL · OCTOBER 20, 2026

First the task. Then the phone.

When remote coding fails, three independent problems can look like one: agent authentication, repository access, and the browser connection.

It is tempting to begin with a phone URL. But a reachable website does not prove the agent can call a model, and a successful model reply does not prove Git can read a private repository. Check those layers in a deliberate order.

1. Start with the server account.

Run ccr-cloud as the user who already uses Claude Code and Git on the server. Setup checks prerequisites and can start the service, but it does not log into your model provider or GitHub for you.

Use the SSH-forwarding command printed by setup and open the matching localhost port on your laptop. This keeps networking familiar while you verify the rest.

2. Ask for a scratch reply.

Create a scratch task with “Reply OK.” This is an explicit model-access test and uses your configured inference. Wait for both the response and Ready state. Then send a follow-up and try Stop/Resume.

If nothing happens, check the task’s state before sending the message again. A pending approval can make a healthy session look stuck. A stopped session needs Resume. Repeated prompts are not a reliable diagnostic.

3. Bring in the repository.

Select a local repository under ~/src. The task’s worktree starts from committed files; ignored dependencies and environment files need their own setup. Uncommitted work in your original checkout is not silently copied.

For remote repositories, SSH URLs use your SSH credentials. HTTPS uses a credential helper. GitHub CLI API login is a third capability. Check the one the task actually needs.

4. Choose phone networking.

Once the task works on your laptop, configure private Tailscale access or a protected Cloudflare hostname using the canonical guide. Your laptop’s localhost URL is not reachable from your phone.

The planned managed connection will automate pairing and HTTPS setup. Until then, the existing self-hosted routes remain the supported options. No networking option fixes missing model credentials.

5. Test a real interruption.

Close and reopen the browser. Check that you see the same session and understand whether a command is working, awaiting approval, or finished. Do not treat a network disconnect as permission to replay an uncertain action.

The getting-started guide follows this order. If a step fails, report the specific state and a sanitized diagnostic, rather than uploading your full environment or token file.

← Back to the journal