Skip to main content
New in v3.1. Requires a Coding Plan on the dashboard side — without one, /dashboard/code shows a short upsell in place of this instead of hiding the page.
Turn it on and your Studio session heartbeats to ai.tomdacat.com/dashboard/code — connection status and a live transcript of what the agent is doing, visible from anywhere you’re logged in, not just at the machine running Studio. It’s not read-only: you can send a message into the session from the dashboard too, and optionally let the dashboard approve tool calls right alongside Studio itself.

Turning it on

A Remote Control section in Settings, off by default — a plain Off/On toggle, same segmented-control pattern as Budget Mode. The /remote-control slash command jumps straight to it. A live connection-status dot sits next to the toggle, and a second copy of it lives in the chat header itself (beside the credits readout) so you don’t have to leave the conversation to check it:
  • Green — connected, heartbeating normally.
  • Yellow — connecting (the brief window between turning it on and the session actually registering).
  • Red — disconnected.
Clicking either dot jumps to Settings. Both are hidden entirely while the toggle is off, rather than sitting there red for a feature you’re not using.

What shows up on the dashboard

ai.tomdacat.com/dashboard/code lists every session currently reporting in, each with a connection dot and a last-seen time. Opening one shows a live (polled, roughly every few seconds) transcript: your messages, the agent’s replies, and a collapsible trace of tool calls grouped together rather than one card per call.
A session only counts as connected based on how recently it last heartbeated, not a status flag that could go stale — closing Studio (or turning Remote Control off) always reflects accurately within a few seconds, it never has to wait for a cleanup job to notice.

Sending a message

The composer on a session’s dashboard page queues a plain text message, delivered the next time the plugin heartbeats (a few seconds, not instant — this is polling, not a live socket). It behaves exactly like typing it into the chat box in Studio: it becomes a real turn, the agent responds, tool calls run through the normal local permission gate. Only one message can be in flight at a time — the composer disables itself with “Waiting for Studio to pick up the last message…” until it’s delivered, so you can’t queue up several and lose track of ordering.

Remote tool approval

This is a genuine security-posture change, not a default — it has to be turned on explicitly (see below), separately from Remote Control itself.
Normally, the permission gate only ever asks inside Studio. With remote approval on, a mutating tool call waiting on Ask also shows up on the dashboard as a Deny / Always Allow / Allow card — including a real before/after diff for edit_script, the same one the local diff widget would show. Whichever side decides first wins; the other becomes a safe no-op instead of double-firing. While this is on, dashboard access is functionally equivalent to Studio access for approving code execution — anyone who can reach your dashboard can approve execute_luau. Weigh that the same way you’d weigh sharing your Studio session itself.

What’s deliberately not here

  • Remote Control only ever sends the settled version of things — a full reply once it’s done, a tool call once it’s started and once it’s finished — not the live token-by-token stream. The dashboard isn’t meant to be a second copy of the chat UI, just a faithful, slightly-behind view of it.
  • Turning off Remote Control (or closing Studio) stops the session from accepting new messages or approvals immediately; anything already queued when that happens is simply never delivered rather than applied later.