Skip to main content

nvda-addon-kit

Scaffold, build, translate and install NVDA add-ons from a single addon.toml.

This is the successor to the SCons-based addonTemplate. Instead of forking a template repository and editing buildVars.py, you install a tool:

pip install nvda-addon-kit
nvaddon init myAddon
cd myAddon
nvaddon build

Commands

Command Does
nvaddon init [dir] Create a new add-on, interactively or from flags
nvaddon build Produce <name>-<version>.nvda-addon
nvaddon install Build, then hand the add-on to NVDA to install
nvaddon install --link Link the working tree into NVDA's add-ons directory for development
nvaddon pot Generate <name>.pot from Python sources and addon.toml
nvaddon locale-add <lang>… Start a new translation
nvaddon locale-update Merge new messages into every existing translation
nvaddon locale-compile Compile .po files and translated manifests
nvaddon check Validate addon.toml against add-on store rules
nvaddon clean Remove generated build outputs
nvaddon migrate Convert an existing buildVars.py to addon.toml
nvaddon release <version> Set version and channel, commit, tag <version>-<channel>, and push
nvaddon crowdin Sync translations with Crowdin

Run nvaddon <command> --help for the flags each one accepts.

Releasing

nvaddon release 1.2.0 --channel beta

This writes the version and channel into addon.toml, commits, tags 1.2.0-beta, and pushes the commit and tag with git push --atomic so the remote takes both or neither. If anything fails the working tree is restored to where it started, leaving no half-made release behind. Use --no-push to stop before publishing.

addon.toml

[addon]
name = "myAddon"
# Translators: Summary/title for this add-on, shown on install and in the add-on store.
summary = "Add-on user visible name"
# Translators: Long description shown for this add-on in the add-on store.
description = """Description for the add-on.
It can span multiple lines."""
version = "1.0.0"
author = "Name <name@domain.com>"
minimumNVDAVersion = "2024.1"
lastTestedNVDAVersion = "2025.3"

[build]
pythonSources = ["addon/globalPlugins/**/*.py"]

[l10n]
baseLanguage = "en"

The comment above a translatable key becomes that string's translator note in the generated .pot, exactly as # Translators: comments in buildVars.py did:

#. Translators: Summary/title for this add-on, shown on install and in the add-on store.
#: addon.toml:3
msgid "Add-on user visible name"
msgstr ""

Migrating an existing add-on

cd myExistingAddon
pip install nvda-addon-kit
nvaddon migrate
nvaddon check
nvaddon build

migrate leaves buildVars.py, sconstruct and site_scons/ in place; delete them once you are satisfied the build output matches.

Licence

GNU General Public License version 2 or later. See COPYING.txt.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nvda_addon_kit-0.1.0.tar.gz (54.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nvda_addon_kit-0.1.0-py3-none-any.whl (75.1 kB view details)

Uploaded Python 3

File details

Details for the file nvda_addon_kit-0.1.0.tar.gz.

File metadata

  • Download URL: nvda_addon_kit-0.1.0.tar.gz
  • Upload date:
  • Size: 54.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nvda_addon_kit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c01cb1021c9a50b9a2540350293b9f298140f1f0cc1f5070bcdd87f3d97d97a8
MD5 573047be112f81f4a2b0f270911a4f70
BLAKE2b-256 6dfcd9b7914990b9c8924c9c3b5c917acd9e7349bc939f382ea5535c6c97e4ac

See more details on using hashes here.

File details

Details for the file nvda_addon_kit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nvda_addon_kit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 75.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nvda_addon_kit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cadef89ebe795194e37d04599f386ece15912e0456ec89e831d6c48a08e50034
MD5 8f6a939fb642775f8639a0840954ace6
BLAKE2b-256 11efa9bba00f54b6593f711bf70537e2cba16c69178b50f157114fcb501de05f

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.0 This release

2 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