Lazy Scan
GitHub

Scanning app for iPhone, Mac and Windows

One app for the pages and prints on your scanner.

Letters and contracts become one searchable PDF. A handful of photos laid on the glass come back as separate, straightened files from a single press of Scan. Lazy Scan is a native app on iPhone, Mac and Windows and talks to your scanner through the drivers your computer already uses, or over the network.

Lazy Scan is coming to the App Store, the Mac App Store and the Microsoft Store, free. It is not in any of them yet; developers can build it from source.

The Lazy Scan window on Windows 11 in Photos mode after Preview. The canvas shows the whole scanner bed with three old prints lying at different angles: a woman seated in an armchair, a house among trees and a log house. The sidebar lists Flatbed scanner, Sample scans, and the Scan button is at the bottom right.
Windows 11Photos mode: three tilted prints on the glass, previewed and ready to scan. The prints are public-domain scans from a museum collection, loaded into the app in place of a scanner; see the image credits.
  • macOS 14 Sonoma or later
  • Windows 10 (version 2004) or later, Windows 11
  • Try it with no scanner: built-in Demo Scanner

See it work

Three prints on the glass. Three files out.

Lay several prints on the scanner, crooked is fine, and press Scan once. The app finds each print, measures how far it is tilted, straightens and crops it, and lets you check the results before anything is saved.

A scanner bed with three tilted old prints: a house among trees, a woman seated in an armchair and a log house.

Three prints are lying on the glass. Press Scan.

Keep

The prints are public-domain scans from a museum collection (image credits), each cut from its museum backdrop and laid on a simulated scanner bed. The outlines and angles are the ones the Windows app's photo detection found on this image; your browser animates the steps. In the app, Auto-split photos and Auto-straighten can both be switched off, and in the review you can rotate a photo or fix its crop by hand.

Image adjustments

Fix the scan before you save it.

Brightness, contrast, saturation and sharpness sit on centered sliders: 0 changes nothing, −100 and +100 are the far ends. Restore faded colors brings washed-out prints back, and Descreen smooths the dot pattern of anything printed in a magazine or book. Each sample starts with the settings that suit it; drag across the picture to compare.

A real sample scan, original on the left and adjusted on the right.

Adjustments

Sample

0
0
0
0


Color

The demo follows the Windows app's image steps in order: auto enhance, brightness (exposure plus a small lift), contrast around mid-gray on an exponential scale (−100 is a quarter, +100 is four times), saturation, sharpness (below 0 it softens), descreen, restore faded colors, then the color mode. Black & white uses the Windows threshold of 50%; the Mac app has a slider for it. Mac results come from Apple's Core Image and look close, not identical. The samples are real public-domain scans: a faded cabinet card from around 1885 and a typed letter from 1903 (image credits). Neither switch corrects a color cast: on a print that has turned pink or orange, Auto enhance and Restore faded colors make the cast stronger, and lowering Saturation tones it down.

What it does

Start from what you're holding.

A stack of bills, a shoebox of prints, one faded wedding photo, a newspaper clipping. Each has its own way through the app. Everything below works on the Mac and Windows unless it's marked otherwise.

The screenshots show the Windows app with public-domain scans from museum and archive collections loaded in place of a scanner's output (image credits). The “Flatbed scanner, Sample scans” entry in the sidebar is the stand-in that hands those scans to the app, not a physical scanner, and the photo layouts are separate print scans laid on a simulated scanner bed.

Paperwork into one searchable PDF

macOS + Windows

Choose Document, then press Scan for each page. Pages wait in a queue where you can put them in order, turn them a quarter turn or drop one. Save PDF writes them as one file. Searchable PDF is on from the start: the app adds an invisible layer of recognized text, so you can select words and find them with search.

  • Prefer one file per scan? Save each scan straight away as PDF, JPEG, PNG or TIFF.
  • Document feeder: a stack goes through in one go. If the paper jams or the connection drops, the pages already scanned are kept and the app tells you why it stopped.
  • Text recognition uses Apple Vision on the Mac, which picks the language by itself, and Windows OCR on Windows, which needs a Windows OCR language pack.
Document mode in Lazy Scan on Windows. A typed letter from 1903 on American National Red Cross letterhead fills the canvas. Below it, under 2 pages in queue, are thumbnails of a printed restaurant menu from 1900 and of the letter, and the inspector on the right has a Save PDF (2 pages) button.
WindowsTwo pages queued, one PDF to save. Public-domain scans loaded into the app, see the credits.

A shoebox of photos into separate files

macOS + Windows

Choose Photos, fill the glass with prints and press Scan. Each one is found, straightened and cropped, then shown in a review grid. Untick anything that isn't a photo, rotate one, or open the crop editor and drag the corners yourself. Save Photos writes every print as its own JPEG, PNG or TIFF, with the right resolution recorded in the file.

  • The crop editor shows the crop's size in pixels and its angle as you work.
  • Windows only The crop editor works from the keyboard too: arrow keys move the frame, Ctrl with the arrows resizes it, and Shift takes bigger steps.
  • Auto-split photos and Auto-straighten are switches, so a single print can be scanned as it is.
  • macOS only Settings for the smallest photo to look for and for trimming the edges.
Lazy Scan in Photos mode after Scan. A dialog titled Detected 3 photos shows three straightened old prints, a house among trees, a woman seated in an armchair and a log house, each with a Keep checkbox, over the scan of the three tilted prints. Buttons read Discard and Save 3 Photos.
WindowsThe three prints from the top of the page, found and straightened for review. Public-domain scans loaded into the app, see the credits.
The Adjust crop window over a scan of three old prints. The tilted print of a log house has a blue crop frame with corner handles and a grid; badges at the top read 1601 by 1054 px and 11.1 degrees.
WindowsThe crop editor on a print tilted 11.1°. Public-domain scans loaded into the app.

Old, faded photos

macOS + Windows

The Old photo restoration preset scans at 600 dpi and saves PNG, so nothing is lost to compression. It turns on Restore faded colors, which brings back washed-out color, and Auto enhance, which stretches the tones.

For a photo printed in a book or magazine, also switch on Descreen to smooth the dot pattern. The preset leaves it off.

Try them on a faded sample above.

  • macOS only A black & white threshold slider and a JPEG quality slider. Windows uses fixed defaults.
  • Auto enhance on Windows stretches the histogram; it looks close to the Mac version but isn't identical.

Old photo restoration

Preset
Built in
Resolution
600 dpi
Color
Color
Saves as
PNG
Turns on
Restore faded colors, Auto enhance

Just one part of the glass

macOS + Windows

Press Preview for a quick, low-resolution look at the whole bed. Drag a box over the part you want, a stamp, a receipt, one picture from a page, and Scan captures only that area at the resolution you chose.

  • Resolution offers only the values your scanner really supports. Color, Grayscale or Black & white.
  • A scanner with only a document feeder has no glass to preview, so Preview is turned off for it.
  • macOS only The selected area's size is shown in inches.
The Scan tab after Preview. The canvas shows the whole scanner bed with three old prints lying at different angles, and a dashed selection box is drawn around the print of a house among trees at the top right. The status bar reads: Overview ready, drag on the preview to select an area, then Scan.
WindowsA box dragged over one print on the preview; Scan now captures only that area. Public-domain scans loaded into the app, see the credits.

Same settings, every time

macOS + Windows

Five starter presets cover the usual jobs, and you can save your own. Files are named from a template, and nothing is ever overwritten: if a name is taken, a number is added.

  • Document → PDF300 dpi · Color · PDF
  • Text document, compact200 dpi · Grayscale · PDF
  • Photos → JPEG600 dpi · Color · JPEG · auto-split
  • Old photo restoration600 dpi · Color · PNG
  • Quick preview scan150 dpi · Color · JPEG

Try a file-name template

    Uses today's date and time. The counter starts at 12 and goes up by one for each file. Characters a file name can't contain become a dash. In a photo batch, each photo gets its number even without {index}.

    Find what you scanned

    macOS + Windows

    The Scans tab shows everything from this session, newest first; select one to see it large. The Saved tab lists the files in your destination folder, also newest first, and lets you open a file, show it in Finder or File Explorer, or rotate a JPEG, PNG or TIFF in place.

    The Scans tab headed This session: 5 scans, newest first, shown as cards for three photo scans and two document scans, each with 300 dpi and its size in pixels.
    ScansThis session, newest first. Cropped to the tab's content. Public-domain scans loaded into the app.
    The Saved tab for the folder C:\Scans, showing seven JPG photos and one PDF with names like Scan 2026-10-19 2 1.jpg and Scan 2026-10-19 1.pdf, plus Show in Explorer and Refresh buttons.
    SavedThe files in your folder, with their names and sizes. Cropped to the tab's content. Public-domain scans loaded into the app, see the credits.

    The small things

    • Cancel means cancelCancel works during every busy step, from scanning to writing the PDF. On Windows this is tested to never leave a half-written file behind.
    • Plain messages“Load paper in the feeder, then scan again.” Jams, an open cover or a busy scanner are explained the same way.
    • Settings that survive updatesA setting the app can't read resets on its own; a damaged settings file is set aside, never overwritten.
    • Try it without a scannerThe Demo Scanner has a flatbed and a three-sheet document feeder, so every feature can be tried with nothing plugged in.
    • At home on Windows 11Windows only The Fluent look with Mica in light and dark; in a narrow window the sidebar folds to icons.
    • Light or dark, your choiceWindows only An Appearance menu: follow the system, Light or Dark. The Mac app follows the system setting.
    • Nothing lost on closeWindows only The app asks before closing while a scan is running or pages and photos are still unsaved.

    Scanners

    Which scanners work

    Lazy Scan uses the scanner support built into each system, so it needs no extra software from the scanner maker beyond the usual driver. Network scanners that speak AirScan (also called eSCL) need no driver at all.

    Scanner support on macOS and Windows
    ConnectionmacOSWindows
    USB scanner with a driver Any scanner with a macOS driver, through Apple's ImageCaptureCore. That includes the Epson Perfection V39 II. Scanners with a WIA driver, the standard Windows scanner driver. Plugging one in or out is noticed without restarting the app.Experimental: not yet tried on a physical scanner
    Network scanner (AirScan / eSCL) Found automatically over Bonjour, along with scanners shared from other Macs. Added by IP address or host name in a small settings file (see below). A busy scanner is retried for up to a minute, black & white works, and a cancelled job is removed from the scanner.Experimental: not yet tried on a physical scanner
    Scanners with only a TWAIN driver Not needed: the Mac uses its own scanner drivers. Yes, with 64-bit TWAIN drivers. The scanner maker's driver installs what TWAIN needs. You can also use the scanner's own settings window if you prefer it.Experimental: not yet tried on a physical scanner
    Flatbed and document feeder Both, as the scanner reports them. Both. Each scanner shows only the sources it really has, and a feeder batch runs over one connection using the feeder's own paper size.
    No scanner at all Demo Scanner, built in: flatbed and a three-sheet feeder. Demo Scanner, built in: flatbed and a three-sheet feeder. Fully checked on Windows 11.

    Adding a network scanner on Windows

    Until automatic discovery arrives, list your scanner's address in %APPDATA%\Lazy Scan\escl-hosts.json:

    escl-hosts.json
    ["192.168.1.50"]

    One entry per scanner

    A scanner you can reach two ways, say over USB and over the network, shows up once. On Windows, a “via” menu in the sidebar offers Automatic or each connection, and your choice is remembered for that scanner. The Mac picks by itself: USB first, then the network, then a scanner shared from another Mac.

    Roadmap

    What’s done, what’s next

    The work is planned as numbered milestones, built in order. Nothing in the planned list is in the app yet.

    Done

    1. M0Settings that survive updates. Presets and settings stay readable from one version to the next, and a damaged file is kept instead of overwritten. Both apps now have an automatic build and test run.
    2. M1More reliable feeder and network scanning. Each scanner shows only its real sources, feeder scans use the feeder's paper size, black & white works over the network, busy scanners are retried, an empty feeder gets a clear message, and pages are kept when a batch stops partway. The Demo Scanner gained a feeder.
    3. M2One entry per scanner. A scanner reachable several ways shows once. Windows lets you choose the connection; on the Mac the duplicates are merged automatically.
    4. M3TWAIN scanners on Windows, 64-bit drivers first, so scanners whose Windows driver offers only TWAIN show up too.

    Built and tested on Windows. The Mac side of these waits for its first automatic build, and the scanner connections still need a run on real hardware.

    In progress

    1. M4Network scanners found automatically, an “Add scanner by address” option and secure connections.

    Planned, in build order

    1. M5A start screen: pick the job and the app sets itself up.
    2. M6Smaller PDFs, from Best to Smallest.
    3. M7Share, email, open with, copy, and an automatic step after saving.
    4. M8Two-sided scanning and paper size, including two-sided on single-sided feeders.
    5. M9“Why isn't my scanner listed?” troubleshooter.
    6. M10Page clean-up and blank-page removal.
    7. M11Automatic crop and straighten for documents.
    8. M12ID cards, front and back on one page.
    9. M13Copy to a printer: scanner and printer as a copier.
    10. M14Text export as .txt or Word (.docx).
    11. M15Receipts: one clean file each, named by its date.
    12. M16Split a stack into documents by separator sheets, blank sheets or every few pages.
    13. M17Pages turned upright automatically.
    14. M18Books and magazines split into single pages.
    15. M19Archival PDF (PDF/A) with searchable text in any script.
    16. M20Password-protected PDFs.
    17. M21Add pages to an existing PDF.
    18. M22Later: very compact black & white PDFs, older 32-bit TWAIN drivers, barcode separator sheets, Word files with page images, softer spine shadows in book scans.

    Get it

    Build it from source

    Lazy Scan is coming to the App Store, the Mac App Store and the Microsoft Store. Until then, developers can build the Mac and Windows apps from the code on GitHub. Start by getting the code, then follow the steps for your system.

    Get the code
    git clone https://github.com/aytutuna/LazyScan.git
    cd LazyScan

    macOS

    • macOS 14 Sonoma or later
    • Xcode, or its command-line tools

    Run it straight from the source folder:

    Terminal · run directly
    swift run LazyScan

    Or build a double-clickable app, dist/Lazy Scan.app, and open it:

    Terminal · build an app
    ./scripts/make_app.sh
    open "dist/Lazy Scan.app"

    Run the tests with swift test. All commands run in the LazyScan folder.

    Windows

    • Windows 10 version 2004 (build 19041) or later, or Windows 11
    • The .NET 10 SDK, or Visual Studio 2026 (18.0 or later)

    Build and launch the app:

    PowerShell · run the app
    dotnet run --project windows\LazyScan.App

    Run the test suite, if you like:

    PowerShell · run the tests
    dotnet test windows\LazyScan.sln

    Both commands run in the LazyScan folder. No scanner handy? Pick Demo Scanner in the sidebar.

    Good to know before you build

    • There is no installer or signed app yet, on either system.
    • On Windows, the WIA and network scanner support follows the published standards and passes its tests, but hasn't been tried with a physical scanner yet. The Demo Scanner is fully checked.
    • The newest macOS changes were written without a Mac at hand. The project's automatic Mac build compiles and tests them once they are published.
    • Searchable PDFs on Windows need a Windows OCR language pack. The hidden text covers Western European letters only; others turn into “?” in the text layer, while the page image is unaffected.
    • The Windows Demo Scanner draws text-like bars instead of real letters, so trying text recognition on Windows needs a real scan.
    • Not in the app yet: two-sided scanning, paper-size choice, blank-page removal, document crop and straighten, sharing, printing and password-protected PDFs. All are on the roadmap.

    Image credits

    The scans in the pictures

    Every photo and document in the screenshots and demos is a real scan of an item in the public domain or free of known copyright restrictions. Each title links to the item's catalog page, and the rights are given as the item's catalog record states them; for the menu they come from its copy on Wikimedia Commons, linked in its row. For the photo layouts, each print was cut from its museum backdrop and laid on a simulated scanner bed; the menu page was cut from its archive backdrop and laid on the same bed.

    1. Photograph of a house surrounded by treesUnidentified photographer, 1925
      Smithsonian National Museum of African American History and Culture, 2011.36.61.2
      No known copyright restrictions (CC0)Screenshots, photo demo
    2. Smithsonian National Museum of African American History and Culture, 2021.13.9, gift of James M. Baxter
      Public domain (CC0)Screenshots, photo demo
    3. Smithsonian National Museum of African American History and Culture, 2018.43.20, gift of the Liljenquist Family
      No known copyright restrictions (CC0)Screenshots, photo demo
    4. Photograph of a house and yardDawson Kraft Shop, 1925
      Smithsonian National Museum of African American History and Culture, 2011.36.68.2
      No known copyright restrictions (CC0)Screenshots
    5. Smithsonian National Museum of African American History and Culture, 2014.37.36.18
      Public domain (CC0)Screenshots
    6. Smithsonian National Museum of African American History and Culture, 2011.36.82
      No known copyright restrictions (CC0)Screenshots
    7. Cabinet card of three young womenUnidentified photographer, around 1885
      Smithsonian National Museum of African American History and Culture, 2011.36.94
      Public domain (CC0)Screenshots, adjustment demo
    8. Letter from Clara Barton to Charles G. WashburnClara Barton, American National Red Cross, August 31, 1903
      U.S. National Archives, 23929446
      Use unrestrictedScreenshots, adjustment demo
    9. Menu, Chicago Oyster House and Restaurant (dinner)Chicago Oyster House and Restaurant, May 22, 1900
      New York Public Library, Buttolph Collection of Menus; copy on Wikimedia Commons
      Public domain, per Wikimedia CommonsScreenshots

    Support

    Something not working?

    Write to support@alazy.app. Say which app (iPhone, Mac or Windows) and its version, the scanner model if a scanner is involved, and what you did and what happened instead. A screenshot helps. Bugs and ideas can also go on GitHub.

    Read the privacy policy.