Skip to content


Repository files navigation

You can follow the latest updates and work in the following branches:

  • master - current release branch at 0.4.11-alpha


EtherTerm is a portable terminal emulator and telnet/ssh client for Windows Linux, BSD, Arm and OSX. It differs from standard terminal emulators such as xterm and PuTTY by providing a common telnet and ssh protocol across platforms, with particular focus on font sets appropriate for connecting to BBS servers using cp437, and Amiga art. UTF-8 Font glyphs are planned for the future.

EtherTerm is comparable to programs such as syncterm and netrunner. Notably: It is an SDL2 graphics program and makes use of full OpenGL/DirectX graphics acceleration. This is not a console application.

The removal of Boost libs will be replaced with standard C++11 functionally instead. The build and project files are currently in the process of being rewritten and separated in folders by environment/os.

The previous 3.0 Demo branch is a fork and rewrite of the internals for EtherTerm. This version differs a bit as asynchronous sockets were added along with the ability to open several connections in their own windows. Other telnet option fixes and updates to the terminal have also been added along with some pre-testing of file upload/downloads. Still very raw (Dialing Directory is still unfinished. This more of a POC (Proof of concept) rewrite to see what can be done differently. Also some rendering changes were made and are in testing such as recolor blocks using alpha channels for a slight speed up. Note the 3.x branch had some experimental stuff I was testing, right now I've had to roll back several commits and some things are disabled until I get time to fix and re-implement them. Mainly input fields for SSH Connections.

Please keep in mind this is Alpha Software and is very much a work in progress.

EtherTerm is Open Source Software, (c) 2014-2019 Michael Griffin <>


Currently, no auto-configure environment is provided, and build targets are limited to Windows, Linux, ARM, FreeBSD and OSX.

EtherTerm is Alpha software. Please report any issues or feature requests as a github issue. Pull requests and contributions are always welcome.

Each system can be setup with a default font. Any systems using Syncterm escape sequences for font switching will override the default font.

  • VGA-8x16 (CP437)
  • MicroKnightPlus-8x16 (AMIGA)
  • Mo'soul-8x16 (AMIGA)
  • Pot Noodle-8x16 (AMIGA)
  • Topaz Plus-8x16 (AMIGA)

ALT + ENTER cycles between:

  • 1x unscaled window
  • 2x scaled window
  • scaled fullscreen

Etherterm currently follows the default Windows telnet output keys sequences as used in Syncterm as ANSI, VT100, LINUX and SCO key mappings are also available.

Copy and paste is comparable to X11: Left mouse click and drag to select text on the screen, release to copy selected text to the clipboard. Right mouse click to paste text from the clipboard.

To add new systems or remove, you must edit the assets/dialdirectory.xml file.

For all other systems, you must build from the project folder.

Generally, the following libraries must be installed:

  • sdl2
  • libssh (Requires OpenSSL, Zlib)
  • yaml-cpp

As well as a recent version of gnu/gcc providing g++, or clang. GCC/G++ version 5.x and above are required along with -std=c++11

  • I highly reccomend and IDE such as - CodeLite
  • Makefiles generated from Codelite are available in the project folders for building on the commandline.
  • FreeBSD 11 and OSX High Sierra have been tested with latest version of clang LLVM
  • For Windows, mingw32 or 64 is required.
NOTE: EtherTerm will seek an ./assets folder relative to the executable. In this way,
it is not (yet) a very "portable" executable. At this stage, a build folder has been created with quick scripts that will copy from the DEBUG folder to the build folder where the assets is now located by default.
  • "change_scroll_region": csr terminal sequence.
  • "alternate screen" buffer: smcup, rmcup terminal sequence.
  • scrollback buffer.
  • interactively edit the dialing directory.
  • other runtime configuration/setup options.
  • alternative window sizes, currently limited to only 80x25.
  • attempting to reach compliance with terminal type 'xterm-256color'.
  • transfer protocols (x, y, and z-modem).
  • ftp client support.
  • utf-8 encoding.
  • dingo: Telnet options and general terminal functionality.
  • g00r00: Optimization ideas on scrolling pixels faster.
  • SDL Game Development.
  • maze: Testing and bug reports.
  • Caphood: Testing and bug reports.
  • IceDevil: Testing and bug reports.
  • haliphax: Testing and bug reports.
  • hellbeard: Testing and bug reports.

EtherTerm is available under the zlib license : This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.