sscan (”Sean’s scanner”) is a UI for scanning multi-page documents using the scanimage(1) command and a flatbed scanner.

I wrote sscan because I often need to scan multi-page documents on my GNU/Linux system, and I have only a flatbed scanner, without an ADF.

sscan was originally a crude Python script. Now it is a somewhat more robust Haskell program, relying on the Brick library.



  1. Ensure that your scanner has SANE support.
  2. Install prerequisite utilities: apt-get install ocrmypdf pdftk sane-utils haskell-stack imagemagick
  3. Use stack to build and install sscan: stack install sscan

Note that stack will automatically download and install the various Haskell dependencies of sscan – unfortunately, these are not yet likely to all be installable from your distribution’s mirrors.


sscan does not yet have a configuration file. If it did, this could be used to configure the available presets, the default settings on startup, and the output directory. Patches welcome.


Ensure that ~/.local/bin is in your PATH environment variable.

Then open a terminal, run sscan and follow the on-screen instructions. If you can’t see all the key bindings, you will need to increase the size of your terminal.

Source code

sscan is written in Haskell.


By e-mail to <>.