Continue a coding session on a paired always-on computer. Use when work must survive closing the primary laptop, needs remote computer-use testing, or should run on a scheduled/self-hosted execution host.
71
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Portal moves a local coding session to a paired computer while keeping the relay as the control plane and the paired computer as the execution residence. The Code Agents chat list supports moving one local chat or all eligible local and worktree chats in one handoff.
Portal for the coding session and keep the source folder as a Git
repository with an origin remote.portal/<timestamp>-<id> branch. Do not switch, reset,
stash, or overwrite the source checkout.envPolicy: "load-local".Use Move to Portal for one chat or Move local chats to Portal for the bulk
handoff. The transfer stops a local runner before snapshotting, pushes the
current worktree without changing the source checkout, and imports the full
text transcript into the same run id on the paired computer. The target gets a
continuation turn rather than replaying the original prompt. Chats waiting for
local approval are skipped because approval state is computer-local and cannot
be reconstructed safely.
Binary attachment bodies are not relayed. Their names, text, and an explicit omission marker remain in the transcript context. Oversized or otherwise unsafe context fails visibly so the source chat can be retried instead of being silently truncated.
Treat metadata.executionResidence as authoritative for where the run is
executing. It should report kind: "portal", host id and label, handoff id,
source commit, remote workspace path once prepared, and environment file names
without values. Follow-ups and stops must target the same host and remote run.
Before saying Portal is ready, verify the relay has a paired host, the host is heartbeating, the exact handoff commit was fetched, the detached worktree is clean, and the run metadata reports the remote workspace. For an existing chat, also verify the target transcript contains the imported event count and the continuation turn. A queued command is not proof that the remote runner started; inspect the remote result or event readback.
When a host is present but a handoff stalls:
relayUrl is the same deployment origin used for
pairing. A device paired against another origin can return 401 with a
fresh-looking token because the row is in a different database.remote-device.json once at startup and will not adopt a new token or relay
URL in an existing process..env contents or credentials to the source branch or relay.external-agents - relay and external-agent boundaries.a2a-protocol - idempotent cross-agent task lifecycle.concurrent-agents - preserve shared checkouts and peer work.reliable-mutations - verify durable handoff state.a941a2e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.