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

# 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 pip you can do the usual:

    pip install pyte

Otherwise, 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. Here’s a shortlist the ones that do:

- Ajenti – a webadmin panel for Linux and BSD, which uses `pyte` for its terminal plugin.

- Pymux – a terminal multiplexor.

- BastionSSH – a tool for protecting, monitoring and accessing multiple SSH resources.

- Jumpserver – an open source springboard machine(fortress machine): authentication, authorization, audit, automated operation and maintenance.

Note

Using `pyte`? Add yourself to this list and submit a pull request.

# 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 examples in the examples directory.

- Tutorial
- API reference
  - pyte.streams
    - pyte.Stream
    - pyte.ByteStream
  - pyte.screens
    - pyte.screens.Screen
    - pyte.screens.DiffScreen
    - pyte.screens.HistoryScreen
    - pyte.screens.DebugScreen
  - pyte.modes
  - pyte.control
  - pyte.escape
  - pyte.graphics
  - pyte.charsets
- pyte Changelog
  - Version 0.8.0
  - Version 0.7.0
  - Version 0.6.0
  - Version 0.5.2
  - Version 0.5.1
  - Version 0.5.0
  - Version 0.4.10
  - Version 0.4.9
  - Version 0.4.8
  - Version 0.4.7
  - Version 0.4.6
  - Version 0.4.5
  - Version 0.4.4
  - Version 0.4.3
  - Version 0.4.2
  - Version 0.4.1
  - Version 0.4.0
  - Version 0.3.9
  - Version 0.3.8
  - Version 0.3.7