                   _
                  | |
     _ __   _   _ | |_  ___
    | '_ \ | | | || __|/ _ \
    | |_) || |_| || |_|  __/
    | .__/  \__, | \__|\___|
    | |      __/ |
    |_|     |___/      0.4.8

# What is `pyte`?

It’s an in memory VTXXX-compatible terminal emulator. XXX stands for a series of video terminals, developed by DEC between 1970 and 1995. The first, and probably the most famous one, was VT100 terminal, which is now a de-facto standard for all virtual terminal emulators. `pyte` follows the suit.

So, why would one need a terminal emulator library?

- To screen scrape terminal apps, for example `htop` or `aptitude`.
- To write cross platform terminal emulators; either with a graphical (xterm, rxvt) or a web interface, like AjaxTerm.
- To have fun, hacking on the ancient, poorly documented technologies.

Note: `pyte` started as a fork of vt102, which is an incomplete pure Python implementation of VT100 terminal.

# Installation

If you have setuptools you can use `easy_install -U pyte`. Otherwise, you can download the source from GitHub and run `python setup.py install`.

# Similar projects

`pyte` is not alone in the weird world of terminal emulator libraries, here’s a few other options worth checking out: Termemulator, pyqonsole, webtty, AjaxTerm and of course vt102.

# `pyte` users

Believe it or not, there’re projects which actually need a terminal emulator library, not many of them use `pyte` though:

- Selectel – hey, we wrote this thing :)
- Ajenti – easy to use weadmin panel for Linux and BSD uses `pyte` for its terminal plugin.
- Neutron IDE – personal cloud IDE.

# Show me the code!

Head over to our brief Tutorial or, if you’re feeling brave, dive right into the API reference – `pyte` also has a couple of minimal examples in the `examples/` directory.