Metadata-Version: 2.4
Name: anytext
Version: 9.0.0
Summary: Modern Text User Interface framework
License: MIT
License-File: LICENSE
Author: Will McGugan
Author-email: will@textualize.io
Requires-Python: >=3.11,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Operating System :: Microsoft :: Windows :: Windows 11
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Typing :: Typed
Provides-Extra: syntax
Requires-Dist: anyio (>=4.11,<5)
Requires-Dist: markdown-it-py[linkify] (>=2.1.0)
Requires-Dist: mdit-py-plugins
Requires-Dist: platformdirs (>=3.6.0,<5)
Requires-Dist: pygments (>=2.19.2,<3.0.0)
Requires-Dist: rich (>=14.2.0)
Requires-Dist: sniffio (>=1.3,<2)
Requires-Dist: tree-sitter (>=0.25.0) ; extra == "syntax"
Requires-Dist: tree-sitter-bash (>=0.23.0) ; extra == "syntax"
Requires-Dist: tree-sitter-css (>=0.23.0) ; extra == "syntax"
Requires-Dist: tree-sitter-go (>=0.23.0) ; extra == "syntax"
Requires-Dist: tree-sitter-html (>=0.23.0) ; extra == "syntax"
Requires-Dist: tree-sitter-java (>=0.23.0) ; extra == "syntax"
Requires-Dist: tree-sitter-javascript (>=0.23.0) ; extra == "syntax"
Requires-Dist: tree-sitter-json (>=0.24.0) ; extra == "syntax"
Requires-Dist: tree-sitter-markdown (>=0.3.0) ; extra == "syntax"
Requires-Dist: tree-sitter-python (>=0.23.0) ; extra == "syntax"
Requires-Dist: tree-sitter-regex (>=0.24.0) ; extra == "syntax"
Requires-Dist: tree-sitter-rust (>=0.23.0) ; extra == "syntax"
Requires-Dist: tree-sitter-sql (>=0.3.11) ; extra == "syntax"
Requires-Dist: tree-sitter-toml (>=0.6.0) ; extra == "syntax"
Requires-Dist: tree-sitter-xml (>=0.7.0) ; extra == "syntax"
Requires-Dist: tree-sitter-yaml (>=0.6.0) ; extra == "syntax"
Requires-Dist: typing-extensions (>=4.4.0,<5.0.0)
Project-URL: Documentation, https://textual.textualize.io/
Description-Content-Type: text/markdown

# Anytext

Anytext is a fork of [Textual](https://github.com/Textualize/textual), a Python framework for building terminal user interfaces.

## Installation

```sh
pip install anytext
```

To install this checkout for development:

```sh
pip install -e .
```

## Usage

```python
from anytext.app import App, ComposeResult
from anytext.widgets import Header, Footer, Static


class HelloApp(App):
    def compose(self) -> ComposeResult:
        yield Header()
        yield Static("Hello from Anytext!")
        yield Footer()


if __name__ == "__main__":
    HelloApp().run()
```

Run the bundled demo with `python -m anytext`.

Configuration uses `ANYTEXT_*` environment variables, including `ANYTEXT_THEME`,
`ANYTEXT_ANIMATIONS`, and `ANYTEXT_FPS`. The default themes are `anytext-dark` and
`anytext-light`. Set feature flags with `ANYTEXT` (for example, `ANYTEXT=debug`).

Upstream tools such as `textual-dev`, `textual-serve`, and
`pytest-textual-snapshot` are external packages and may require adaptation for
this fork. External package names and links keep their original names.

## WebAssembly and thread-free hosts

On Pyodide/WASM, Anytext automatically uses a thread-free runtime and a
host-driven terminal driver. Set `ANYTEXT_THREADS=0` before importing Anytext to
exercise this mode on desktop Python. See the [WASM guide](docs/guide/wasm.md) for
terminal callbacks, async workers, limitations, and the Pyodide smoke test.

## License and attribution

Anytext retains the original MIT license and original copyright notices. See [LICENSE](LICENSE).

