Skip to main content

a pure python tty

Project description

bittty

A pure Python terminal emulator.

Almost usable; some scroll region problems, doesn't like textual in textual yet.

Demo

Run the standalone demo:

python ./demo/terminal.py

Or use the textual demo to see it in a TUI:

uvx textual-tty

Links

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.

Recent changes

  • 🔙 DECLM - allow \n to act like \r\n so we don't have to rely on cooked input on the pty when using as a library.
  • 🖼️ DEC Special Graphics
  • 🐌 Faster colour/style parser
  • ⛓️‍💥 Split out from textual-tty into separate package

bugs / todo

  • architecture
  • gui
    • make a terminal input class, for standalone input
    • make framebuffer.py
    • choose a display driver
  • performance improvements
    • parse with regex over large buffer sizes
    • line cache for outputs
  • scrollback buffer
    • implement logloglog for scrollback with wrapping
  • bugs
    • corruption in stream - debug it
    • scroll region: scroll up in vim corrupts outside scroll region
  • add terminal overlay visuals
    • bell flash effect
    • make cursor an overlay
    • make mouse an overlay
    • debug overlay for scroll regions
  • Support themes
  • bittty-specific escape sequences
    • visible mouse on / off
    • debugging info
    • record
    • list sequences + values

Unhandled modes

  • DECRLM (Right-to-Left-Language Mode): Enables right-to-left language support.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bittty-0.0.6.tar.gz (34.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bittty-0.0.6-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

Details for the file bittty-0.0.6.tar.gz.

File metadata

  • Download URL: bittty-0.0.6.tar.gz
  • Upload date:
  • Size: 34.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for bittty-0.0.6.tar.gz
Algorithm Hash digest
SHA256 105117733b925521072a1fe7221154535a967d4f7ffababc5360f6f2f1c6d49e
MD5 1906bcd5a8e46b0af949c219abeb657d
BLAKE2b-256 8a2d63cf1377414d9442a1c14d5c755ddd329c1aff0cc440fe93d7b1677e94f4

See more details on using hashes here.

File details

Details for the file bittty-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: bittty-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 39.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for bittty-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b0199c7dce4d18cd3dd131d2a93e4ea2dd1f95d29d5739bf6e8f5d9a037ab096
MD5 5231a5d40f503d99188bdf6457c9710a
BLAKE2b-256 ead674b12e7c2e0ae9d98e51f4b906bd7959dc48d2d7cda625660555c57378b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page