Skip to main content

PLTUI

A terminal UI to explore and operate on your Pulumi stacks.
Built with Textual and the Pulumi Automation API.

PLTUI previewing a Pulumi stack

Features

  • State explorer: browse a stack's resources as a parent/child tree.
  • Search and filters: live search (type, name, URN, ID, parent URN), a resource-type dropdown and a "Protected only" checkbox, all on one row.
  • Multi-selection: select resources with the keyboard, or use filter-aware Select all / Deselect all.
  • Resource details: overview, inputs, outputs and a diff of both, in a modal.
  • Pulumi actions: preview, up, refresh and destroy, on the selected resources or the whole stack.
  • Safe by design: up, refresh and destroy show a preview first and apply only after confirmation. If the stack state changes while you review, apply is blocked.
  • State editing: delete resources from the state, or protect and unprotect them (🔒 marks protected resources).
  • Pulumi-branded dark theme built on the three colours of the Pulumi logo.

Install

Requirements

Install pulumi-tui (which provides the pltui command) in its own isolated environment, using pipx or uv:

pipx install pulumi-tui
# or
uv tool install pulumi-tui

Upgrade with pipx upgrade pulumi-tui or uv tool upgrade pulumi-tui. To try it without installing, run uvx --from pulumi-tui pltui.

From source

Requires Poetry.

git clone https://github.com/SharpEdgeMarshall/pulumi-tui.git
cd pulumi-tui
poetry install

Usage

Run pltui from a Pulumi project directory, or point it at one:

cd path/to/your/pulumi-project
pltui

# or
pltui -C path/to/your/pulumi-project

Choose a stack with the dropdown in the header, then explore its resources.

Option Description
-C, --cwd Run as if started in this Pulumi project directory, like pulumi -C. Defaults to the current directory.
-V, --version Show the version and exit.
-h, --help Show the help and exit.

Keybindings

Actions

Key Action
Ctrl+P pulumi preview
Ctrl+U pulumi up
Ctrl+R pulumi refresh
Ctrl+X pulumi destroy
Ctrl+D Delete the selected resources from the state only (pulumi state delete)
Ctrl+L Protect the selected resources. Needs at least one unprotected resource selected.
Ctrl+O Unprotect the selected resources. Needs at least one protected resource selected.
Ctrl+\ Command palette
Ctrl+Q Quit

Resource tree

Key Action
Space Select or deselect the focused resource
A / D Select all / deselect all resources matching the filters
E Expand or collapse the focused branch
Enter or double-click Open the resource details

Modals

Key Action
Y Confirm
T Toggle "Target dependents"
A / R Apply / re-preview
Esc Cancel or close

Resource selection

Select all and Deselect all affect only resources matching the current filters, including matches in collapsed branches. Parents shown only for context are not selected. Selections hidden by filters stay selected and are counted in the title.

Selection survives reloads of the same stack, dropping resources that no longer exist, and is cleared when a different stack is loaded.

Try it locally

examples/local is a real Pulumi Python project on a local filesystem backend. It creates only component resources, so no cloud credentials, providers or billable infrastructure are needed.

poetry install
mkdir -p examples/local/.pulumi-state
export PULUMI_CONFIG_PASSPHRASE=''
poetry run pulumi -C examples/local stack init dev
poetry run pulumi -C examples/local up --yes
poetry run pulumi -C examples/local stack init sandbox
poetry run pulumi -C examples/local up --yes
poetry run pltui -C examples/local

The empty passphrase is only for this non-sensitive example. Backend files and stack configuration are ignored by Git. Run stack init once per stack; afterwards use stack select dev or stack select sandbox before up.

Contributing

Contributions are welcome. See CONTRIBUTING.md for setup, project layout and conventions.

License

Apache-2.0. See LICENSE.

Metadata

Release files for pulumi-tui 0.1.0

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

Source distribution (sdist)

Source distribution for pulumi-tui 0.1.0
File Size Uploaded Provenance
pulumi_tui-0.1.0.tar.gz 22.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pulumi-tui 0.1.0
File Interpreter ABI Platform
pulumi_tui-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 49.2 kB

Release files / pulumi_tui-0.1.0.tar.gz

Download URL pulumi_tui-0.1.0.tar.gz
Size 22.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b047771edf3e778be4556176a87f1a5dd2ebf4cce44310af9fe2ce0fb7196063
BLAKE2b-256 checksum
How to use checksums
dc3eab37e4139ac07b71e6b8a0a4891ae740386e75063b15269c424f99fd37f6
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 14, 2026.

Transparency log

Release files / pulumi_tui-0.1.0-py3-none-any.whl

Download URL pulumi_tui-0.1.0-py3-none-any.whl
Size 26.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ebfb8f9a70355bd699c2e9cb0b5bceb8a732b81bface4055ceb0716b8abf17ab
BLAKE2b-256 checksum
How to use checksums
ff128cf4e57522a8ab50259aad8a47620c1296649410761ccff848ff18f90267
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 14, 2026.

Transparency log

Security for pulumi-tui 0.1.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pulumi_tui-0.1.0.tar.gz

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 14, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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