Skip to content

Print receipts from the web, straight to your thermal printer

NanoPrint is a free, lightweight app that connects your web app to the receipt printers of the computer. Each site asks for permission once, not on every receipt.

  • Windows · macOS · Linux
  • Free
  • Open source

Built for the counter

What a shop or a kitchen needs: receipts and orders that print fast, with no odd setup and no risk.

Cross-platform

The same web app prints the same way on Windows, macOS and Linux, with the printers you already have installed.

  • Windows 10 and 11
  • macOS 10.15 or later, Intel and Apple silicon
  • Ubuntu, Debian, Fedora and other distributions

Lightweight and free

An installer of a few megabytes, free and with no sign-up. It lives in the system tray and starts with the computer.

  • No cost, subscriptions or usage limits
  • No Java or other software needed
  • Installs without administrator rights on Windows

Secure, not annoying

No site prints without your permission. You give it once per site, and it does not ask again on every receipt.

  • Permission per site, revocable at any time
  • Accepts connections from this computer only
  • Never stores what is printed

How it works

  1. Install NanoPrint

    It sits in the system tray, next to the clock, and starts with the computer.

  2. Open your web app

    The first time a site wants to print, NanoPrint asks. You answer once: it does not ask on every receipt.

  3. Print

    The receipt or kitchen order goes straight to the printer, without the browser's print dialog.

Does your web app print receipts or kitchen orders?

Offer NanoPrint to your users: they install it for free, allow your site once, and your receipts go straight to their printer.

  • A few lines of JavaScript, with well-known libraries
  • If your app already uses qz-tray.js, it works unchanged
  • Free for you and your users, with no per-seat licenses
  • Your app can have any license: NanoPrint is a separate program
Developer guide
JavaScript
import qz from 'qz-tray';

await qz.websocket.connect();
const config = qz.configs.create('POS-58');
await qz.print(config, [{ type: 'raw', format: 'command', flavor: 'base64', data }]);

Supported printers

Thermal receipt and kitchen printers that understand ESC/POS, 58 or 80 mm wide, connected by USB or over the network and installed in the system. ESC/POS is the language of most receipt printers.

NanoPrint does not install drivers, so it needs no administrator rights. Virtual printers (PDF, XPS, fax) are not offered to sites.

Do I need a driver?

Windows
The printer must appear in Settings → Printers & scanners. The manufacturer's driver works, and so does the "Generic / Text Only" driver that comes with Windows: NanoPrint sends the commands as they are.
macOS
Add it in System Settings → Printers & Scanners with any driver. NanoPrint sends raw data, so the driver does not alter it.
Linux
Add it in the printer settings (CUPS) with the manufacturer's driver or as a generic printer. NanoPrint prints without filters, in raw mode.

Download NanoPrint

Free, no sign-up. Pick your system.

Windows

Requirements:Windows 10 or 11, 64-bit

Installation

  1. Open the downloaded file.
  2. If "Windows protected your PC" appears, click "More info", then "Run anyway". The warning shows because the installer does not have a commercial digital signature yet.
  3. Follow the wizard. It does not ask for administrator rights.

macOS

Requirements:macOS 10.15 or later, Intel and Apple silicon

Installation

  1. Open the .dmg file and drag NanoPrint to Applications.
  2. The first time, macOS says it cannot verify the developer. Open System Settings → Privacy & Security and click "Open Anyway".
  3. Confirm with your password. From then on it opens directly.

After installing

NanoPrint welcomes you and offers to enable secure (https) sites in one click. Then it stays in the system tray, next to the clock.

Previous versions and what's new in each
Verify the installer

Every installer is built on GitHub from the published source and carries a provenance attestation. GitHub's gh tool checks it: gh attestation verify NanoPrint_x64-setup.exe --repo nanofactura/nanoprint

Open source

NanoPrint is free software under the GPL-3.0 license. All of its code is on GitHub: review it, report issues or contribute.

View on GitHub

Frequently asked questions

Is NanoPrint free?

Yes, completely: for personal and commercial use, with no sign-up, subscriptions or limits. It is free software under the GPL-3.0 license.

Will it ask for permission every time I print?

No. NanoPrint asks once per site. For secure (https) sites the answer is kept; for sites without a padlock (http) it asks again when NanoPrint restarts, because another computer on the network could pose as them.

Which printers work?

ESC/POS thermal receipt and kitchen printers, 58 or 80 mm, installed in the system and connected by USB or over the network. NanoPrint's panel prints a test page and chooses which printers sites can see.

Do I need a special driver?

No. The printer must be installed in the operating system, with the manufacturer's driver or a generic one. NanoPrint sends the commands as they are.

Can a web page print without me noticing?

No. Every site must ask for permission, and you decide. NanoPrint only accepts connections from this computer, and permissions can be revoked from its panel.

Do I have to keep NanoPrint open?

NanoPrint starts with the computer and stays in the system tray, out of the way. If you quit it, sites that integrate it can open it again: your browser asks you first.

Does NanoPrint store what I print?

No. Its history keeps the date, site, printer and result of each job for 30 days, never the content. NanoPrint sends no data to the internet.

Why do Windows and macOS warn me when installing?

Because the installer does not have a commercial digital signature yet, as is common for new open-source projects. You can verify that each installer was built from the source published on GitHub.

Does it work with apps that print through QZ Tray today?

Usually yes: NanoPrint understands the qz-tray.js protocol for printing receipts, so those apps tend to work unchanged. QZ Tray's features beyond receipt printing are not included.

Can I build NanoPrint into my commercial app?

Yes. Your app only talks to NanoPrint, which is a separate program, so it can have any license. The developer page explains how to integrate it.

Does it work over Remote Desktop?

NanoPrint prints to the printers installed on the computer it runs on. Printers redirected by Remote Desktop through "Easy Print" cannot receive receipts: install the printer's driver on the remote computer and turn off Easy Print.

Can I print from a phone or a tablet?

Not yet. NanoPrint installs on Windows, macOS and Linux computers and only accepts connections from that same computer. Printing from other devices on the local network, each one approved by you, is planned for a future version.