Docs / Multiplayer Mode (Remote Control)

Multiplayer Mode (Remote Control)

Use a live agent on your machine from any browser, together with the people you invite.

Multiplayer Mode, built on Remote Control (RC), lets you and the people you invite use an agent on your own computer from the Hub in a desktop or mobile browser. The agent, project files, runtime login, and model configuration stay on the device. The browser connects through the Hub; live conversation events and saved session history are sent to it.

A machine is a computer running the AgentGit daemon, agitd. A workspace connects that machine to project folders and the people allowed to use them. Device access is separate from a project’s local Agent repo binding.

1. Prepare the machine

Install AgentGit on the computer where your code lives. Install and sign in to at least one supported runtime there: Claude Code, Codex, or OpenCode. For example, check Codex from the terminal that will start the daemon:

agit --version
codex --version
agit login --hub https://agent-git.com
agit whoami --check

Use claude --version or opencode --version for those runtimes. Run a small prompt in that runtime to verify its provider login. AgentGit login authorizes the Hub connection; it does not sign in to your model provider.

2. Start Remote Control

agit login
agit rc start --detach

On first use, follow the sign-in prompt. AgentGit registers this device and enables inbound control for your own account automatically. No pairing code, manual enrollment, or configuration edit is needed. Other accounts cannot connect unless you explicitly grant access.

--detach runs the daemon in the background. Omit it to keep the daemon in the terminal. Add --name work-laptop to choose a recognizable name.

Open Workspaces and sign in with the same Hub account. Both registration and a running daemon are required for an online device.

Use CLI 0.2.1 or later for this onboarding flow. Run agit upgrade if needed. Linux 0.2.0 devices already connected through peer/Cloud remain supported; its old default startup path requires an upgrade. Native Windows uses the current CLI directly, without WSL.

Keep the machine awake, online, and the daemon running. Closing a browser tab does not stop a supervised agent. Stopping the daemon ends its running sessions.

3. Open your workspace and choose a folder

Once the device connects, open Workspaces and choose Create one; with a single connected device it is already selected. Open the workspace and use + folder to choose your project directory. You can create additional workspaces or select a different device in workspace settings. A workspace without a device displays No device and keeps its saved conversations available.

Binding a folder makes that project available within the workspace, subject to workspace roles and the device’s resource policy. The Hub asks which private Agent repo its sessions go to, offering the folder’s existing destination first (including one chosen with agit project bind), and creates a new one in your namespace if you name one. An organization’s private repo you can write is accepted too; the choice shows who can read each repo. Session branches save conversation history there. Your project’s code repository stays in its original folder; binding does not upload its .git repository.

The daemon checks project paths and routes approvals according to the workspace role. A folder binding is not an operating-system sandbox for arbitrary shell commands; review tool requests before authorizing them.

4. Start or continue a session

Open the workspace’s live view. Under Projects, choose the runtime button beside your bound folder to start a session. Send a prompt and read streamed replies, tool activity, and approval requests. Available controls depend on the machine’s runtime capability report.

To continue, select an existing session under its project. On this machine also lists discovered local conversations. A conversation marked live elsewhere · watch remains read-only while another application controls it.

Collaborate and answer approvals

Under Shared with, the owner or any full-access collaborator can create an invitation link and choose the role it grants: Viewer unless they pick Operator or Full access. Anyone holding the complete link can sign in, choose Join, and add their account to the workspace with that role; joining never lowers a role the account already has. Workspace repository ownership stays with the founding account.

Invitation links expire and can be revoked from the same panel. Revoking a link stops future joins; remove a collaborator from the member list to end their existing access. A removed collaborator cannot reuse an invitation they already redeemed to regain access.

You can also invite a Hub username, choosing the role the same way:

Role What the person can do
Full access Bind folders, manage members, use the machine’s file browser and terminal, and answer owner-required approvals
Operator Start or drive sessions in bound projects and answer approvals that the daemon delegates to operators
Viewer Read workspace sessions without sending prompts or approving tools

In Codex conversations, commands run without asking, so an operator’s messages can read files anywhere on the machine and its environment variables, such as API keys.

Approvals marked as requiring the owner can be answered by the owner or a full-access collaborator. An operator cannot grant themselves broader permissions. Runtime permission modes are capability-dependent; controls that loosen protection are owner-only. Runtime support describes OpenCode’s single-request approval policy and limitations.

Workspace membership is also bounded by the device’s resource policy. Registering the device automatically permits its owner; it does not authorize every workspace member. A device owner can inspect agit rc cloud policy and use agit rc cloud grant --help to grant a collaborator access to a specific project or session. Use the collaborator’s immutable Hub account ID for that policy.

Stop or disable remote access

Command Effect
agit rc status Inspect the local daemon and its live sessions
agit rc cloud status --hub https://agent-git.com Inspect Cloud registration and inbound access
agit rc list List Cloud devices available to your Hub account
agit rc stop Stop the daemon and end its supervised sessions
agit rc start --detach Start the daemon and enable inbound access for your account
agit rc revoke <device-id> Revoke the selected Cloud device credential
agit rc cloud inbound --hub https://agent-git.com --enabled false Disable inbound Cloud connections

Disabling access or revoking a device keeps saved workspace and conversation records. Revocation invalidates the device credential; the device needs a new Cloud registration before reconnecting. To pause access without revoking that credential, disable inbound connections and run agit rc start --detach when you want to enable them again.

Troubleshooting

Symptom What to check
No machine appears Check agit rc cloud status --hub https://agent-git.com and agit rc status; the browser and CLI must use the same Hub and account
Machine is offline Wake it, restore its network, and check the daemon; use a foreground start to inspect connection errors
Runtime is “Not found” Install its executable on the daemon’s PATH, then stop and restart the daemon
Runtime is “Not reported” Update AgentGit with agit upgrade, restart the daemon, and reload the live view
Runtime starts but cannot answer Check that runtime’s provider configuration and login on the machine
Input is read-only Check whether you are a viewer or watching a conversation active in another terminal
Tool is waiting for the owner Ask the workspace owner to review the approval; reconnecting does not delegate it
Reply is visible but save failed Read the save error, inspect the selected branch with agit log, and verify publication separately

For a network that requires an HTTP CONNECT proxy, start the daemon with the proxy environment in that same shell:

HTTPS_PROXY=http://proxy.example.com:8888 agit rc start --detach

Use your proxy’s address. Secure WebSockets use HTTPS_PROXY; ALL_PROXY is a fallback and NO_PROXY can bypass selected hosts. Lowercase forms are also supported, with uppercase taking precedence. The proxy URL must use http://; HTTPS and SOCKS proxy URLs are not supported by the RC transport. TLS still verifies the Hub certificate inside the tunnel. Restart the daemon after changing its environment.

To reconnect a revoked device intentionally, sign in as its owner on that machine and run agit rc start --detach. The peer startup CLI restores the device registration used by its workspaces. Background retries cannot restore revoked access. Healthy restarts preserve credentials and existing device grants.