Getting started · Python 3.10+

Clone the repository. Point your agent at it.

If your machines and devices are already configured, that is almost the entire handoff. Machine Control gives the agent the project guidance and one common entry point for the lab.

  • No common-client package install
  • Standard-library client
  • Works with any coding agent

The short path

Already have a configured lab?

Clone, inspect the available targets, and hand the repository to the agent that is working on your application.

Configured targets

This is the whole setup.

git clone https://github.com/kzahel/machine-control.git
cd machine-control

bin/machine-control targets
bin/machine-control inventory status
python3 bin/check --portable

On Windows, use py -3 bin/machine-control andpy -3 bin/check --portable.

What “point the agent at it” means

Open the checkout in the coding session.

The repository’s AGENTS.md and README.mdexplain target selection, safety, platform routes, claims, and evidence. The common command is:

bin/machine-control --target <name> ...

Tell the agent what application to work on and which configured targets matter. It can discover the rest from the repository and the private inventory available on the controller.

Agent handoff

Give the coding agent this prompt.

Replace the two angle-bracket placeholders. The prompt preserves the safe operating loop without requiring you to explain every command yourself.

machine-control handoff
Use Machine Control in this repository to develop and test <application>
on <targets>.

Read AGENTS.md and README.md first. Use bin/machine-control as the common
interface. Start by listing the configured targets and checking inventory
status.

Before meaningful use of a target, run its read-only doctor. For an accepted
VM, acquire an exclusive claim with a truthful authority, claimant ID, and
reason; carry the claim ID through every operation and release it promptly. For
a physical device, follow its platform guide's exact selection and lease rules.

Build and deploy the application, exercise the relevant native workflows, and
verify the observed application effect. Prefer target-native semantic control,
capture, and input. Do not use host-console input except for explicit bootstrap
or recovery.

Report the actual provider route, delivery, observed effect, evidence, and any
uncertainty for each target.

Every target session

The agent follows one guarded loop.

The target may be a desktop VM, a physical Chromebook, or a phone. The provider changes; the surrounding development discipline stays recognizable.

Discovereligible targets
Doctorread-only readiness
Reserveclaim or device lease
Operatebuild · deploy · test
Verifyeffect and evidence
Releaseprompt cleanup

Doctor is read-only. It proves exact identity and readiness before the agent changes a shared target.

Reservations are explicit. The agent carries a VM claim or follows the device route’s lease model, then releases it in finally-style cleanup.

Delivery is not effect. Results keep the attempted action separate from what the application demonstrably did.

One-time setup

Starting without a configured lab?

This is the longer path. Choose the target, prepare its VM host or authorized device controller, install the platform-owned components, and keep concrete machine identity in private configuration.

Check VM controller-host support →
Keep target identity private

Machine names, endpoints, device identifiers, credentials, and concrete routes belong in ignored local configuration or a private inventory provider—not the public checkout.

Prove the route before using it

List the logical target, run its read-only doctor, repair identity or readiness when necessary, then let the normal claim-and-control loop begin.

Ready

Give the agent the repository and a real target.