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

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.152
File Size Uploaded
runpane-2.4.152.tar.gz 130.9 kB Details

Built distribution (wheel)

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

Total release size: 264.8 kB

Release files / runpane-2.4.152.tar.gz

Download URL runpane-2.4.152.tar.gz
Size 130.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6b491ed9d342a9288620afb072868f89d5ad8803061971b3e4e7a324b5d03bcb
BLAKE2b-256 checksum
How to use checksums
695f62b1688ce28cbc9c63e929fa383b85aeb9f43f6f68576a87cdc2c40c918b
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 3, 2026.

Transparency log

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

Download URL runpane-2.4.152-py3-none-any.whl
Size 133.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c80b7450f167a24b65038204e0a08b47744b29b0697f9d855714c1dc96f409ff
BLAKE2b-256 checksum
How to use checksums
6e443ca923fc9419079c2c1646b4efbbc2bbef4850df03522e226e4e4020aef8
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 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.4.152 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