# Watch Subagents Work Live, Now on Windows: Octomind 0.59.0

> Subagents in Octomind 0.59.0 stream every step live and replay on reconnect. Plus a native Windows install via PowerShell or Scoop, x64 and ARM64.

![Animated Octomind icon — purple pixel-art octopus](/octomind-icon-animated.gif)

You hand a long task to a subagent, and then you wait. Is it reading the right files? Did it hit a wall ten minutes ago? Until now, an app talking to Octomind saw nothing until the result came back.

**Octomind 0.59.0 streams every step of your subagents live, and since 0.58.8 Octomind installs natively on Windows with one PowerShell line.** This post covers 0.58.6 through 0.59.0 since [our last update](/blog/octomind-0-58-5-release). The open-source coding agent CLI update is available today.

## Watch subagents work in real time

When your agent hands work to a specialist with the `tap` tool, that subagent runs as its own process and reports back when it is done. Apps connected to `octomind server` had two problems with this. Once the parent's turn ended, they saw none of the subagent's steps. And if you sent the parent another message while the subagent was still working, its steps showed up inside that reply, as if the parent had taken them.

In 0.59.0 a subagent gets its own labelled stream. Your app sees the task it was given, its messages and thinking, every tool call with its result, the running cost, and how it ended: done, failed, or cancelled. Steps arrive the moment they happen, whether or not the parent is busy, and they never mix into the parent's reply.

Opened the log late, or lost the connection? Your app can replay everything the subagent has done so far and carry on live. Each step is numbered, so the replay and the live stream join without repeating or dropping a step. A finished run replays from the subagent's own saved session. For a very long run that is still going, the live replay keeps the most recent 4 MiB and says when earlier steps were trimmed.

That is agent observability without a separate tracing setup: the log comes from what the subagent already does.

If you build on the WebSocket API, the new frames are `run_event` and `run_log`, advertised by the `run_events_v1` capability; the [WebSocket server guide](/docs/integration/01-websocket-server) documents every event kind and the replay rules. Note the change: a subagent's output no longer arrives as the parent's `assistant` or `tool_use` frames. The CLI, JSONL output, and ACP show subagents exactly as before.

## Install Octomind on Windows

Windows has had release binaries for a while, but until 0.58.8 the installer was a Bash script, so getting started meant Git Bash, WSL, or unzipping an archive by hand. Now run this in PowerShell:

```powershell
irm https://raw.githubusercontent.com/muvon/octomind/master/install.ps1 | iex
```

The installer works in Windows PowerShell 5.1 and PowerShell 7 and needs no administrator rights. It picks the x86_64 or ARM64 build for your machine, puts `octomind.exe` in `%LOCALAPPDATA%\octomind\bin`, and adds that folder to your user `PATH`. Open a new terminal if `octomind` is not found right away.

If you manage tools with Scoop, add the Muvon bucket:

```powershell
scoop bucket add muvon https://github.com/Muvon/scoop-bucket
scoop install muvon/octomind
```

The bucket is updated on every release, so `scoop update octomind` keeps you current. Configuration lives in `%LOCALAPPDATA%\octomind\config\config.toml`, mirroring `~/.local/share/octomind` on macOS and Linux.

The Windows build needs the Microsoft Visual C++ Redistributable, which most machines already have; if `octomind` fails to start, the installer points you to the download. The Bash installer still works from Git Bash or MSYS2.

0.59.0 also fixes a Windows-only hang for editors that drive Octomind over ACP: a prompt could wait forever because Octomind checked whether stdin was a terminal while another read on that pipe was pending. Non-terminal modes no longer touch stdin.

## Catch config typos before they cost you

A misspelled key in `config.toml` used to be ignored without a word. A spending cap you thought you had set simply did not exist. 0.59.0 reports unknown and silently ignored keys:

```text
$ octomind config --validate
╭ config validate
│ warning: unknown configuration key `max_session_spending_treshold`
╰ ✗ config validate · Found 1 unknown or ignored configuration key

Error: Found 1 unknown or ignored configuration key
```

`config --validate` exits non-zero when it finds one, so a CI step can fail on it. Normal startup is unchanged. A common trap gets its own hint: in TOML, a key written below a `[table]` header belongs to that table, so a setting meant for the parent section is ignored. When that is the likely cause, the warning says so. The [configuration guide](/docs/usage/03-configuration) explains how Octomind merges the files in your config folder.

## Fewer repeated answers

Some sessions answered the same question twice. We traced one cause to the end-of-turn verification check: its answer format allowed a verdict that Octomind's reader then rejected, so the turn ran again with a "verification could not be completed" note. 0.58.8 makes the format enforce the reader's rule, which closes that path.

A supervisor model that cannot follow a JSON schema can still trigger the re-run, by design: Octomind would rather check again than accept a verdict it cannot read. Pick a supervisor model that supports structured output.

## Before you update

- **`--format` takes only `plain` or `jsonl`.** Any other value, including `json`, used to fall back silently to plain text; `octomind run` and `octomind workflow` now refuse it. Scripts that parse output should use `--format jsonl`, one event per line.
- **`/model` needs a provider prefix**, as in `/model openai:gpt-5.6-sol`. A bare name used to be saved as-is and then fail on the next request; now it is refused right away, along with unknown providers.
- **`config --show` displays the root model you configured**, marked `(default)` only when it matches the template.

## The other fixes since 0.58.5

- **0.58.6 gives WebSocket clients session control.** `cancel` stops a running turn from any connection, `close` unloads an idle session, and each turn's closing `cost` frame echoes your `request_id`. A client that disconnects mid-turn now cancels that turn. Set `OCTOMIND_SERVER_TOKEN` to require a bearer token on every connection. Guardrail scripts are snapshotted when a session starts, and stale system prompts are rebuilt.
- **0.58.7 never prompts in server or ACP mode.** A missing `{{INPUT:…}}` or `{{ENV:…}}` value now fails with a message naming the key. Before, the prompt could take the end of input, or a protocol message, as the answer and save it to `./.env`.
- **0.59.0 passes MCP server instructions to the model.** The guidance an MCP server sends when it connects now reaches the system prompt.
- **0.59.0 tidies commands.** `/?` opens help, help lists command aliases, and a failed command no longer ends an interactive session.
- **0.59.0 delivers learned guidance.** With learning evolution turned on (it is off by default), rules distilled from your past sessions reach new sessions as a short advisory note, once per session; a control group of sessions goes without, so the effect is measured. Synthesis runs one pass for rules that hold everywhere and one for your project's domain, and correcting a learned behavior lets a new rule replace it. See the [learning guide](/docs/usage/13-learning).
- **0.59.0 ships octolib 0.43.2.** It prices MiniMax M3.1 Flash at $0.15 input and $0.60 output per million tokens, adds Mercury 3 at $0.10 and $0.35, and bills Mercury 2.5 at $0.20 and $0.75, the rates on Inception's model page.

## Coming soon to Octomind Cloud

Octomind 0.59.0 is coming to [Octomind Cloud](/cloud). Each cloud machine moves to the new version the next time it starts. The conversation view uses the new subagent stream: while your octo waits on a subagent, a **Watch** button opens that subagent's live log beside the chat.

## Update to Octomind 0.59.0

On macOS and Linux:

```bash
curl -fsSL https://octomind.run/install.sh | bash -s -- --version 0.59.0
octomind --version
```

On Windows, run the PowerShell line above, or `scoop update octomind`. See the [installation guide](/docs/usage/01-installation) for other methods and the [full changelog](https://github.com/muvon/octomind/blob/0.59.0/CHANGELOG.md) for every change since 0.58.5.

Then try it: run `octomind config --validate` on your current setup and see whether a key you trusted was never read.
