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

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.157
File Size Uploaded
runpane-2.4.157.tar.gz 131.0 kB Details

Built distribution (wheel)

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

Total release size: 265.0 kB

Release files / runpane-2.4.157.tar.gz

Download URL runpane-2.4.157.tar.gz
Size 131.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d1f9451f21b87e52a783f20330f9dacce22b6df2f6f5569818b783c4d73f1437
BLAKE2b-256 checksum
How to use checksums
441f158bdb78a5dc44be51986b251884c30700aa847ae8bad5ad329e1cbf6e1c
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 4, 2026.

Transparency log

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

Download URL runpane-2.4.157-py3-none-any.whl
Size 134.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8cf39442e68e923ba0812ac6e327dff2f3c00f6d4af5fdc8c67a307ccae19cd7
BLAKE2b-256 checksum
How to use checksums
c7bc0ab363e9a588b2536a0d820e39f96ce9c39ef6d62d5a689d7190489fa850
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 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.4.157 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