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, and it skips the --min-interval batch. 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 also sends best-effort lifecycle telemetry with a persisted anonymous install_id. Count distinct wrapper users with count(DISTINCT properties.install_id) on runpane_wrapper_* events. Set RUNPANE_TELEMETRY_DISABLED=1 to disable wrapper telemetry.

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.161

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.161
File Size Uploaded
runpane-2.4.161.tar.gz 131.2 kB Details

Built distribution (wheel)

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

Total release size: 265.3 kB

Release files / runpane-2.4.161.tar.gz

Download URL runpane-2.4.161.tar.gz
Size 131.2 kB
Tags Source
SHA-256 checksum
How to use checksums
303d9c2ad5d874906316f0e1dfc1f23dc0edd4ca827a3ebf5d25199638f320bb
BLAKE2b-256 checksum
How to use checksums
0c0a87f3c1d306f987c2f41950f0a4e740f6375d97f15cd86e6672f96d73927e
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 5, 2026.

Transparency log

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

Download URL runpane-2.4.161-py3-none-any.whl
Size 134.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88e75070c836981c449f7d821d69fbe6b4f81990ec8257d0ea559a7eaebd895b
BLAKE2b-256 checksum
How to use checksums
913f66172f1c6e3bda64c8aeb9e8a3318b17c1325ec37fd241c6650d6a312607
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 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.4.161 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