Skip to main content

runpane

Install or configure Pane from PyPI.

The package does not include the Pane desktop runtime. It downloads the correct Pane release artifact only when you run runpane install or runpane update.

The same CLI also drives a running Pane app: list and add repos, create and manage panes, read and send input to panels, manage sessions, and follow events with runpane watch. See the runpane CLI contract for every command.

runpane panes adopt is not in the Python CLI yet; use the npm package for it.

Quick Start

Run the guided setup:

pipx run runpane

Persistent install:

python -m pip install runpane
python -m runpane setup

The wizard can install Pane on this machine, configure this machine as a remote host, update Pane, or run diagnostics.

MCP Server

The Pane MCP server (runpane mcp) ships in the npm package and inside the Pane desktop app, not in this package. Run it with Node: npx --yes runpane@latest mcp.

Advanced

Explicit Commands

pipx run runpane setup
pipx run runpane install client
pipx run runpane install daemon --label "My Server"
pipx run runpane update
pipx run runpane doctor

runpane install daemon installs Pane and then invokes the installed executable with --remote-setup, preserving the pane-remote://... connection-code output.

Python Runners

One-shot execution:

uvx runpane@latest

Persistent install:

python -m pip install runpane
python -m runpane setup

pipx install runpane
runpane setup

Commands

runpane
runpane setup
runpane install
runpane install client
runpane install daemon
runpane update
runpane version
runpane doctor
runpane --help

Common Options

--version <latest|vX.Y.Z>
--format <auto|appimage|deb|dmg|zip|exe>
--download-dir <path>
--pane-path <path>
--dry-run
--verbose

Daemon setup also forwards Pane remote-host options:

--label <name>
--prefer-tunnel <tailscale|ssh|manual|auto>
--print-only

Watching the Workspace

runpane watch waits for workspace transitions from the Pane daemon without polling. Under --follow it prints one line per event: READY (a turn ended), BLOCKED (the agent is waiting on a human), IDLE, STUCK (real unsubmitted composer text; an agent prompt suggestion never counts), NEW, GONE, EXIT, plus HEARTBEAT every 60 seconds as proof of life.

runpane watch --self-test
runpane watch --follow

The defaults are responsive: no settle, no batching, all event kinds, IDLE every 10 minutes. Panes and shell users see every event immediately.

A consumer that pays for every line (an orchestrator that re-reads its whole context per wake-up) opts into cadence shaping instead. This is the recommended orchestrator invocation, budgeted at about 6 wake-ups per active pane per hour worst case, usually 1 to 3:

runpane watch --self-test
runpane watch --follow --quiet --kinds agent.ready,agent.blocked,agent.idle,panel.exited,pane.gone --settle 180000 --blocked-settle 30000 --min-interval 600000 --idle-backoff

When someone is waiting on the result, use the user-present profile instead: --settle 60000 --blocked-settle 15000 --min-interval 120000 with no --idle-backoff, so READY arrives within about 3 minutes rather than 13.

A Session orchestrator watches its whole Session with one command instead of one --pane per Pane. The daemon re-reads the Session's Panes on every read, so sessions associate and sessions detach need no re-arm, and JOINED and LEFT (pane.associated, pane.detached) report the change. For Session members with an open PR, the daemon also polls GitHub about every 3 minutes and reports PR <pane-name> pane <pane-id> #<number> CONFLICTED, CHECKS PASSED or CHECKS FAILED <names>, and MERGED (pr.conflicted, pr.checks, pr.merged) on transitions only. The cursor defaults to session-<uuid>:

runpane watch --session <session-id> --follow --quiet --json --kinds agent.ready,agent.blocked,agent.idle,panel.exited,pane.gone,pane.associated,pane.detached,pr.conflicted,pr.checks,pr.merged --settle 180000 --blocked-settle 30000 --min-interval 600000 --idle-backoff

After a RESET, JSON baseline entries carry replay: true. They restate current state, so a replayed agent.ready is never READY.

  • --kinds drops agent.busy; BUSY carries no action.
  • --settle <ms> emits READY only after the panel stays idle that long. A BUSY inside the window cancels it silently, which removes the idle/working flips a pane makes while it waits on subagents.
  • --blocked-settle <ms> does the same for BLOCKED, so a prompt answered in the pane within seconds wakes nobody.
  • --min-interval <ms> holds non-urgent lines and flushes them together at most once per interval. BLOCKED bypasses it.
  • --idle-backoff fires IDLE at --idle-after, then 30m, 1h, 3h, then daily, and resets on any activity.

These flags require --follow. Pane Chat arms them automatically through its pane-orchestrator skill, so you only need them for your own scripts. Pass --quiet to any monitor that wakes an agent: it drops WATCH OK, HEARTBEAT, and WATCH RECONNECTED (_ok, _heartbeat, _reconnected in JSON), while WATCH ERROR, RESET, and DROPPED always print. Judge a dead watch by a non-zero exit or a WATCH ERROR line, not by silence. runpane agent-context --command watch --json lists every flag with its default.

Workers can hand back a structured report with runpane report --state ready|blocked|failed|done [--pr <n>] [--head <sha>] [--summary-file <path>] [--question <text>]. Watchers receive it as agent.report (REPORT <pane> pane <pane-id> panel <panel-id> ready pr#747 fc5dce9) only when --kinds lists it (or they watch a Session), from any panel, and it skips the --min-interval batch. The command prints how many watches were waiting and received it (Delivered to 1 waiting watcher.).

--follow never exits on its own, so don't pipe it into grep -m1 or head to wait. A harness that wakes an agent when a process exits (Claude Code background Bash, Codex) waits with --until-event, which exits 0 on the first matching event, and runs it again after acting on it:

runpane watch --as <name> --until-event --quiet --json --kinds agent.report,agent.blocked,panel.exited,pane.gone

--timeout-ms is then the total deadline (exit 124, WATCH TIMEOUT). runpane panels last-message --panel <panel-id> reads an agent's last reply from its transcript.

Attribution

PyPI package downloads use source=pip when requesting release artifacts from runpane.com/api/download. If that route is unavailable, the CLI falls back to matching GitHub release assets and prints a warning.

The wrapper sends best-effort command failures and download lifecycle telemetry with a persisted anonymous install_id. Successful routine commands emit nothing. Distinct install_id counts on runpane_wrapper_* events measure installs that report failures or download activity, not all CLI users. Telemetry is disabled in CI, when local analytics is explicitly opted out, or with RUNPANE_TELEMETRY_DISABLED=1.

Maintenance Notes

Keep the npm and PyPI clients in sync with each Pane release. When changing shared installer behavior:

  • If release asset names or platforms change, update both npm and PyPI wrapper artifact matching.
  • If runpane CLI behavior changes, update both clients and the shared smoke tests.
  • If the website /api/download contract changes, verify npm and PyPI fallback behavior.
  • If daemon setup flags change, update docs, README files, and wrapper tests together.
  • Keep the CI wrapper matrix green: Linux, macOS, Windows, Node 20/22, and Python 3.8/3.13 (runs on PRs that touch the wrappers or contract).

Publishing

This package should be published through PyPI Trusted Publishing from GitHub Actions. Token-based PYPI_API_TOKEN publishing is a fallback for first package reservation or manual publication only.

Metadata

Release files for runpane 2.4.182

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for runpane 2.4.182
File Size Uploaded
runpane-2.4.182.tar.gz 158.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for runpane 2.4.182
File Interpreter ABI Platform
runpane-2.4.182-py3-none-any.whl Python 3 none any Details

Total release size: 320.2 kB

Release files / runpane-2.4.182.tar.gz

Download URL runpane-2.4.182.tar.gz
Size 158.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8c045abc11ec688784424cffa8472b7d53664fda6b656321e91c5097d1d6da97
BLAKE2b-256 checksum
How to use checksums
f18495b9d81f31da4d26679f9a92ab8243cc2e1e2126b3191d836f1ea0265d99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / runpane-2.4.182-py3-none-any.whl

Download URL runpane-2.4.182-py3-none-any.whl
Size 162.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e6e866bd4267e5ccc0a55d8e8034824e2aeeaaf0dfb17916e3310f17ff7bee37
BLAKE2b-256 checksum
How to use checksums
e0ddcabd16f2025b7486aecffb6793581d31c8ff33c8a65ae3f945fb4c34661a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.4.182 This release

2 release files

2.4.94

2 release files

2.4.93

2 release files

2.4.92

2 release files

2.4.91

2 release files

2.4.90

2 release files

2.4.89

2 release files

2.4.87

2 release files

2.4.86

2 release files

2.4.85

2 release files

2.4.84

2 release files

2.4.83

2 release files

2.4.82

2 release files

2.4.81

2 release files

2.4.80

2 release files

2.4.79

2 release files

2.4.78

2 release files

2.4.77

2 release files

2.4.76

2 release files

2.4.75

2 release files

2.4.70

2 release files

2.4.69

2 release files

2.4.67

2 release files

2.4.66

2 release files

2.4.65

2 release files

2.4.64

2 release files

2.4.63

2 release files

2.4.62

2 release files

2.4.61

2 release files

2.4.60

2 release files

2.4.59

2 release files

2.4.58

2 release files

2.4.57

2 release files

2.4.55

2 release files

2.4.54

2 release files

2.4.53

2 release files

2.4.52

2 release files

2.4.51

2 release files

2.4.50

2 release files

2.4.49

2 release files

2.4.48

2 release files

2.4.47

2 release files

2.4.46

2 release files

2.4.36

2 release files

2.4.35

2 release files

2.4.34

2 release files

2.4.30

2 release files

2.4.29

2 release files

2.4.28

2 release files

2.4.26

2 release files

2.4.25

2 release files

2.4.24

2 release files

2.4.23

2 release files

2.4.22

2 release files

2.4.21

2 release files

2.4.20

2 release files

2.4.19

2 release files

2.4.18

2 release files

2.4.17

2 release files

2.4.16

2 release files

2.4.9

2 release files

2.4.8

2 release files

2.4.7

2 release files

2.4.6

2 release files

2.4.5

2 release files

2.4.4

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.21

2 release files

2.3.20

2 release files

2.3.19

2 release files

2.3.18

2 release files

2.3.17

2 release files

2.3.16

2 release files

2.3.15

2 release files

2.3.14

2 release files

2.3.13

2 release files

2.3.12

2 release files

2.3.11

2 release files

2.3.10

2 release files

2.3.9

2 release files

2.3.8

2 release files

2.3.7

2 release files

2.3.6

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.12

2 release files

2.2.11

2 release files

2.2.10

2 release files

2.2.9

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page