Skip to content

Chan manual

Collaboration & sessions

Share workspace sessions, identify clients, and hand over leadership locally or remotely.

Share a workspace session

Chan's collaboration protocol coordinates presence, document and drawing updates, and leadership across connected workspace windows. Participants have leader or follower roles, with explicit handover between them. The same protocol works locally and over a remote connection.

Each client connects to the machine serving the workspace. For remote access, use ssh or Eternal Terminal, or a gateway for account-based access and devserver sharing. The connection diagram shows how clients reach the shared workspace.

Identify and manage clients

cs session lists clients across the server's terminal and workspace windows. A client can hold several windows; workspace leadership belongs to windows.

$cs session list
$cs session self --name "laptop"

self --name names your client and, in a workspace, its participant. If several clients view the same shell, Chan asks you to identify yours. Scripts can select a client explicitly with --id CLIENT_ID.

Use an ID from cs session list with cs session info CLIENT_ID to inspect its windows, terminals, and connections. cs session detach CLIENT_ID disconnects that client while keeping shared terminals, running programs, and saved layouts. The client can explicitly reconnect; detaching does not revoke its access.

Hand over workspace leadership

From a workspace terminal, request leadership from the current leader:

$cs session handover

The leader answers with cs session handover --accept or --reject. When the leader is disconnected, use cs session takeover. Adding --force takes leadership even from a live leader, without a confirmation prompt.

Agent coordination uses the separate Team Work tools: named terminals, groups, and the cs command surface. For the client and participant model, read the session design.