Quick Start: Run Claude Code or Codex Remotely

Updated

This guide connects one development machine to PandaNpc and verifies that you can run Claude Code, Codex, or PandaCode from another device. The agent still executes on your development machine; PandaNpc gives you a synchronized remote interface for messages, approvals, questions, and session history.

Most people should use the Add a device flow because it generates a one-time install command already linked to their account. Allow about five minutes, plus any model-provider sign-in your coding engine requires.

Before you begin

You need:

  • A PandaNpc account opened in the web app, desktop app, or iOS app.
  • A host running Windows x64, macOS, or Linux x86_64.
  • Internet access from the host and permission to install a user-level background service.
  • A project folder you are allowed to modify.
  • A Claude, ChatGPT/Codex, or custom-model account if your chosen engine is not already authenticated.

If you only need PandaNpc’s built-in chat and do not want to control an agent on another machine, PandaPaw is not required. See Installation for the client-only options.

1. Generate the host install command

While signed in, open Connected Devices and choose Add a device. PandaNpc creates a one-time device key and shows the exact command for your operating system.

Copy that command to the machine where the coding agent should run. Treat it like a password until it has been used: a one-time key pairs one machine and should not be posted in chat, screenshots, issues, or shell-history exports.

If you prefer browser authorization instead of a prepared key, use the plain installer in the next step. It runs pandapaw login and opens the authorization page for you.

2. Install PandaPaw on the host

macOS or Linux

Run the prepared command from Connected Devices, or use the plain installer:

bash
curl -fsSL https://cos.pandanpc.com/pandapaw/install.sh | sh

Windows PowerShell

Run the prepared command from Connected Devices, or use:

powershell
iwr -useb https://cos.pandanpc.com/pandapaw/install.ps1 | iex

The installer adds PandaPaw and its background services, installs missing supported coding engines when possible, and provides a private Node.js runtime when the host does not have a suitable one. With a prepared device key, account pairing happens during installation. With the plain command, approve the browser authorization request when prompted.

The installer may finish even when account authorization is postponed. If it says the install succeeded but the account connection is incomplete, run:

bash
pandapaw login

3. Verify the host services

On the host, run:

bash
pandapaw status

The command should recognize the installed services and show the account-connected machine. If the shell cannot find pandapaw, open a new terminal first so it reloads the updated user PATH.

For a Git project, you can also check whether Agent Center recognizes the project root:

bash
pandapaw agent status --root /path/to/your/project

Use a real absolute project path. Agent Center project binding works best when the directory has a stable Git remote.origin.url.

4. Start the first remote session

  1. Open PandaNpc Agent on your phone, browser, or another desktop.
  2. Find the newly connected machine. A green status indicator means the host is currently reachable.
  3. Choose Claude Code, Codex, or PandaCode and select the project working directory.
  4. Start a session. If the engine asks you to sign in, complete that provider’s authorization on the host or through the displayed login flow.
  5. Send a non-destructive test prompt such as: Show the current working directory and list the top-level files. Do not edit anything.

You are fully connected when the reply names the expected project directory, the file list matches the host, and any permission question appears on the remote client for you to approve or deny.

5. Confirm reconnect behavior

Close the viewing client, wait a few seconds, and reopen the same session. The existing history should return and the host should remain online. This checks the actual remote path instead of only proving that the installer downloaded successfully.

Do not put the host to sleep during this test. A sleeping or powered-off host cannot run the agent even though the saved connection still appears in your account.

Troubleshooting

The machine does not appear in Agent

Run pandapaw status on the host. If installation succeeded but no account is attached, run pandapaw login. If you used a prepared key and it was already redeemed or expired, generate a new one in Connected Devices and rerun the displayed command.

`pandapaw` is not recognized

Open a new terminal. On macOS/Linux, confirm that ~/.local/bin is in PATH. On Windows, the installer adds %LOCALAPPDATA%\Programs\pandapaw to the user PATH; a terminal opened before installation will not see the new value.

The machine is listed but offline

Confirm the host is powered on, awake, and able to reach the internet. Then check pandapaw status. Corporate firewalls must allow outbound HTTPS/WebSocket traffic; you should not create an inbound port-forwarding rule.

The connection works but the engine asks for authentication

PandaPaw pairing and model-provider login are separate. Pairing proves the host belongs to your PandaNpc account; Claude Code or Codex may still require its own subscription login or API configuration. Complete the engine’s normal sign-in, then retry the session.

The agent opens in the wrong folder

End that test session and create one with the intended working directory. Before approving tool use, ask the agent to print the current directory. A remote connection does not add a filesystem sandbox by itself; the engine’s tool permissions and selected working directory remain important.

Next steps

  • Read the full PandaPaw host guide for updates, service checks, and connection architecture.
  • Review Account and billing to understand which subscription or provider pays for each session.
  • Add custom AI providers when you want an OpenAI-compatible endpoint, a self-hosted model, or a separate API key.