Metadata-Version: 2.5
Name: taut-tui
Version: 0.9.0
Summary: Human-first terminal interface extension for Taut
Author-email: Van Lindberg <van.lindberg@gmail.com>
License: MIT
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: taut-chat>=0.9.0
Requires-Dist: textual>=8.2.8
Provides-Extra: dev
Requires-Dist: build>=1.5.0; extra == 'dev'
Requires-Dist: mypy>=2.3.0; extra == 'dev'
Requires-Dist: pytest-cov>=7.1.0; extra == 'dev'
Requires-Dist: pytest-timeout>=2.4.0; extra == 'dev'
Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
Requires-Dist: pytest>=9.1.1; extra == 'dev'
Requires-Dist: ruff>=0.16.3; extra == 'dev'
Requires-Dist: taut-summon>=0.9.0; extra == 'dev'
Description-Content-Type: text/markdown

# taut-tui

`taut-tui` is Taut's human-first terminal interface extension. It reflects
the public capabilities of `taut-chat` and loaded first-party extensions in a
full-screen Textual application. It does not define a second chat model or
derive forms from CLI arguments.

Install it beside core, or use core's convenience extra:

```bash
python -m pip install taut-chat taut-tui
# equivalent convenience install
python -m pip install 'taut-chat[tui]'
taut tui
```

The extension publishes `tui` through the `taut.commands` entry-point group.
There is intentionally no separate `taut-tui` console script. Without this
distribution installed, core does not claim the `tui` command.

The interface provides transcript-first navigation, native typed actions and
forms, vi-like and conventional keys, mouse controls, state-preserving terminal
reflow, actor-free system reports, and supervised terminal handoff to
`taut-summon` when that extension is available. Workspace load remains a
CLI-only maintenance action.

The governing behavior is in
[`docs/specs/10-taut-tui.md`](../../docs/specs/10-taut-tui.md). Architecture
and ownership rationale are in
[`docs/implementation/12-taut-tui.md`](../../docs/implementation/12-taut-tui.md).

## Development

From the repository root:

```bash
uv run --project extensions/taut_tui --extra dev \
  pytest extensions/taut_tui/tests -n 0
uv run --project extensions/taut_tui --extra dev \
  ruff check extensions/taut_tui/taut_tui extensions/taut_tui/tests
uv run --project extensions/taut_tui --extra dev \
  mypy extensions/taut_tui/taut_tui extensions/taut_tui/tests
```

The retained lock runs the complete suite with Textual 8.2.8. There is no
separate older-Textual compatibility lane.
