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
View Sharp full-resolution zoom up to 6400% · next/previous images decoded ahead · minimap · pixel grid · brightness, contrast and gamma · thumbnails · dockable panels you can float onto a second monitor, with saved layouts · Ctrl+K command palette
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 · ready-to-train YOLO (images/, labels/, data.yaml) · 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: point, line, rotated-box, keypoint and brush-mask tools, per-object attributes, and VOC, YOLO-seg and YOLO-OBB export. 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.2.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.2.0
File Size Uploaded Provenance
lannotex-0.2.0.tar.gz 109.3 kB With provenance Details

Built distribution (wheel)

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

Total release size: 173.3 kB

Release files / lannotex-0.2.0.tar.gz

Download URL lannotex-0.2.0.tar.gz
Size 109.3 kB
Tags Source
SHA-256 checksum
How to use checksums
dbf65608bfacae1ad88126b0f2fb4462c9230e7652f260478d82d0f3b6576341
BLAKE2b-256 checksum
How to use checksums
d285ee618faa85f3976c950d0c76e683ee4f17bca4d40fe2ad812f7a19b5fd77
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.2.0-py3-none-any.whl

Download URL lannotex-0.2.0-py3-none-any.whl
Size 63.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f2df2a544a056a53e80217c09539b8c3644c6fa86bec514074b765333609059
BLAKE2b-256 checksum
How to use checksums
12ec89488bc9d51e277860529a16df2773bccbfcd341870c832eb87732343e7a
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.2.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.2.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