MCPcopy Index your code
hub / github.com/MultiMote/niimblue

github.com/MultiMote/niimblue @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
182 symbols 392 edges 34 files 32 documented · 18%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

logo

NIIMBOT printers webui

Design and print labels right from your browser

FAQ | Discord | Telegram | NIIMBOT Community Wiki

NiimBlueLib is used for communication

Deployments:

niim.blue de main | dev.niim.blue de dev | 2.niim.blue ru main

Support project:

Boosty | Lava (less fees)

Features

  • Privacy first! This application works completely offline (at browser side) and does not send any data (except for downloading application files and importing ZPL labels). Label data is stored in your browser.
  • Support for both Bluetooth and USB connections.
  • Rich label editor. Label saving, import/export.
  • Print preview. You can see how your label will look like after post-processing. Several post-processing algorithms are available.
  • Standalone apps:
    • Android (Capacitor based)
    • Windows (Tauri based, uses Edge backed)
  • Most complete implementation of NIIMBOT protocol.

You can see more complete list of implemented and planned features on the Wiki.

Demonstration video:

demo video

Supported printers

There is no exact list of supported models in this project. This project aims to support the maximum number of models.

You can check a list of tested models here. If you own other model, please write a comment.

If your (new) printer model does not print, please make a packet dump of print with official application.

[!NOTE] If you have printing problems, try different print task versions in print preview dialog. Make if default by pressing "Lock" button.

Supported browsers

Your browser must support Web Bluetooth API: supported browsers.

For serial communication: supported browsers.

Modern Chrome-based browsers should usually work.

In some systems you need to enable Chrome Web Bluetooth or Experimental Web Platform Features (navigate to chrome://flags).

Images

Images may be outdated.

ui

⬇ More images ⬇

Label properties:

labels

Save/load menu:

save_load

Print preview dialog:

print_preview

Post-processing:

dither

Templating:

templating

Dynamic data:

batch

In real life:

printed_b1

printed_d110

Development

Launching development server

Skip steps you have done.

  1. Install git

  2. Install nodejs

  3. Clone repository

    bash git clone https://github.com/MultiMote/niimblue.git

  4. Install dependencies

    bash npm i

  5. Run dev server

    Check code and run:

    bash npm run dev-check

    Or just run:

    bash npm run dev

Deployment

Here are some options. HTTPS is required for non-localhost deployments.

Serving static files

To get static files run npm run build (result builds to dist) or download niimblue-dist.zip from Releases.

Using Docker Image

Follow the instructions in the wiki.

IDE setup

Project uses path aliases.

VSCode (settings.json):

{
  "typescript.preferences.importModuleSpecifier": "non-relative",
  "javascript.preferences.importModuleSpecifier": "non-relative"
}

Translations (click to contribute)

translation

Extension points exported contracts — how you extend this code

QRCodeProps (Interface)
(no doc) [1 implementers]
src/fabric-object/qrcode.ts
UniqueTextboxExtProps (Interface)
(no doc) [1 implementers]
src/fabric-object/textbox-ext.ts
BarcodeProps (Interface)
(no doc) [1 implementers]
src/fabric-object/barcode.ts
ArUcoMarkerProps (Interface)
(no doc) [1 implementers]
src/fabric-object/aruco.ts
UniqueQRCodeProps (Interface)
(no doc)
src/fabric-object/qrcode.ts

Core symbols most depended-on inside this repo

push
called by 34
src/utils/undo_redo.ts
loadAndValidateObject
called by 10
src/utils/persistence.ts
validateAndSaveObject
called by 10
src/utils/persistence.ts
error
called by 9
src/utils/toasts.ts
renderError
called by 6
src/utils/canvas_utils.ts
timestamp
called by 6
src/utils/file_utils.ts
virtualZoom
called by 5
src/fabric-object/custom_canvas.ts
getLabelBounds
called by 5
src/fabric-object/custom_canvas.ts

Shape

Method 120
Class 25
Function 24
Interface 13

Languages

TypeScript98%
Rust2%
Java1%

Modules by API surface

src/utils/file_utils.ts28 symbols
src/utils/persistence.ts26 symbols
src/fabric-object/custom_canvas.ts22 symbols
src/utils/label_designer_object_helper.ts16 symbols
src/fabric-object/textbox-ext.ts12 symbols
src/fabric-object/barcode.ts12 symbols
src/fabric-object/aruco.ts11 symbols
src/fabric-object/qrcode.ts9 symbols
src/utils/undo_redo.ts6 symbols
src/utils/label_designer_utils.ts6 symbols
src/utils/canvas_utils.ts6 symbols
src/utils/toasts.ts5 symbols

For agents

$ claude mcp add niimblue \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page