40 lines
1.6 KiB
Plaintext
40 lines
1.6 KiB
Plaintext
---
|
|
title: process
|
|
description: Cross-platform child-process runtime. Required on Windows.
|
|
---
|
|
|
|
<div style={{ display: "flex", alignItems: "center", gap: "0.75rem", margin: "0.5rem 0 1.25rem" }}>
|
|
<Logo name="windows" size={28} color />
|
|
<span style={{ fontSize: "0.8125rem", color: "var(--color-fd-muted-foreground)" }}>Slot: <code>runtime</code> · Name: <code>process</code></span>
|
|
</div>
|
|
|
|
Spawns agents as plain child processes — no tmux involved. Use this on Windows (where tmux isn't available) and in any environment where you'd rather not depend on tmux.
|
|
|
|
<PlatformSupport macos="full" linux="full" windows="full" />
|
|
|
|
## Use
|
|
|
|
```yaml title="agent-orchestrator.yaml"
|
|
runtime: process
|
|
```
|
|
|
|
No plugin-level config.
|
|
|
|
## How it works
|
|
|
|
- AO spawns the agent via Node's `child_process.spawn` with `shell: true`.
|
|
- Stdout + stderr are captured in a rolling 1000-line buffer.
|
|
- The dashboard reads from that buffer over the same WebSocket the tmux runtime uses — you won't notice a difference in the UI.
|
|
- `isProcessRunning` uses a PID-based signal-0 check.
|
|
|
|
## What you lose vs tmux
|
|
|
|
- **No tmux attach.** `ao session attach` doesn't work. Use the dashboard terminal instead.
|
|
- **No reconnecting to the agent's TTY.** If you `ao stop` the orchestrator, the child process goes with it. The agent's own session-resume features (Claude `--resume`, Codex `resume`, etc.) still work — that's a different layer.
|
|
|
|
## When to pick it
|
|
|
|
- **Windows** — this is the only runtime that works.
|
|
- **Docker / CI-like environments** — fewer moving parts, no tmux install.
|
|
- **You never attach interactively** — the dashboard terminal covers all your attach needs anyway.
|