Skip to content
Minimalist, fast, cross-platform terminal emulator.
C++ CMake Other
Branch: master
Clone or download
zduka Determines version for default ubuntu in WSL.
If default Ubuntu distro is installed, "lsb_release" is executed in it to determine the actual release so that the bypass can be installed.
Latest commit ab13b7c Dec 5, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows CI artifacts. Nov 4, 2019
.vscode tmux tuning, docs added. Oct 20, 2019
benchmarks Updates deps Nov 28, 2019
docs tmux tuning, docs added. Oct 20, 2019
helpers Updates to logging.Logs are cleared when too many exists. Various upd… Nov 3, 2019
resources Better default fonts. Sep 25, 2019
ropen New versions Nov 30, 2019
scripts Fixes to the readme file, simplified builds. Nov 2, 2019
tests/scripts Project structure refactoring. Oct 10, 2019
tools cmake build overhaul Sep 17, 2019
tpp-bypass New versions Nov 30, 2019
tpp-lib Ack t++ sequence added. Oct 29, 2019
tpp-widget Faster & simpler logging. Nov 2, 2019
website Subprojects updated Nov 30, 2019
.gitattributes Add .gitignore and .gitattributes. Feb 15, 2019
CMakeLists.txt snap creation fixed. Nov 30, 2019
CMakeSettings.json Cleanup in bypass. Jul 23, 2019 Linux build should be fixed. Oct 27, 2019 License changed to MIT Aug 10, 2019 Github actions renamed and badges used. Nov 4, 2019 Text added. Jul 6, 2019 Readme updated to reflect switch to Github Actions. Nov 3, 2019
lgtm.yml tpp renamed to terminalpp Nov 1, 2019


Windows build Linux build Codacy Badge Language grade: C/C++

This is the main development repository for the terminal++ and its suppport repositories.

Please note that tpp is in an alpha stage and there may (and will be) rough edges. That said, it has been used by a few people as their daily driver with only minor issues. Notably the font detection is lacking and unless you have the Iosevka font tpp uses by default the terminal might look very ugly before you edit the settings file.

Building From Sources

cmake is used to build the terminal and related projects as well as to orchestrate the generation of installation packages. First the related projects must be fetched, i.e. :

  • tpp-bypass - containing the Windows ConPTY bypass directly to WSL
  • ropen - a simple app that transfers remote files through the terminal connection so that they can be opened locally
  • website - tpp website

To clone them all, the scripts/ script can be executed (works with bash and cmd.exe), which uses the https connection. In case ssh keys are used the scripts/ should be executed instead.


tpp has very minimal dependencies. On Windows latest Visual Studio must be installed (or Visual Studio Code with c++ support) and cmake, while the packagres required on Linux can be automatically installed via the scripts/

Building via CMake

The whole build process on all platforms is automated via cmake. The following are examples on how to create release build for the supported platforms:

A good way to start is to look at the CI configurations in .github/workflows folder where build steps for each supported platform are detailed.


mkdir build
cd build
cmake .. 
cmake --build . --config Release


mkdir -p build/release
cd build/release

Building Installation packages

By default, installation packages for terminalpp are created for the given platform and subject to the availability of the package creation tools (WIX toolset for Windows, snapcraft, and DEB and RPM tools on Linux).

To create them, build the packages target:

cmake --build . --target packages

Since cpack is not able to create multiple packages during a single build, multiple conditional builds must be executed.

To build installation packages for ropen and bypass, the project must be reconfigured with the -DPACKAGE_INSTALL=tpp-ropen or -DCPACKAGE_INSTALL=tpp-bypass respectively.

Manual installation

Once the package to be creates has been selected via -DPACKAGE_INSTALL (or left default), the default install target can be used to install the respective applications (Linux only):

sudo cmake --build . --target install
You can’t perform that action at this time.