A Linux compatible terminal emulator which exposes additional HTML rendering modes to client programs.
Requires Python 2.7 and PyQT4 (and ClojureScript for development).
Get the source:
$ git clone https://github.com/hoeck/schirm.git
Optionally install xsel (https://github.com/kfish/xsel or
apt-get install xsel) to be able to paste the current X
selection using Shift-Insert. Middle-click selection works without
$ cd schirm $ python -m schirm
or install and then run it:
$ python setup.py install $ schirm
Runs all your favorite commandline applications, including:
mc, htop, vim, grep --color ...
See the demos in
they use the schirmclient.py lib to show HTML documents in the terminal
add them to your
or invoke them with
get and view some html:
$ curl news.ycombinator.com | sview
preview a Markdown document:
$ markdown README.md | sview
show a tree of a directory (uses d3.js, slow/crashing for large directories):
$ stree .
$ stree --circle
view an image:
$ sview schirm-logo.png
with interactive rescaling buttons:
$ sview -i schirm-logo.png
edit text using codemirror:
$ sedit README.md
Place your own styles into
~/.schirm/user.css and restart the terminal.
schirm/resources/user.css for the default stylesheet.
In the terminal window, right click for the context menu and select
inspect to open the webkit devtools. Right-click on the very left of
the terminal window to open a context menu containing the
to restart the terminal
Escape-sequence based, works with every programming language which can write bytes to
- no terminal mouse click support
- only 16 colors
- only UTF-8
- slow Application mode (e.g. fullscreen ncurses apps)
cat <1G file>will bring everything to a halt
- emulation glitches (e.g. when resizing htop)
- https://github.com/mitotic/graphterm: terminal emulator supporting HTML iframes and serving files, server written in Python
- https://github.com/unconed/TermKit: not an emulator but a completely new terminal, built on WebKit and Node.js
- https://github.com/liftoff/GateOne: HTML5 Terminal emulator
- http://code.google.com/p/shellinabox/: a complete browser terminal emulator with server
- http://www.enlightenment.org/p.php?p=about/terminology: nextgen Terminal Emulator of the Enlightment Project
- http://www.logilab.org/project/pyqonsole: QT python terminal emulator
- https://github.com/selectel/pyte: beautiful VTXXX compatible terminal emulator library
- http://www.masswerk.at/termlib/ (referenced by Fabrice Bellard on his tech details page. Bellard uses his own proprietary terminal emulator though)
- https://github.com/chjj/tty.js (actual terminal emulator here)
- http://mister-muffin.de/scriptreplay/VT100.js (Frank Bi's unmaintained terminal emulator, outdated by now)
- https://github.com/shockone/black-screen: built on electron, blends shell features (e.g. autocompletion) into the terminal, aims to be VT100 compatible
- https://github.com/substack/exterminate: nodejs, runs in chrome, VT100, web features such as image and html display
- https://github.com/CGamesPlay/hterminal: electron, alpha, augments commands such as ls and git status, uses fish shell, special HTerminal protocol for extensions
- https://github.com/sedwards2009/extraterm: electron, typescriptm codemirror for displaying, solid emulation based on term.js
- https://github.com/PerBothner/DomTerm: terminal emulation in JS, Server or GUI in Java, extension via escape sequences
- https://github.com/zeit/hyperterm: electron, focus on emulation and plugin-like extensions
- https://github.com/vshatskyi/black-screen: electron, integrates with the actual shell to e.g. provide an autocompletion popup
Copyright (C) 2012 Erik Soehnel
Licenced under the GPLv3.
Client library is BSD licenced.