⚡ Why ktui?
Tired of memorizing exact YAML structures, indentation rules, and valid fields for every Kubernetes resource?
ktui solves this by giving you a dynamic, schema-driven terminal UI. It behaves like a modern web form inside your terminal. Pick a resource, fill in the fields you care about, use the interactive field picker to search for advanced properties, and preview or save the generated YAML.
✨ Features
- 🏗️ Schema-driven Forms: Built-in definitions for core Kubernetes resources (Deployments, Pods, Services, ConfigMaps, RBAC, OpenShift Routes, etc.).
- 🔍 Interactive Field Picker: Don't see the field you need? Open the searchable field picker to dynamically mount new properties or entire field groups (like
spec.template.spec.containers) into your form. - ♻️ Smart Merging: Added fields are intelligently merged into their correct hierarchical sections—no duplicate categories or broken nesting.
- 🗂️ Multi-Tab Editing: Open several resources at once (even multiple of the same kind), each in its own tab with independent state. Tabs are titled after
metadata.name. - 👁️ Live YAML Preview: Press
pat any time to instantly see the clean, formatted YAML you are building. - 🎨 Modern TUI: Keyboard-first navigation, multiple themes (press
tto cycle), and a responsive layout powered by Textual. - 💾 Instant Save: Save your generated manifests directly to your disk with a single keystroke.
🚀 Installation
ktui is distributed as both a Python package and a self-contained executable via npm.
Option A: npm / npx (Recommended for JS/TS devs)
You don't even need Python installed! The npm package downloads a pre-compiled native binary for your OS (Linux, macOS, Windows).
# Run directly without installing
npx @ktui/editor
# Or install globally
npm install -g @ktui/editor
Option B: pipx / pip (Recommended for Python devs)
Install via PyPI using pipx (to keep your environment clean):
pipx install ktui
# Or with pip
pip install ktui
⌨️ Usage & Keybindings
Simply run ktui in your terminal to start the application.
Global
| Key | Action |
|---|---|
↑ / ↓ |
Navigate focused lists |
Tab / Shift+Tab |
Move between form fields |
Enter |
Select resource / confirm (opens it in a new tab) |
Ctrl+W |
Close the active tab |
Ctrl+V |
Validate the active tab |
p |
Preview YAML |
Ctrl+S |
Save YAML to file |
t |
Cycle application theme |
Esc |
Close modal / Go back |
q |
Quit |
Field Picker (Press Add Field in forms)
| Key | Action |
|---|---|
/ |
Focus search bar |
↑ / ↓ |
Navigate available fields |
Enter (on property) |
Toggle individual field selection |
Enter (on 📁 group) |
Select / deselect all fields in that group |
Esc |
Cancel without adding |
🛠️ Development
If you want to contribute or build from source:
git clone https://github.com/marceleno1717/ktui.git
cd ktui
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Start the app
ktui
📄 License
This project is licensed under the PolyForm Noncommercial License 1.0.0.
Metadata
Release files for ktui 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ktui-0.2.0.tar.gz | 74.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ktui-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 74.9 MB
Release files / ktui-0.2.0.tar.gz
| Download URL | ktui-0.2.0.tar.gz |
|---|---|
| Size | 74.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ab037ff8e0749d38482b1e40177b2da0ed2299de54521762d48edcc13f59838
|
|
BLAKE2b-256 checksum How to use checksums |
e3e22fe39a0a95a56539c7ec383c1fcbc872711c7087c7b65acf1b0983664c91
|
| 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 logRelease files / ktui-0.2.0-py3-none-any.whl
| Download URL | ktui-0.2.0-py3-none-any.whl |
|---|---|
| Size | 152.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc016911b714ee33f81e5fc161b96b0238462bc0f050941c228d8e83d58f5704
|
|
BLAKE2b-256 checksum How to use checksums |
52aac3339dcfaa0ae8d4e0f35ff60be03da074a6647df05a93fa8059888f0bd7
|
| 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