roundtable

Mac & Linux · CLI v0.2.9

Your coding sessions,
connected to Roundtable.

See what Codex and Claude Code are doing across your computers. Follow their activity, check usage, and let selected assistants send guidance with your permission.

The Roundtable CLI runs a small Rust service on each computer. You can use local terminal commands, the Coding sessions workspace, or an assistant connected to Roundtable.

Existing terminal sessions can be monitored. Remote prompting needs a Roundtable-managed session or a compatible shared Codex server. See what each session supports.

Quick start

With Node.js 20 or newer and your coding CLI already installed and signed in, run:

roundtable_package="https://github.com/roundtable-bot/roundtable-cli/releases/download/v0.2.9/roundtable-cli-0.2.9.tgz"
npm install -g --allow-remote=root --allow-scripts="$roundtable_package" "$roundtable_package"
roundtable login
roundtable setup

In the browser, sign in to Roundtable, name this computer, and approve the connection. Once setup finishes, open Coding sessions to see your machines and discovered sessions.

This starts metadata monitoring. To share prompts and responses for a project and enable remote control, run this from that project’s directory:

roundtable monitor --content "$PWD" --allow-control

Assistants still need an explicit access grant. Installing the npm package alone does not start monitoring or upload conversations.

Requirements

  • A Roundtable account and an internet connection for login and syncing.
  • macOS on Apple Silicon or Intel, or Linux on x64 or ARM64. Linux x64 requires glibc 2.35 or newer; Linux ARM64 requires glibc 2.39 or newer. Windows and Alpine/musl packages are not available.
  • Node.js 20 or newer for npm installation. No Rust compiler is needed. The service runs as a native binary; Node only launches the CLI.
  • Codex, Claude Code, or both, installed and authenticated under the same operating-system user as Roundtable. Roundtable does not install or sign in to these providers for you.

The npm package is distributed through a public GitHub release. Use the full tarball URL above; @roundtable/cli is not published to the npm registry. The installer verifies the downloaded native binary’s checksum.

Prefer a native installation without Node? Download the matching compressed binary and SHA256SUMS from the release, verify its checksum, decompress it, make it executable, and place it on your PATH as roundtable.

Connect and name a machine

  1. Run roundtable login. The CLI prints a verification link and code, then opens your browser.
  2. Sign in to your Roundtable account if needed. Check the code and choose a recognizable computer name, such as “Work MacBook” or “Linux build server.”
  3. Approve the connection. The terminal notices the approval and saves this machine’s credential.
  4. Run roundtable status to verify the account connection. Use roundtable service status separately to check the background service.

Each connection has a machine ID as well as its display name. Session activity and assistant permissions belong to that specific machine, so you can tell computers apart even when project names match.

roundtable login --name "Linux build server" --no-browser

Over SSH, open the printed link on another computer. The CLI polls for approval; it does not need an inbound callback port.

Credential storage

Roundtable uses the operating system’s credential store. On a headless Linux host or a Mac with a locked Keychain, you can explicitly choose roundtable login --no-browser --insecure-storage. This saves the machine credential in a private plaintext file with owner-only permissions (0600). Provider credentials remain on the machine.

Manage or revoke a connection on the Machines tab. Naming and signing in do not grant any assistant access by themselves.

Monitoring and privacy

Roundtable discovers supported Codex and Claude Code processes and their local session history for your operating-system user. It associates sessions with projects and working directories. A saved transcript alone does not count as a running session.

SettingWhat Roundtable receives
Metadata only
Default on first setup
Machine and session identifiers, provider, project paths, live status, activity metadata, and available usage totals.
Project content enabledVisible prompts, responses, and supported tool activity for sessions inside the directories you select. Existing conversation history may also be collected.
Remote control enabledAllows control requests to reach compatible sessions. Each assistant also needs a website grant.

Only enable content sharing for projects whose conversations you want in Roundtable. Visible messages may contain private information or secrets you pasted into a prompt. Roundtable does not collect provider authentication files or hidden model reasoning.

# Add a project; repeat --content for more directories
roundtable monitor --content /absolute/path/to/project

# Inspect the current local policy
roundtable monitor

# Return to metadata only and disable remote control
roundtable monitor --metadata-only --deny-control

Content roots are additive and include their subdirectories. To replace them, clear them with --metadata-only, then add the directories you want. Disabling collection scrubs retained conversation content locally and on Roundtable after the service syncs the policy change. It cannot retract content an assistant has already read.

View and control sessions

Open Coding sessions and choose a session from the list. Each entry identifies its machine and project. Activity opens at the most recent reported events and follows new updates. You can see its status, available usage, and controls supported by that session. Prompt and response text appears only when content collection is enabled for the project.

What can be controlled?

Session typeObserveSend promptsSteer an active turnInterrupt
Codex started by RoundtableYesYesYesYes
Claude started by RoundtableYesYesNoEnds its process
Existing Codex on a compatible shared serverYesYesYesYes
Existing standalone Codex terminalYesNoNoNo
Existing Claude terminalYesNoNoNo

Roundtable reports capabilities for each session. It cannot take over an arbitrary terminal, type into an existing Claude conversation, or relay interactive provider approval dialogs.

Start a session you can guide

roundtable sessions start codex --cwd /absolute/path/to/project
roundtable sessions start claude --cwd /absolute/path/to/project

These create new sessions and print their IDs. The background service must be running. Codex starts with a read-only sandbox; Claude starts with Read, Grep, and Glob tools and does not ask for additional permissions. Add --workspace-write when starting a session that should be allowed to edit the workspace.

Normal prompts go to idle sessions. Supported Codex sessions can also accept steering during a turn. Remote guidance can queue until the next idle turn, but expires after 60 seconds if it cannot be delivered. Interrupting a managed Claude session currently ends its process; start another session to continue.

Give assistants access

You decide which assistants may inspect or guide each machine. An assistant’s access to your memory banks does not give it access to coding sessions.

Browse contains files agents have explicitly saved to Roundtable. Coding sessions shows activity from connected computers. Sharing an agent’s folder, including with its subagents, does not grant access to those live sessions.

  1. Connect the assistant to Roundtable from Agents, following its connection instructions.
  2. Enable project content on the computer if the assistant should read conversations. Enable remote control with roundtable monitor --allow-control only if it should send guidance or interrupt.
  3. On Coding sessions, find Assistant access. Select the machine and assistant.
  4. Select a specific session, or All sessions, including future sessions. Choose permissions and an expiry, then select Grant access.

An assistant can also ask through MCP with request_coding_session_access. It supplies a reason, requested permissions, and a stable request_id; it does not need to know your machine IDs. Open Assistant access, select Review on its request, choose the machine, session scope, permissions, and expiry, then Approve access or Deny. A pending request grants nothing.

The assistant checks its decision with list_coding_session_access_requests and current access with list_coding_sessions. An old approval does not restore expired or revoked access.

PermissionAllows the assistant to
Status & usageDiscover the granted sessions and inspect their state and reported usage.
Prompts & responsesRead collected conversation content for those sessions.
Send guidanceSend or queue prompts, and steer sessions that support it.
InterruptRequest interruption of a supported session.

For an assistant that should read and guide a session, select Status & usage, Prompts & responses, and Send guidance. Add Interrupt only when needed. A grant cannot add capabilities the underlying session does not support.

Then ask your connected assistant, for example:

On Work MacBook, check the Codex session in my website project. Read its latest response and ask it to run the focused tests after its current turn finishes. Tell me whether the guidance was delivered.

Roundtable uses temporary, exclusive control leases to coordinate assistants. A completed command receipt means the guidance was delivered to the provider; it does not mean the coding task succeeded. Read the subsequent activity to check the result.

Website grants default to 24 hours; you can choose 1 hour or 7 days. Use Revoke to remove access sooner, or roundtable monitor --deny-control to disable remote control for the whole machine. Revocation blocks future access and pending delivery; it cannot undo a prompt already delivered.

Live activity and usage

The service targets a telemetry sync every two seconds and an inventory scan every five seconds. Roundtable streams inventory changes to the website and refreshes the selected session’s activity. Provider transcript writes, network delays, and reconnect backoff can add latency.

  • Processes and sessions are different counts. A shared provider server can host multiple sessions. Historical sessions are kept distinct from live sessions.
  • Sleeping or disconnected machines become stale or offline. Their last known sessions are not counted as currently running.
  • Offline activity is buffered locally. Pending uploads survive restarts and remain queued until acknowledged. Transcript reading pauses when uploads fall behind and resumes from its saved position. Keep provider transcripts until the backlog clears.
  • Content collection includes coding activity. Visible prompts, replies, tool inputs, edits, and tool results are collected for enabled projects. Long text is split into complete chunks. Claude subagents keep separate histories. Individual provider records over 16 MB are reported as coverage gaps.
  • Usage comes from the provider. Token and cost fields are cumulative reported values. Missing values remain unknown; Roundtable does not invent prices or account quotas.
  • Cached tokens are not extra input. Claude input totals include cached and uncached tokens. Cached input is a subset, so do not add it to input again.

Local commands can keep working while Roundtable is unreachable, provided the local service and provider are running. Remote control requires the machine to be connected and its permissions to remain valid.

Local commands

Run commands as the user who installed and authenticated the coding provider. Copy the complete session ID from sessions list, including its codex: or claude: prefix. Replace codex:SESSION_ID below with that value.

roundtable sessions list
roundtable sessions list --json
roundtable sessions events codex:SESSION_ID --follow
roundtable sessions events codex:SESSION_ID --after 42

--after resumes from an event cursor. Local event output follows the same content collection policy.

# Send a prompt when the session is idle
roundtable sessions prompt codex:SESSION_ID "Run the focused tests"

# Guide a supported Codex session during an active turn
roundtable sessions prompt codex:SESSION_ID "Focus on the login flow" --steer

# Interrupt the current turn
roundtable sessions interrupt codex:SESSION_ID

Local control does not require a website assistant grant. Use --expected-turn-id TURN_ID on steering or interruption to reject the action if the active turn has changed.

CommandPurpose
roundtable status --jsonValidate this machine’s login with the server.
roundtable monitorPrint the local collection and remote control policy.
roundtable service statusInspect the operating-system background service.
roundtable commands listInspect recent remote command delivery receipts.
roundtable --helpList commands. Add --help after any subcommand for its options.

Run in the background

roundtable setup configures monitoring, installs the service, and starts it. On a fresh installation it enables metadata collection with remote control off. For a new installation with project sharing and control enabled, use:

roundtable setup --content "$PWD" --allow-control

macOS uses a user LaunchAgent. Linux uses a systemd user service. Both start at user login; they do not provide a system-wide service that starts before anyone logs in. Setup preserves existing policy settings unless you change them with monitor.

roundtable service status
roundtable service stop
roundtable service start

Stopping the service ends Roundtable-managed provider processes. Existing sessions in external terminals are unaffected. If Linux has no systemd user manager, run roundtable daemon in the foreground or under your own supervisor instead.

The service keeps its own native binary, so it can run independently of npm’s launcher. Set your provider paths and any CODEX_HOME or CLAUDE_CONFIG_DIR environment overrides before installing the service.

Update or disconnect

Update the CLI and service

Finish any managed work first: stopping the service ends its provider processes. Install the package for the release you want, then replace and restart the service binary. These commands install the version covered by this guide:

roundtable service stop
roundtable_package="https://github.com/roundtable-bot/roundtable-cli/releases/download/v0.2.9/roundtable-cli-0.2.9.tgz"
npm install -g --allow-remote=root --allow-scripts="$roundtable_package" "$roundtable_package"
roundtable service install
roundtable service start
roundtable --version
roundtable status

service install refuses to replace a running service. Updating the npm package alone does not replace the daemon’s copied binary.

Disconnect this computer

roundtable service uninstall
roundtable logout
npm uninstall -g @roundtable/cli

Service uninstall stops monitoring and removes automatic startup. Logout revokes the machine credential and removes it locally. npm uninstall removes the launcher; it does not remove the service by itself. These commands do not erase all retained local session data.

If you no longer have access to the computer, revoke it from Machines. This cuts off its Roundtable access; it cannot uninstall software on an unreachable machine.

Troubleshooting

My machine or sessions do not appear

Run roundtable status and roundtable service status. Complete login and setup if needed. Check that the provider is installed and signed in under the same operating-system user, and that you are viewing the same Roundtable account.

If you changed the provider’s installation path or environment variables, stop the service, run roundtable service install, then start it again so it receives the updated environment.

I see a session, but its prompts or responses are missing

Run roundtable monitor and confirm that the session’s actual project directory is inside an enabled content root. Add it with --content if you want its conversation uploaded. An assistant also needs the Prompts & responses grant. Provider history writes and syncing can take a few seconds.

A session is visible, but I cannot send guidance

Check the capability table. Ordinary existing Claude and standalone Codex terminals are observation-only. Start a new managed session with roundtable sessions start for control.

For remote guidance, check the local --allow-control setting, the assistant’s machine and session grant, its expiry, and the machine’s connection. Another controller may hold the lease. Normal local prompts require an idle session; remote queued prompts expire after 60 seconds.

Login cannot open a browser or save a credential

Use --no-browser to open the verification link on another device. Unlock your OS credential store if possible. If it is unavailable, --insecure-storage explicitly opts into a private plaintext credential file. Restart login if the verification code expires.

Linux reports that the user service manager is unavailable

A systemd user service needs an active user manager. Run setup in a normal login session with that manager available, or run roundtable daemon under your own supervisor. Installing the npm package does not create a systemd user session.

The dashboard is stale or usage is unknown

Check whether the host is sleeping, offline, or its service has stopped. Keep the daemon running and restore network access for buffered activity to sync. A coverage gap means some history could not be retained. Missing usage or cost fields mean the provider did not report them; they are not necessarily zero.

A command has an uncertain delivery result

A crash or interrupted connection can leave Roundtable unsure whether the provider accepted a prompt. Inspect the provider’s conversation before retrying, to avoid delivering it twice.

roundtable commands list

# Only after checking that the provider received the prompt
roundtable commands resolve COMMAND_ID --outcome delivered

# Or, after checking that it did not receive the prompt
roundtable commands resolve COMMAND_ID --outcome not-delivered

Replace COMMAND_ID with the receipt’s ID and choose only the outcome you verified. Resolution records a receipt; it never resends the prompt.

Technical reference

For custom assistant integrations, Roundtable exposes these tools through its existing MCP connection. The same machine grants and session capabilities apply.

Discover and inspect
list_coding_sessions, get_coding_session, get_session_events, get_session_transcript, get_session_usage
Coordinate control
claim_session_control, release_session_control
Send and verify
send_session_message, interrupt_session, get_session_command

Use the tools’ schemas for required machine IDs, session IDs, lease epochs, turn IDs, and command receipts. Roundtable does not expose a general remote shell through these tools.

For a self-hosted server, use the global --server URL option or ROUNDTABLE_URL. Use --config-dir PATH or ROUNDTABLE_CONFIG_DIR for a custom local configuration directory. Keep the same options when installing and operating its service.

Live account flows were verified on Apple Silicon macOS and x64 Linux. Intel macOS and ARM64 Linux have release CI coverage; they have not had the same live cloud acceptance run. Headless testing used the explicit private-file credential fallback.

Open Coding sessions →Back to top ↑