git clone https://github.com/pyratatui/pyratatui.git
cd pyratatui
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pip install maturin
maturin developRust source lives in src/, the Python package in python/pyratatui/.
Run these before opening a pull request:
pytest
cargo test
cargo clippy --all-targets -- -D warnings
cargo fmt --all -- --check
ruff check . && ruff format --check .
mypy .After changing Rust code, re-run maturin develop before pytest.
- Keep changes focused; pyratatui is a binding library, not a widget ecosystem — new third-party integrations belong in separate packages.
- Match the existing style: small functions, direct conversions, comments only where something is non-obvious.
- Add tests for new behavior; update
CHANGELOG.mdunder[Unreleased]. - Public API changes also need updates to
python/pyratatui/_pyratatui.pyiandpython/pyratatui/__init__.py.
Include steps to reproduce, expected vs. actual behavior, and your OS, Python, and Rust versions.