Metadata-Version: 2.4
Name: textual_tty
Version: 0.3.1
Summary: A tty for Textual UIs
Author-email: Gareth Davidson <gaz@bitplane.net>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: Public Domain
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
License-File: LICENSE.md
Requires-Dist: textual>=8.2
Requires-Dist: bittty>=0.1.1,<0.2
Requires-Dist: pywinpty ; sys_platform == 'win32'
Requires-Dist: pre-commit ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: pytest-asyncio ; extra == "dev"
Requires-Dist: coverage ; extra == "dev"
Requires-Dist: pytest-cov ; extra == "dev"
Requires-Dist: pydoc-markdown ; extra == "dev"
Requires-Dist: build ; extra == "dev"
Requires-Dist: twine ; extra == "dev"
Requires-Dist: ruff ; extra == "dev"
Requires-Dist: mkdocs ; extra == "dev"
Requires-Dist: mkdocs-material ; extra == "dev"
Project-URL: Bug Tracker, https://github.com/bitplane/textual-tty/issues
Project-URL: Homepage, https://bitplane.net/dev/python/textual-tty
Project-URL: Source Code, https://github.com/bitplane/textual-tty
Provides-Extra: dev

# textual-tty

A terminal emulator for Textual apps, using `bittty`, my pure Python terminal
emulator.

Terminals in your terminal: draggable, resizable windows running real ptys.

## Demo

```bash
uvx textual-tty
```

## Usage

```python
from textual_tty import Terminal, TerminalWindow, Window

# A terminal as a plain widget: composes a bittty Board, never subclasses it.
yield Terminal(command="htop")

# Or in a draggable, resizable window that closes when the process exits.
yield TerminalWindow(command=["vim", "README.md"])
```

`Terminal` speaks the whole seam: bracketed paste, OSC palette/title/cwd/
clipboard/notifications, DECSCUSR cursor shapes, synchronized output, mouse
reporting with drag-selection when the child isn't tracking, OSC 8 links
(ctrl+click opens), and XTWINOPS — a child can move, raise, and resize its
own window. Discrete events arrive as Textual messages; anything deeper is
on `terminal.board` (the bittty emulator). `Window` is a bare-bones
draggable/resizable window you can use for other things too.

Read the demo code (`textual_tty/demo.py`) for a working app.

## Links

* [🏠 home](https://ttygroup.github.io/textual-tty)
* [🗔  bittty](https://bitplane.net/dev/python/bittty)
* [🐍 pypi](https://pypi.org/project/textual-tty)
* [🐱 github](https://github.com/ttygroup/textual-tty)

## License

WTFPL with one additional clause

1. Don't blame me

Do wtf you want, but don't blame me when it rips a hole in your trousers.


