Skip to main content

lights-off

lights-off is a lightweight, keyboard-driven, accessible Mastodon client for Windows and macOS, built with wxPython. It is a fork of Quinter, a Twitter client, converted for the Mastodon network.

Every action is reachable by keyboard shortcut. All content is routed through the platform screen reader (NVDA/JAWS/SAPI on Windows, VoiceOver on macOS) so blind and low-vision users can browse, post, and manage their account without touching the mouse.

Install

pipx install lights-off

Requires Python 3.12+. See the installation docs for platform-specific steps.

Run

lights-off

On first launch you will be prompted for your Mastodon instance URL (e.g. https://mastodon.social) and will complete a one-time OAuth browser flow.

Documentation

Full documentation is at https://lights-off.readthedocs.io/.

Development

git clone https://github.com/matthewdeanmartin/lights-off
cd lights-off
uv sync
uv run lights-off

Run tests across all supported Python versions:

tox

Contributing

Pull requests welcome. For large feature additions, open an issue first.

Licenses

  • Quinter - no declared license, per Mastodon conversation with Quinn, forking and MIT is okay.
  • SAAPI65.dll - (C) All rights reserved
  • nvdaControllerClient64.dll LGPL
  • GPL-2.0-only. Tolk.py is LGPLv3 (copyright Davy Kager).
  • .ogg soundfiles - unknown license
  • keyboard_handler - vendorized, MIT, copyright Christopher Toth

Metadata

Release files for lights-off 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 lights-off 0.1.0
File Size Uploaded
lights_off-0.1.0.tar.gz 368.4 kB Details

Built distribution (wheel)

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

Total release size: 805.9 kB

Release files / lights_off-0.1.0.tar.gz

Download URL lights_off-0.1.0.tar.gz
Size 368.4 kB
Tags Source
SHA-256 checksum
How to use checksums
83d51808b01fd1fe53de611843589dfeebd3d433d2c53c88af3ec911077f342c
BLAKE2b-256 checksum
How to use checksums
5616272f478faebb1b3f45b9ca436124e65354a386b249c1e5839090f20baaf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 May 9, 2026.

Transparency log

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

Download URL lights_off-0.1.0-py3-none-any.whl
Size 437.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de1ce5d605d1b851dd465b6cff678dd1824bf9fa8613442fb2f68c5a3deb07b0
BLAKE2b-256 checksum
How to use checksums
d4cad74cb7b04d1388c1c85ebf9afd9705d13d9e74d7c574a29fdc7ce03ff786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 May 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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