// 2026-08-05 · Tools & Utilities · by Bob Smith

suckless.org: Software That Does Less, On Purpose

suckless.org is home to dwm, st, dmenu and a philosophy of radical minimalism. Tiny C programs, configured by editing the source and recompiling.

Screenshot of suckless.org
suckless.org: what you'll see when you land there

suckless.org is a website about software that sucks less, which is a lower bar than “software that is good” and, they would argue, a much more honest one. The projects hosted there are tiny C programs: a window manager in around two thousand lines, a terminal emulator you can read on a lunch break, a launcher that does one thing. To change any setting, you edit the source code and recompile. This is not a joke. This is the configuration system.

What is suckless.org?

The suckless community formed in the mid-2000s around a simple observation: most software gets worse as it grows. Features accumulate, dependencies multiply, configuration languages sprout their own configuration languages, and eventually a text editor needs a package manager. suckless proposed the opposite direction. Write less code. Remove features. Keep the whole program small enough that one person can hold it in their head.

The flagship projects are dwm, st and dmenu. dwm is a dynamic tiling window manager that arranges your windows automatically instead of making you drag them around. st is a terminal emulator with no scrollback, no tabs and no configuration file, because the authors believe your terminal multiplexer should handle all of that. dmenu is a thin bar that appears at the top of the screen, lets you type a few letters, and runs the thing you meant. It is perhaps the most widely borrowed piece of software the project ever produced, and it fits in a few hundred lines.

The site itself is exactly what you would expect: plain HTML, no JavaScript, black text on white, loads instantly on anything. Alongside the code there is a section of essays and rants about software design, and they are worth reading even if you never compile a single line. The arguments about complexity, about how “user-friendly” often means “hard to understand”, and about the true cost of a dependency have aged remarkably well.

There is also a substantial patch archive. Since the core programs refuse to grow, every feature anyone ever wanted exists as a diff you apply yourself. Want scrollback in st? There is a patch. Want a system tray in dwm? Patch. This pushes the maintenance burden onto you, which is exactly the trade the project intends: you get a build with only your features in it, and you carry the diffs.

What can you do with suckless.org?

  • Read the philosophy page. Short, opinionated, and the best summary anywhere of why small software is easier to trust.
  • Try dwm. A tiling window manager small enough to audit, fast enough that it never gets in the way, and configured by C macros.
  • Install dmenu. Even if you use nothing else from the project, dmenu is a superb general-purpose picker that pipes lists in and selections out.
  • Run st as your terminal. Minimal, fast, and a good exercise in noticing which terminal features you actually use.
  • Browse the patch archive. Each project has a long list of community patches, and reading them is a fast education in how the code is structured.
  • Look at the smaller tools. slock for screen locking, surf for a keyboard-driven browser, sent for presentations made of plain text files, tabbed for adding tabs to anything.
  • Check the rocks and sucks pages. Blunt, entertaining lists of what the community thinks is well designed and what is not.

Tips to get the most out of it

Keep your config.h under version control. Since your settings are source code, put your patched tree in git. Rebuilding from scratch on a new machine then takes one clone and one make install.

Apply patches one at a time. Patch conflicts are the main tax of the suckless model. Add one, build, use it for a day, then add the next. Applying eight at once and then debugging the merge is a miserable evening.

Start with dmenu, not dwm. dmenu drops into any desktop environment and immediately makes it better. It is the low-risk way to find out whether this style of tool suits you before you replace your entire window manager.

Read the source before complaining. The whole point is that these programs are small enough to read. If something behaves oddly, the answer is usually thirty lines away, and finding it yourself is the intended experience.

Do not treat minimalism as a religion. The suckless approach is excellent for tools you use constantly and terrible for tools you touch twice a year. Take the ideas, not the whole doctrine.

Pin a known-good build. Keep a working binary around before you experiment. A broken window manager is a lot less funny than a broken text editor.

If you like suckless.org, also try…

  • Learn X in Y Minutes: the same allergy to padding, applied to programming languages.
  • wttr.in: the weather as a single HTTP request, with no app attached.
  • Wiby: a search engine for the lightweight, hand-made web that suckless pages belong to.
  • Kagi Small Web: more of the independent, low-JavaScript internet, served one page at a time.

More things that respect your machine in Tools & Utilities, and more strong opinions about interfaces in Design & Creativity.

Frequently asked questions

What is suckless.org?

suckless.org is the home of a group of developers who write deliberately minimal Unix software in C. Their best-known projects are dwm (a tiling window manager), st (a terminal emulator) and dmenu (a keyboard-driven launcher). The site also hosts essays explaining the philosophy behind the code, which is roughly that complexity is the enemy and most software has far too much of it.

Is suckless software free?

Yes. All the suckless projects are free and open source, released under permissive licenses, and the source is available directly from the site and its git repositories. There is no paid tier, no account and no telemetry.

How do you configure suckless programs?

You edit a file called config.h in the source tree and recompile. There is no runtime config file and no settings dialog. It sounds hostile, and at first it is, but it means the binary contains only the features you actually asked for, and the programs stay small enough to read end to end.

What are patches on suckless.org?

Because the core programs are kept intentionally tiny, extra features live as patches you apply to the source yourself. The site hosts a large collection of community patches for each project, covering things like extra layouts, system tray support or scrollback in the terminal. You pick the ones you want and leave the rest out.

Visit suckless.org →

← All posts · Browse the directory