Skip to main content
Monopty is the local automation CLI for Monolex headless PTY sessions. It combines raw terminal control with bounded screen, history, and system-output extractors, then builds guarded prompts, structured steps, scenarios, and end-to-end health checks on top. Published contract: monopty 0.2.6, OpenCLIs build 2026-07-16-174051, source commit 47145fce2d7cf4f17fc6523481f6b596dbdcf574. The macOS archive has SHA-256 ba5c3d64808da8cba2a6ef7d26df5bceeb939a1c2ab79409c0da5b03dcfb79f5; the installed executable has SHA-256 3a2f0abae6892be827320ba2cf96c1bb7b8157355f0fb5ae5dcc012c60d8a1b4. Registry ownership: the canonical docs_url is this page, the public product homepage is https://monolex.ai, and Monopty pairs with Monolex Headless, Monolex PTY Daemon, MonoTerm, and Monosystem. Repository ownership remains monolex/monolex; no public source URL is advertised while that repository is private.

Quick Start

Version 0.2.6 exposes 22 operational root commands plus Clap’s generated help command. claude contains three aliases. It is an OpenCLIs-distributed CLI with initiate.md and SKILL.md; it does not expose an MCP schema command.

Global Options

Use explicit session ids and sockets in unattended jobs. Auto-discovery is convenient for one healthy local instance, but a stale or second owner is a diagnosis problem and must not be guessed away.

Discovery, Health, and Raw Control

Four Read Sources

The corresponding wait/assert commands keep these sources separate: Do not collapse answer, screen, history, and system into one generic “terminal result.” They answer different questions: completed response, visible interaction state, scrollback history, and provider-owned output.

Prompt and Structured Workflow Commands

step also accepts --screen-full, --history-tail <N> (default 80), --history-context <N> (default 8), --system-cli <CLI>, --system-transcript <PATH>, --show, repeatable --guard/--cleanup, and --force. Scenario records carry the same core fields: name, send, expect, guard, cleanup, mode, read, screen_full, history_tail, history_context, system_cli, system_transcript, max_wait, and force. Execution stops at the first unmet guard, timeout, or failed read contract. An auto-created scenario still sends exit\r after success unless --keep is set; use close afterward when the exited shell must also disappear from daemon and session inventories.

Claude aliases

Claude aliases are not a separate transport. Use an explicit --query whose expected answer text is not already visible in the prompt composer; prompt echo is not completion proof.

Test and Development Commands

Output Channels and Dynamic Guidance

Successful commands may print one dim [NEXT] ... breadcrumb to stderr. Machine JSON remains isolated on stdout, while routing provenance and NOT_ATTACHED, NO_SETTLE, MULTI_OWNER, or STALE_GRID diagnostics remain on stderr.
Some 0.2.6 [NEXT] breadcrumbs still render ask and follow-up with legacy --session / --prompt spellings. The executable parser requires positional <SESSION> <PROMPT> arguments. Treat those breadcrumbs as workflow direction and use the invocations documented on this page.
answer owner-targets the live session owner and uses the freshest renderer when no live owner exists; it does not silently choose a stale mirror. A successful sockets, sessions, or health --json call therefore has clean JSON stdout and a separate [NEXT] stderr line.

Reliable Automation Pattern

Release Provenance

Version 0.2.5 made the executable close verb public, but its initial macOS publication preceded the version commit and the packaged discovery guide did not list the new command. Version 0.2.6 supersedes it from clean commit 47145fce2d7cf4f17fc6523481f6b596dbdcf574, with source_dirty: false. Its packaged initiate.md, installed guide, and public OpenCLIs initiate_md remain byte-identical at SHA-256 de8f892939ba7b60c1d2ac4da5bfe7290ab64c39a89b99ba78f1e9ba0da46eeb. Current repository commit 0da9e2bc67543abee6ddbed37f3d67af714dedf4 does not add a Monopty command. It strengthens the guide to reflect the newer server-side close contract: acknowledgement comes only after the owned process tree is gone, and a failed teardown stays visible for retry. The current source guide has SHA-256 6495d665ae1d6843957dd39858a71556d50a3248daa33443a9b4dd7baae2e0b2; its SKILL has SHA-256 82fc51dcf7987d5017110f32fa43c994c7cf9241ef1678f7cbc623974a96c93e. The installed release SKILL remains fa2689f70696c4568337858872e20e8f4a482b836d40d0ee2e26236b87766262. This is a guide/protocol-stack split, not a claim that a new Monopty binary was published. The OpenCLIs-managed macOS executable has SHA-256 3a2f0abae6892be827320ba2cf96c1bb7b8157355f0fb5ae5dcc012c60d8a1b4. An isolated local runtime smoke paired it with Headless 0.1.43 and PTY Daemon 0.2.5, created a session, observed the exited shell as shell=dead, closed it with a structured closed: true result, confirmed an empty session list, and repeated close successfully to prove the idempotent retirement contract. The retired shell did not remain in Headless as a recoverable ghost. The extracted Linux x86_64 executable has SHA-256 604ab4c682a38d80afc17e20cbbb9e292f551c8688e2cdf2f6c2cd0f29033b66; the Linux AArch64 executable has SHA-256 116e45cbd659a8746e5711fdf305e3c5452b66d90ca64450337ed0f1d7f96115. The x86_64 runtime probe was read-only: it inspected the existing remote Headless estate without creating, writing, or closing a session. The extracted Windows x86_64 executable has SHA-256 25ce1f769166b5cc1ef3d7f89a977d223e0d9c10d50e6ec74cf82e1fc3728c77; the Windows AArch64 executable has SHA-256 580320ed5839493406faaf12dea4187ebe82d06241a6b914c4986d09136c6afc. The native Windows health failure is expected runtime evidence, not a release failure: distribution and parser execution succeeded, while the control-plane probe truthfully reported that no native local Headless socket was available. The required platform set remains darwin-aarch64, linux-x86_64, linux-aarch64, windows-x86_64, and windows-aarch64. All five archives are published and directly hash-verified. Runtime proof still requires the installed binary, a healthy Headless owner, and a live PTY daemon; CDN availability alone proves only distribution.

Relationships