Skip to main content
Lannotex logo

Lannotex

Fast, offline-first image annotation for bounding boxes, polygons, and image classes.
Free and MIT-licensed. LabelMe-compatible. Your images never leave your machine.

CI Docs Python Platforms License: MIT

Documentation · Quick start · Coming from LabelMe · Releases

Drawing two boxes and a polygon on a cat photo in Lannotex, then saving and moving to the next image

Why Lannotex?

  • Everything you need is free. YOLO, COCO, Labelme and CSV export, standalone desktop builds, and team review are all free and open source. No license keys, no Pro tier.
  • Built for real datasets. A project is one SQLite file instead of thousands of JSON files. The image list is virtualized, so its memory use stays flat; it was benchmarked at 100,000 records. Your source images are never moved or modified.
  • You can't lose work. Every edit is written to a recovery draft, saves are transactional, and broken geometry (self-intersecting polygons, zero-size boxes) is rejected before it reaches your dataset.
  • Private by default. No account, no telemetry, no cloud. The app makes network requests only if you choose to host or join a team on your own network.

Install

uv tool install lannotex   # recommended, isolated install
lannotex
pip, pipx, standalone builds, and source
pipx install lannotex
# or, inside a virtual environment
python -m pip install lannotex

Standalone builds for Windows, macOS, and Linux are attached to every release. They bundle Python and Qt, so nothing else is needed.

From source:

git clone https://github.com/Lourdhu02/Lannotex.git && cd Lannotex
uv venv && uv pip install -e ".[dev]"
lannotex

Lannotex supports Python 3.11–3.14 on Windows, macOS, and Linux. See the installation guide for details.

Your first dataset in 60 seconds

  1. Create a project and pick a pipeline: Classification, Object detection, Segmentation, or Combined. Each one shows only the tools it needs.
  2. Import a folder (Ctrl+I). JPEG, PNG and WebP files are checked and referenced in place, not copied.
  3. Add labels, then draw: B for boxes, P for polygons (Enter finishes), V to select and edit.
  4. Save & next with Ctrl+Enter. Autosave and recovery drafts run in the background anyway.
  5. Export to the format your training code expects.

Every shortcut can be remapped. See the annotating guide for the full list.

Lannotex workspace in light theme with a polygon and a box on a coffee cup Lannotex workspace in dark theme with boxes on an astronaut photo
Light theme · polygon vertex editing Dark theme · object detection

Features

Annotate Bounding boxes · polygons with vertex drag, insert, and delete · multi-label image classes · "no target" negatives · 100-step undo/redo · zoom under the pointer, pan, arrow-key nudging · focus mode · light and dark themes
Stay safe SQLite projects with versioned migrations · recovery drafts and 700 ms autosave · transactional saves · geometry validation · backup and restore · relinking for moved images · EXIF orientation handled
Scale Virtualized image list (at most 1,024 records in memory) · background import and decoding · 96 MB preview cache · coordinates normalized to the original resolution
Export Labelme JSON · YOLO · COCO JSON · classification CSV · lossless native JSONL · each export reports anything it skipped
Automate lannotex export and lannotex analyze run headless in CI, with no display needed
Collaborate Optional LAN host with per-reviewer tokens, background sync, revision conflicts you resolve explicitly, revocation, and an audit history

Lannotex vs. LabelMe

LabelMe is a great tool and Lannotex reads and writes its JSON format, so you can switch without converting anything.

Lannotex LabelMe
License MIT GPL-3.0
Standalone desktop app Free Paid license
YOLO export ✅ Free Pro tier
COCO export ✅ ✅
One database per dataset ✅ One JSON per image
Crash recovery and transactional saves ✅ Optional autosave
Team review with conflict handling ✅ —
Headless export and validation CLI ✅ Example scripts
AI-assisted annotation (SAM) Not yet ✅
Circles, lines, points, rotated boxes Not yet ✅

Based on LabelMe's published features and pricing as of October 2026. The full comparison and migration guide covers which LabelMe shapes import today.

Command line

lannotex new ./dataset                                  # create a project
lannotex analyze ./dataset                              # JSON health report: counts, problems, drafts
lannotex export ./dataset ./out --format "COCO JSON"    # Labelme JSON | YOLO boxes | COCO JSON | Classification CSV | Native JSONL
lannotex invite ./dataset "Alice"                       # print a one-time reviewer token
lannotex host ./dataset --bind 0.0.0.0 --port 8765      # share a project on your LAN (TLS via --cert/--key)

analyze writes clean JSON to stdout, so it can gate a training pipeline. See the CLI reference.

Privacy

Solo projects make no network requests. Team mode connects only to the host address you enter, reviewer tokens are kept in memory on clients, and the host stores only token hashes. There is no telemetry, no external AI service, and no automatic upload. Read the team guide for LAN and TLS setup.

Roadmap

Next up: a ready-to-train YOLO layout (images/, labels/, data.yaml), more LabelMe shape types, VOC and YOLO-seg export, and number-key label selection. See the roadmap and the measured performance.

Contributing

Bug reports, ideas, and pull requests are welcome. Start with CONTRIBUTING.md, and please follow the Code of Conduct. Report security issues privately, as described in SECURITY.md.

If Lannotex saves you time, a ⭐ helps other people find it.

License

MIT © 2026 Lourdhu Raju. Third-party licenses are listed in THIRD_PARTY_NOTICES.md. Demo images are public-domain and CC0 samples from scikit-image.

Metadata

Release files for lannotex 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lannotex 0.1.0
File Size Uploaded Provenance
lannotex-0.1.0.tar.gz 92.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for lannotex 0.1.0
File Interpreter ABI Platform
lannotex-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 144.0 kB

Release files / lannotex-0.1.0.tar.gz

Download URL lannotex-0.1.0.tar.gz
Size 92.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fccb09a051fc77330da0bf6d851ee3e6262bbb37302f9acd4753ce578686da4e
BLAKE2b-256 checksum
How to use checksums
cdb6da0932366633d557a01292a4a4ddde9f645ca0df3b8d605b2561d884849f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / lannotex-0.1.0-py3-none-any.whl

Download URL lannotex-0.1.0-py3-none-any.whl
Size 51.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a3abc64120f683bef7ef76d6c55f1829d976b86956949ad6f95afa588268cbfe
BLAKE2b-256 checksum
How to use checksums
1d134cf6019b6cb7c689d5ddbc9718fab4774447302aca371385d15c275b2179
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Security for lannotex 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for lannotex-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page