Back Docs
Documentation menu

Remote Ovens

A remote Oven is another machine that runs your work over SSH, prepared from this app or from its own shell.

This computer is the Local Oven. A remote Oven is a machine you add: it runs the agent work for a thread while you read and review from the app in front of you. The app reaches it over SSH, through a small service it installs on that machine. An Oven can run Linux, macOS, or Windows on x64 or arm64, and it needs Node.js 22 or later.

Add a machine

Open Settings and then Ovens. New Oven asks you for the machine, its port, and the account to log in with. Test connection opens a real SSH session before anything is saved, so authentication, host trust, and the remote shell are all confirmed first. Once that succeeds, you install the service on the machine from the app and the Oven appears in the list.

The second way is Add via agent, which registers a machine that prepared itself. The first step of that dialog shows the command to run on the machine, with the SSH port already in it when you name one. The second step takes the registration code the command prints. Check code then shows the machine, the SSH account, the key fingerprint, and whether the machine already runs the service, all before anything is stored. The address this computer uses is filled in for you, because a machine cannot know which of its own addresses this computer can reach, and the machine's other addresses sit below it as choices. Register Oven saves the descriptor and, if the machine provisioned one, its key.

An Oven added either way is an ordinary Oven. It gets the same setup, the same inventory, and the same runs.

Prepare a machine from its own shell

The published command prepares a machine without this app reaching it first:

npx @pdslng/cio-oven start

It asks for the Oven name, the SSH port to publish, and whether to provision a dedicated key, then starts the service in the background and prints a code for Settings → Ovens → Add via agent. The service keeps running after the shell closes and after the app closes. Every question has a flag, so the same command also runs unattended with --yes, --port, and --no-identity.

Once the machine is registered, the same command reports on it and manages it:

npx @pdslng/cio-oven status    # installed and running, with the service revision
npx @pdslng/cio-oven stop      # stop the durable service
npx @pdslng/cio-oven restart   # replace the running service with the current release

A machine stopped with stop stays stopped, out of startup, until it is started again.

What setup checks

Open Setup on the Oven's row. Before it changes anything, setup reads the machine: its operating system and architecture, its package manager, whether it can elevate, Git, curl, Node.js, npm, whether a reboot is waiting, and which agents are already installed. Nothing on the host has changed at that point.

Then choose the agents to install and start setup. That is the point where you authorize the package registry refresh, the package upgrades, and the installs you selected. Progress runs in a panel docked to the app, and leaving Settings or switching views keeps it going. A failed step carries its error, and retrying rechecks what already finished and resumes what still needs work.

Agents and the GitHub account

The agents you choose are installed on the Oven and appear in its inventory with their versions. The app reads that inventory on every check, so an agent you install on the machine yourself shows up too. A model picker disables an agent the selected Oven does not have, which stops a run from being sent somewhere it cannot start.

Git setup uses a dedicated key for the Oven, separate from the key you log in with. The private key travels over the authenticated connection and lands on the machine with owner-only permissions. If you have not configured a dedicated key, the app mirrors the GitHub identity this computer already uses, so a clone from the Oven works the way it works here.

GitHub verification checks host keys strictly. If the machine does not know github.com yet, compare the fingerprint the app shows with the published values, add it on the Oven, and retry. The app does not accept a host key on your behalf.

Saved accounts for the selected agents are copied across, together with the settings that make them portable. Transcripts, caches, and local account homes stay where they are.

Match the time zone

Setup matches the Oven's clock to this computer's time zone as one of its steps. It reads the zone first, sets it with the platform's own tool, and reads it back, so a change that did not take is reported rather than assumed. An Oven already on your zone is skipped with that reason, and a machine with no supported way to change it skips the step instead of failing the setup.

You can run the same step at any time from the Oven's row: Match your time zone sits in its actions menu, and the row names the zone the machine reports.

What a setup never does

Setup never upgrades the operating system to a new release and never reboots the Oven. Those stay your decisions on that machine. Changing the time zone changes the zone only: the time, the date, and the network time configuration are left alone.

Choose which Oven a thread runs on

The composer has an Oven control that names the machine the conversation runs on, marked Local or SSH. The choice belongs to the thread rather than to the app, so a new thread follows the conversation it came from: a project thread runs where its siblings run, a chat follows the chat it started from, and a thread moved to another project follows that project.

A thread on a remote Oven has an Oven panel in the workspace rail. The panel body is a terminal on that machine, opened in the thread's own checkout, so you can look around or run a command yourself.

When something does not connect

A machine this computer has never reached needs its host key trusted before the app can open a session, the same way OpenSSH asks the first time you connect by hand. Failures are reported as what happened rather than as an exit code: missing repository access, a rejected identity, host trust, network reachability, disk space, or uncommitted local changes. Check Oven reruns the read-only check without opening setup or changing anything.

CodeInOven

Designed and developed in cio