A terminal interface for Tetris
Clone or download


tetris Build Status

A terminal interface for Tetris



For MacOS, the binary attached to the GitHub release should suffice (instructions). If you are on Debian or similar distros, you can try the Linux binary as well but no guarantees. See the other two options, installing from source and dex.

github release binaries

Here is a quick way to get the one for your OS:

curl -L https://github.com/samtay/tetris/releases/download/0.1.3/tetris-`uname -s`-`uname -m` -o tetris
chmod +x tetris
sudo mv tetris /usr/local/bin/

install from source

First get stack. Then

git clone https://github.com/samtay/tetris.git
cd tetris
stack install tetris

install via dex

dex is a really cool application manager that lets you run executables as docker images, so that you don't need to worry about installing them or their dependencies directly.

# get dex if you don't have it
curl -L http://get.iceburg.net/dex/latest-0.12.x/dex -o dex
chmod +x dex
sudo mv dex /usr/local/bin

# add tetris as a repo
dex repo add tetris https://github.com/samtay/tetris.git

# run tetris
dex run tetris

### optionally install tetris globally ###
export PATH="$HOME/.dex/bin:$PATH"
dex install --global tetris


The default game is run by simply executing the tetris command. If the unicode characters look a bit wonky in your terminal, you can also run

tetris --ascii-only         # uses [] as preview cell
# or
tetris --preview-chars 'XX' # uses custom characters as preview cell

If you want to skip the level prompt, you can start the game immediately via

tetris --level n

Lastly, to see the current high score, you can run tetris --high-score. And of course, see tetris --help for help.



People seem to have varying levels of success with the linux binary. Please note that it is compiled dynamically and hence should not be expected to work on most distros. If you have other problems, feel free to open an issue.

roll your own

If you like games in your terminal and have an interest in functional programming, write your own! This code is built on top of brick which makes building terminal user interfaces very accessible. I also have a tutorial that can help you get started.