Browser review loop for agent-authored plans
Project description
Showtime
An Agent Skills review loop for plans. An agent turns a finished plan into a single-page HTML artifact, hosts it in a dark browser shell, and blocks until the user approves or returns a comment batch.
- Agent-facing contract: src/showtime/skill/SKILL.md
- Runtime: Python 3.8+, standard library only
- Contributor UI: React, TypeScript, Vite, and Tailwind
Install
Install the runtime once, then copy thin skill adapters into every harness that should discover Showtime:
uv tool install showtime-review
showtime skill install agents
pipx install showtime-review is equivalent. Before the PyPI release exists,
install from the source repository:
uv tool install git+https://github.com/Darrick-Oliver/showtime-skill
Known destinations are agents, claude, codex, and pi; several may be
installed together. Use --destination for another harness. skill install
never overwrites a non-empty directory. To replace an old full clone with a
thin adapter and timestamped backup, preview the operation first:
showtime skill migrate agents --dry-run
showtime skill migrate agents
showtime doctor
Update
Upgrade the shared runtime, then refresh each installed adapter:
uv tool upgrade showtime-review
showtime skill install agents
showtime doctor
For pipx installations, use pipx upgrade showtime-review followed by the same
adapter command. Managed adapter updates are idempotent. Runtime upgrades never
touch project artifacts or sidecars.
Architecture
src/showtime/cli.py CLI, stdlib server, review protocol, adapter installer
serve ARTIFACT host the review and block for its outcome
reply ARTIFACT FILE validated agent reply channel into the sidecar
reattach ARTIFACT ID repair or accept an orphaned thread anchor
config resolve and print the section contract
doctor verify runtime assets and installed adapters
skill install|migrate manage thin harness adapters
src/showtime/config.json runtime-default section contract
src/showtime/ui/ compiled shell and iframe agent, bundled in the wheel
src/showtime/skill/ thin Agent Skill adapter and its authoring docs
scripts/showtime.py source-checkout compatibility launcher
ui/src/shell/ React shell: chips, popover, drawer, composers
ui/src/agent/ iframe agent: quote anchoring and layout bridge
ui/src/protocol.ts shared protocol and sidecar types
The shell frames the artifact in an iframe and communicates with the injected
iframe agent over postMessage. Threads persist in a server-owned sidecar next
to the artifact. The runtime binds 127.0.0.1 only. Approval is stamped into
the artifact itself.
Config resolves whole-file layers in this order: <cwd>/.showtime/config.json,
~/.showtime/config.json, then the runtime default. See the adapter's
docs/config.md for its schema and section obligations.
Developing
The Python runtime has no dependencies. Node 20+ is required only to change the shell:
cd ui
npm install
npm run build # typecheck + builds -> src/showtime/ui/
npm test # Vitest unit tests
npm run e2e # Playwright against scripts/showtime.py
npm run dev # shell only; artifact routes require `showtime serve`
src/showtime/ui/ is committed and included as wheel package data. Rebuild and
commit it with every UI change; there is no CI check for stale assets.
Release
The package version has one source: src/showtime/__init__.py. To release:
- Update
__version__and commit it. - Create a GitHub release tagged with the same version prefixed by
v, such asv0.2.0. - The
publish.ymlworkflow verifies the tag, builds the wheel and source distribution, and publishes them to PyPI through OIDC trusted publishing.
One-time PyPI setup is required: register a pending trusted publisher for
project showtime-review, owner Darrick-Oliver, repository
showtime-skill, workflow publish.yml, and GitHub environment pypi. Add
required reviewers to that environment before the first release. No PyPI token
or GitHub secret is needed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file showtime_review-0.1.0.tar.gz.
File metadata
- Download URL: showtime_review-0.1.0.tar.gz
- Upload date:
- Size: 108.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
414b828f864da7d0860b240e9d8591b9e761aab69a47de1da63fbbd1b752236d
|
|
| MD5 |
7b318bca513d00ea4b710e6ce78fd603
|
|
| BLAKE2b-256 |
ff587da57a12002e5c87de1b049af54916cb7b9b438359b0c519b8a564b7aa78
|
Provenance
The following attestation bundles were made for showtime_review-0.1.0.tar.gz:
Publisher:
publish.yml on Darrick-Oliver/showtime
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
showtime_review-0.1.0.tar.gz -
Subject digest:
414b828f864da7d0860b240e9d8591b9e761aab69a47de1da63fbbd1b752236d - Sigstore transparency entry: 2154713210
- Sigstore integration time:
-
Permalink:
Darrick-Oliver/showtime@cc4ebfa289dcf742833afe2fd5ec085632f17e1f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Darrick-Oliver
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cc4ebfa289dcf742833afe2fd5ec085632f17e1f -
Trigger Event:
release
-
Statement type:
File details
Details for the file showtime_review-0.1.0-py3-none-any.whl.
File metadata
- Download URL: showtime_review-0.1.0-py3-none-any.whl
- Upload date:
- Size: 108.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1088eace898ac4d6b143818aa4470d1fafad297b3b9ed3ced6fdd03341dde088
|
|
| MD5 |
5f80026dd32aed7fca270c6f90c3af8c
|
|
| BLAKE2b-256 |
7f2fbe22b0b2ab3495a33d082bfa5f5ca5d94bcb7070b9e3d87cfa217571072c
|
Provenance
The following attestation bundles were made for showtime_review-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on Darrick-Oliver/showtime
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
showtime_review-0.1.0-py3-none-any.whl -
Subject digest:
1088eace898ac4d6b143818aa4470d1fafad297b3b9ed3ced6fdd03341dde088 - Sigstore transparency entry: 2154713736
- Sigstore integration time:
-
Permalink:
Darrick-Oliver/showtime@cc4ebfa289dcf742833afe2fd5ec085632f17e1f -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Darrick-Oliver
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@cc4ebfa289dcf742833afe2fd5ec085632f17e1f -
Trigger Event:
release
-
Statement type: