Skip to main content

tcoda — Textual coda

A coda is a final part that brings something to a close, completing what came before it.

tcoda is a widget library to extend Textual with things I regularly use in my projects.

Installation

uv add tcoda      # or: pip install tcoda

Demo

python -m tcoda runs a demo app that uses every widget and dialog, the way python -m textual runs Textual's own. See docs/demo.md for where each component appears in it.

Widgets — tcoda.widgets

Widget Description
Header One-line header with clickable left, middle and right areas
Footer Key bar with pinned keys, sorting, and a status corner that holds widgets
Countdown Seconds counter with a spinner for work in flight
MenuBar Midnight-Commander style pulldown menu bar, declared inline
LogViewer Slide-down panel showing the app's logging output, filterable by level and source
ChordViewer which-key style panel listing what can follow a pending chord
DataTable Textual's DataTable plus clickable sorting and per-cell tooltips
Resizable Mixin that makes a pane resizable by dragging its border

Dialogs — tcoda.dialogs

Dialog Description
Dialog Shared chrome for centered modal dialogs
ConfirmDialog Generic yes/no question
AboutDialog About box read from a text file, with AboutMenuItem
SettingsDialog Editor for every declared setting, with SettingsMenuItem

Modules

Module Description
tcoda.chords VSCode-style multi-key bindings (ctrl+k ctrl+s) via an App mixin
tcoda.terminal_title Sets the terminal's window title and restores it on exit, via an App mixin
tcoda.settings Self-registering typed settings, persisted only when overridden
tcoda.log_sink In-memory logging handler behind LogViewer
tcoda.demo The demo app behind python -m tcoda

The conventions every component follows, and why, are in docs/DESIGN.md.

AI disclosure

Substantial parts of this code were generated with Sonnet 5.x/Opus 5.x. Generated code was tested, but not every line was reviewed in detail.

License

0BSD

Metadata

Release files for tcoda 0.8.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 tcoda 0.8.0
File Size Uploaded Provenance
tcoda-0.8.0.tar.gz 118.7 kB With provenance Details

Built distribution (wheel)

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

Total release size: 199.6 kB

Release files / tcoda-0.8.0.tar.gz

Download URL tcoda-0.8.0.tar.gz
Size 118.7 kB
Tags Source
SHA-256 checksum
How to use checksums
031f8fa82c082e4f6c7bcae7b7276c71f15095ce6686ace2f529489c1ca5b8cb
BLAKE2b-256 checksum
How to use checksums
6a002131fbcd6610d339f59634bf6e6e921c9dc5da9079da0f8369f97d164fa3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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

Transparency log

Release files / tcoda-0.8.0-py3-none-any.whl

Download URL tcoda-0.8.0-py3-none-any.whl
Size 80.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93c42df5e5dbf7ae5638b35b80435c29a34f7d0b8b146ceca391f20d14653161
BLAKE2b-256 checksum
How to use checksums
49e7e649634f675396bc8c9c2e4f517fe9f4697bce21224e0b94519f85ad3b73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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

Transparency log

Security for tcoda 0.8.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 tcoda-0.8.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 23, 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

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