# Resume a local coding agent from your phone

> Use Canopy Remote to inspect a running project, reconnect after a phone disconnect, and steer the right agent without repeating a task.

Canonical HTML: https://canopyide.dev/use-cases/resume-coding-agent-from-phone
Article date: 2026-09-27

A phone is a view into the Canopy instance on your computer. If the connection drops, do not assume the coding agent stopped or completed. Reconnect to the host, identify the same session and checkout, inspect its current state, and only then decide whether to steer it.

## Prepare one inspectable desktop task

Open the repository in Canopy, confirm its branch or isolated worktree, and launch the installed CLI you intend to use. Give the agent one bounded outcome and a stop point, such as a draft fix with test results rather than an open-ended request to ship everything. Save the website, API, or worker commands needed to inspect the result. Before leaving the desk, record the project, component, CLI, branch, and last prompt. That short identity card prevents a phone screen full of sessions from becoming guesswork.

## Enable Remote for the access window

Canopy Remote is off by default. Its current-main documentation describes a PIN-protected browser interface on the running desktop host: use the local network when available or an optional Cloudflare, ngrok, or Tailscale tunnel outside it. Keep the host awake and connected. A person who can reach the endpoint and knows the current PIN can drive permitted surfaces, including agent terminals, so treat the PIN as an access credential. Canopy Remote is separate from any remote-control feature built into Claude Code, Codex, or another CLI; check which one your phone is actually using.

## Read the live task before sending a prompt

On the phone, match the project, component, branch, agent identity, and last prompt to your record. Canopy's Remote architecture says it streams the same Rust-owned PTY, with bounded scrollback, rather than launching a second terminal process for the phone. Look at current output and agent attention state. If a local service failed, inspect its status and output before asking for a code rewrite. If the agent says the task is done, inspect the changed files, PR, and checks; a summary is a pointer to evidence, not the evidence itself.

## If the phone disconnects, re-establish facts

First check whether the host Canopy app is still running and reachable. A dropped phone browser or WebSocket is a connection event; it does not by itself tell you whether the host-side CLI continued, waited, or stopped. Reopen the Remote path, authenticate again if needed, and find the same project and session. Compare terminal output and the latest file or PR state with what you saw before the loss. If an instruction might already have reached the CLI, do not send it twice until you know its outcome. If the host app exited, Canopy's documented process-cleanup boundary applies; reopen the project and use the CLI's supported conversation-resume path after checking current files and services.

## Choose attach, resume, or a fresh handoff

Attach when the original terminal is live and the task is still the same. Use the CLI's documented resume action if the process ended but its conversation is available; integration depth varies by CLI and release. Start a fresh session when the old conversation is unavailable or misleading, using a short handoff with the goal, branch, changed files, tests, and next action. Do not mistake a restored conversation for a process that ran while the laptop was off. If a change must be merged or deployed, use a screen and approval path that let you inspect the final diff and checks carefully.

## Close the access window intentionally

When the phone work is complete, save the branch, result, unresolved question, and next owner. Stop or rotate the Remote PIN and close any optional tunnel you started, then verify the remaining desktop agent and server state. Closing a phone tab only ends your view; it is not an agent stop control. If you need work to stop, use the owning CLI or host control and verify the process state before walking away.

## Copyable resources

### Phone reconnect card

Keep task identifiers, not secrets, in this note.

````text
Before leaving: project [ ]; component [ ]; branch/worktree [ ]; CLI/session [ ]; last prompt [ ]; expected stop point [ ].
After reconnect: host reachable [ ]; same session [ ]; latest terminal state [ ]; changed files/PR [ ]; services and URLs [ ].
Instruction already delivered before disconnect? [yes/no/unknown]. If unknown, inspect before resending.
Next action: attach [ ], resume [ ], or fresh handoff [ ].
Afterward: checkpoint saved [ ]; Remote PIN stopped/rotated [ ]; optional tunnel stopped [ ]; host processes verified [ ].
````

## Frequently asked questions

### Does Canopy Remote work when my computer is off?

No. It provides access to the workspace on your running computer.

### Is Remote enabled automatically?

No. It is off by default and uses a PIN when enabled.

### Did my coding agent stop when the phone lost connection?

A phone disconnect alone does not establish the agent's state. Reconnect to the running host and inspect the same terminal, branch, and latest result before retrying or resuming.

### Does closing the phone tab stop the agent?

Do not use tab closure as a stop control. Stop the CLI or host process through its own controls and verify the state; a later CLI conversation resume is separate.

## Sources and further reading

- [Canopy app README: Remote and access boundaries](https://github.com/FluidWorksApp/canopy-ide/blob/main/README.md)
- [Canopy architecture: shared PTY, Remote WebSocket, and app-exit boundary](https://github.com/FluidWorksApp/canopy-ide/blob/main/docs/architecture.md)
- [Canopy CLI integration and resume audit](https://github.com/FluidWorksApp/canopy-ide/blob/main/docs/agent-parity.md)
- [Canopy v0.3.4 remote parity release](https://github.com/FluidWorksApp/canopy-ide/releases/tag/v0.3.4)

## Related Canopy pages

- [Why won’t my phone open my local dev site?](https://canopyide.dev/guides/phone-cannot-open-localhost-dev-server.md)
- [Who can control your coding agent through Canopy Remote?](https://canopyide.dev/use-cases/who-can-control-agent-through-canopy-remote.md)
- [What happens to a coding agent when you close Canopy?](https://canopyide.dev/use-cases/what-happens-to-agents-when-canopy-closes.md)
- [Find the old agent session, then resume the right project](https://canopyide.dev/use-cases/find-old-agent-session-and-resume-project.md)
- [Review an agent-written PR, address comments, and fix CI](https://canopyide.dev/use-cases/review-agent-pr-and-fix-ci.md)

Canopy runs installed coding CLIs; CLI accounts, model selection, and provider billing remain separate. Check the installed release before relying on version-specific behavior.
