Stuff that rocks

Software on this page should have ideas similar to the suckless philosophy. The software must be FOSS licensed.

Libraries

This section is for small, usable development libraries, which can be used for writing software that sucks less. These should preferably be under the MIT/X consortium or BSD licenses, WTFPL, or public domain, or alternatively LGPL, because it makes them legally compatible with other suckless projects.

Libc Implementations

musl - standard C library that attempts to be even smaller than uClibc. See also: embedded libc comparison

uClibc - strives to be a minimalist C library suitable for embedded computing.

Compilers

cproc - frontend for C11 for QBE.

qbe - compiler backend targetting x64.

scc - Simple C Compiler.

tcc - Tiny C Compiler git repo

Compression

liblzf - very fast, legally unencumbered compression library.

libz - ABI and API compatible zlib fork with focus on correctness, proper portability, auditability, simplification and opportunities to optimize (zlib license).

Lzip - Properly designed data compressor outperforming gzip and bzip2 (GPLv2+).

miniz - single C-file reimplementation of zlib (MIT License).

xz embedded - lightweight decompressor for the xz LZMA compressor (public domain).

zlib - the "standard" compression/decompression library, quite small, used in many applications (zlib license).

Cryptography

LibreSSL - LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014.

Miscellaneous

baresip - barebone SIP stack (BSD licence).

ccv - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library.

libev - high performance event-loop modelled after libevent but much smaller (dual licensed under 2-clause BSD and GPL).

mandoc - The mandoc UNIX manpage compiler toolset.

pjsip - open-source SIP stack (GPL).

raycastlib - Single-header public domain C raycasting renderer with no dependencies, using only integer math.

sdhcp - IPv4 DHCP client.

small3dlib - Single-header public domain C software 3D renderer with no dependencies, using only integer math.

termbox - simple ncurses-like library for creating TUIs.

Distros

morpheus - A statically linked musl-based Linux distro. Unmaintained currently.

Programs

Some programs work well with dwm. Some general rule of thumb for judging if a program is usable are:

The program will accept any window size.

The program consists of a single window (there are no nested windows, such as in Xpdf).

This covers most console-based programs and programs from plan9port.

Audio Players

C* Music Player - aka cmus, a ncurses music player that can be controlled with an UNIX socket.

moc - console audio player for Linux/UNIX.

mpd - A client/server based music player with console and graphical front-ends.

mpg123 - A console MPG player which doesn't use auto*hell or extra libraries.

mpg321 - A command-line MP3 player.

vorbis-tools (Ogg/FLAC) - Command-line tools to play Ogg and FLAC files.

BitTorrent clients

btpd - The BitTorrent Protocol Daemon.

Feed aggregators / newsreaders

sfeed - RSS and Atom parser + CLI programs and sfeed_curses UI.

snownews - Text mode RSS newsreader for Linux and Unix.

zs - Zeitungsschau RSS to email converter.

File managers

lf - ranger-like file manager written in Go (WIP but usable).

mc - Midnight Commander is a free cross-platform orthodox file manager.

nnn - Noice is Not Noice, a fork of noice with more features.

noice - Small and portable file browser.

ranger - ranger is a file manager with vi key bindings written in python but with an interface that rocks.

rover - Simple file browser for the terminal.

Git

stagit - static git page generator (HTML).

stagit-gopher - static git page generator for gopher (geomyidae .gph pages).

Gopher clients

Lynx - text-mode web browser, supports the Gopher protocol.

sacc - terminal gopher client by quinq.

IRC clients

hii - A file-based IRC client, inspired by ii, with a focus on easing frontend development

ii - A FIFO based IRC client which is part of the suckless.org project.

irc.c from mpu - A minimal curses IRC client.

Irc - IRC client for ACME.

ircrc - An rc-based IRC client similar to ircc. Needs minor modification to run on UNIX.

irssi - Text-mode IRC client.

jj - A rework of ii that offloads all the IRC protocol parsing to an awk script, permitting triggers.

kirc - A tiny IRC client written in POSIX C99.

quIRC - a lightweight console IRC client.

sic - Another suckless.org IRC client. Similar to ircc.

Image viewers

feh - A highly customizable image viewer that can also set a desktop background image.

imv - Simple X11/Wayland Image Viewer. Depends on SDL2 and FreeImage.

jpg/gif/bmp/png - Simple programs from Plan 9 to display images in no-frills windows. Included with plan9port.

meh - image viewer using raw XLib, libjpeg, libpng and libgif.

page - Plan 9's image/document viewer program. Included with plan9port.

qiv - Quick Image Viewer.

sxiv - Simple (or small or suckless) X Image Viewer. Depends on xlib and imlib2.

xli

xzgv

Instant-Messaging clients

bitlbee - A program to translate IM protocols to IRC.

CenterIM - A centericq fork.

irssi-xmpp - An irssi plugin to connect to the Jabber network.

mcabber - A console jabber client.

ysm - A console-based ICQ client.

Mail clients

fdm - fetch and deliver mail.

heirloom-mailx - A mail client based on the original Berkeley Mail 8.1 with many new features.

isync - MDA that can work better for IMAP, also known as mbsync.

mblaze - UNIX utilities to deal with Maildir.

mmh - Meillo's mail handler (mmh), a fork of nmh.

mpop - a POP3 mail client. It is much faster and simpler than fetchmail.

mutt - A ncurses mail client for fetching, reading and sending email.

nmh - Message Handling System.

plan9port/Mail - A mail client for acme. Included with plan9port.

s-nail - An improved heirloom-mailx.

Media players

ffplay - FFplay is a very simple and portable media player. It came with ffmpeg which depends on mplayer.

mplayer

mpv - a free, open-source and cross-platform media player.

Notifications

herbe - Daemon-less notifications without D-Bus. Minimal, lightweight & written in C.

Password managers

pass - "The standard UNIX password manager".

spm - Simple password manager (actively maintained fork of nmeum's tpm).

tpm - Tiny password manager.

PDF viewers

mupdf - a lightweight PDF viewer written in C. It supports PDF, XPS, EPUB, XHTML, CBZ, PNG, JPEG, GIF and TIFF.

zathura - an extensible document viewer/shell which can support CBZ, DJVU, PS, EPUB (with mupdf) and PDF (with mupdf or poppler).

Shells

dash - DASH is a POSIX-compliant implementation of /bin/sh that aims to be as small as possible.

mksh - MirBSD Korn Shell, an actively developed free implementation of the Korn Shell programming language and a successor to the Public Domain Korn Shell (pdksh).

Text editors

acme - Rob Pike's framing text editor for Plan 9. Included in plan9port.

ed - ED IS THE STANDARD TEXT EDITOR!

ired - A minimalist hexadecimal editor and bindiffer for p9, w32 and *nix.

mg - A portable version of mg maintained by the OpenBSD team.

mle - A small, flexible console text editor.

nano - A pico clone - this is small simple code and easy to use.

nvi - A small, multiple file vi-alike.

sam - An editor by Rob Pike with inspiration from ed.

traditional vi - A fixed version of the original vi.

vim (With the GUI, use :set go+=c to kill popup dialogs). It can be compiled to be as minimal as possible (see vim-tiny in Debian repos).

to kill popup dialogs). It can be compiled to be as minimal as possible (see vim-tiny in Debian repos). vis - A modern, legacy free, simple yet efficient vim-like editor.

wily - An acme clone for POSIX.

Text processing

json2tsv - a JSON to TAB-Separated Value (TSV) converter (and parser code).

Utilities / miscellaneous

abduco - session {at,de}tach support.

dvtm - dynamic virtual terminal manager.

entr - Run arbitrary commands when files change.

nq - UNIX command line queue utility.

slmenu - Dmenu spinoff for the console.

snore - Sleep with feedback.

Web browsers

Abaco - A graphical web browser for Plan 9 that supports most of HTML 4.01.

Conkeror - A Gecko based browser, with Emacs-style key bindings, appearances and behaviors.

Dillo - Blazingly fast graphical browser with basic CSS support.

edbrowse - ed-alike webbrowser. Unfortunately it is not the standard web browser.

ELinks - Feature-rich fork of Links, but without the graphical mode.

Links - A text-based browser that also has a simple graphical mode.

Lynx - text-mode web browser, supports the Gopher protocol.

netsurf - Very fast graphical browser with custom engine that has near-perfect CSS support.

surf - WebKit2 browser that can be embedded into other applications and uses dmenu as the address bar.

Tridactyl - A WebExtension that tries to make Firefox Vim like. Unlike many similar extensions it works with firefox 57+.

uzbl - Web interface tools which adhere to the UNIX philosophy.

VimFX - Vimperator (Doesn't work with Firefox 57+)

Vimperator - An extension to make Firefox keyboard friendly and Vim-like. (Doesn't work with Firefox 57+).

w3m - Text-based browser which can view images in the terminal (X11 hack).

X11

9menu - A menu program based on the Blit-style menus so prevalent in Plan 9.

dmenu - dmenu is a dynamic menu for X.

ffcast - Simple screencasting.

grabc - Grab the color of some pixel in X11.

keynav - A new way for keyboard selection.

wmutils - A set of utilities for managing windows. Can be used on their own or to augment a WM itself. Support for tiling present.

xbanish - Hide the cursor while typing.

xclip - A tool for controlling the X11 clipboard.

xdotool - A tool for scripting X11 actions.

xzoom - A simple zoom application.

Daemons

This section is dedicated to daemons that are related to the UNIX philosophy.

Web Servers

darkhttpd - Darkhttpd is a simple, fast HTTP 1.1 web server for static content.

merecat - thttpd with vhost support.

mini_httpd - By the thttpd developers. Even smaller subset of thttpd with support for .htpasswd, CGI, dirlisting, HTTP errors and SSL, nothing more or less than that.

OpenBSD httpd/relayd - Designed to combat the feature creep of modern webservers. Boasts concise configuration, with sane defaults.

quark - suckless simple static web server.

thttpd - Outperforms many bigger httpds. Old, still works very well!

Gopher servers

geomyidae - small gopher-daemon written by 20h.

Misc daemons