Agent Device Cloud
Sign in

Teams and device sharing

Team policies govern members' devices. External sharing gives a named account selected folders and tools on one device. Connectors remain outbound; execution stays on the device.

Start collaborating

  1. Create a team, invite a member by email and send the invitation link. Email is not sent automatically.
  2. The recipient signs in with a verified account, reviews and accepts. Opening the link does not accept.
  3. Share a device with a team you administer or an external user. Select exact folders, tools and approvals.
  4. Switch to the team and assign each member's device policy. Ordinary members start without device access.
  5. Each person authorizes their own Agent and connects from CLI, MCP, SDK or Zioon. Accepting sharing does not expand an existing Agent grant.

Teams and members · Sharing and invitations

Choose execution mode

ModeBehavior and revocation
Read onlyStructured file and folder reads only. Revocation stops subsequent calls.
Isolated executionEach call uses a temporary non-root Linux container with no network or host environment. Source is copied read-only; writes are discarded and bounded command-log artifacts retained. Revocation or lease expiry tears down the whole container.
Trusted hostRequires local enablement and explicit trust acknowledgement. ADC revocation cannot undo host changes or other access already established.
Device setup
adc-node root add /path/to/project --name Collaboration
adc-node sharing on --isolation docker --image 'REGISTRY/IMAGE@sha256:DIGEST'
adc-node sharing off

Isolation requires Linux Docker, seccomp, a digest-pinned image, Node 24 and Bash. Verification failure does not fall back to host execution. Update old Connectors first. Platform servers and managed resources cannot be shared as physical devices.

CLI / SDK / API

Collaboration CLI
adc account list --json
adc team create --name Research --json
adc team invite TEAM_ID --email colleague@example.com --json
adc invitation accept INVITATION_ID --yes --json
adc team device-add TEAM_ID --node NODE_ID --scope scope.json
adc access create --account TEAM_ID --name Analyst --devices NODE_ID --capabilities read
adc share create NODE_ID --email guest@example.com --scope scope.json --days 7
adc share revoke BINDING_ID --yes
scope.json
{
  "roots": [
    {
      "rootId": "root_EXACT_ID",
      "path": "/path/to/project",
      "writable": false
    }
  ],
  "allowedTools": [
    "file.read",
    "file.list",
    "file.search",
    "device.list",
    "task.status",
    "task.result",
    "task.wait",
    "task.cancel"
  ],
  "execution": "read-only",
  "approvalPolicy": "always",
  "templateIds": []
}

Use adc login for management and a separate adc connect Agent authorization for tools. SDK selects teams with client.withAccount(teamId); HTTP uses X-ADC-Account. Agent tokens stay bound to their grant.

SDK exposes accounts, createTeam, teamMembers, teamDevices, inviteTeamMember, updateTeamMember, linkTeamDevice, inviteDeviceShare, respondInvitation, deviceShares, updateDeviceShare and endDeviceShare. Pass resourceBindings: [{nodeId, bindingId}] when creating shared-device Agent access.

Revocation, approval and history

New calls recheck access and active work rechecks on lease renewal. Wider sharing requires the same recipient's acceptance; existing Agent scopes remain fixed. Requester and resource owner approvals are independent and all must be satisfied before dispatch. Members see their own results; owners see activity facts. Refresh on 409 conflicts; never resubmit side effects after unknown outcome.