> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/nvaccess/nvda/llms.txt
> Use this file to discover all available pages before exploring further.

# Add-ons

> Extending NVDA functionality with community-developed add-ons

NVDA add-ons extend the screen reader's functionality with additional features, support for specific applications, language enhancements, and more. The NVDA community has created hundreds of add-ons to customize and enhance the user experience.

## Overview

Add-ons are packages that extend NVDA's capabilities beyond its core features. They can:

* Add support for specific applications
* Enhance existing functionality
* Provide new speech synthesizers or braille drivers
* Add language support and translations
* Implement custom navigation commands
* Integrate with external services
* Provide development tools

<Note>
  Add-ons are created by the NVDA community, not by NV Access (NVDA's primary developer). Always review add-ons before installing to ensure they meet your needs and come from trusted sources.
</Note>

## NVDA Add-on Store

The Add-on Store is the official distribution platform for NVDA add-ons, introduced to provide safe, easy add-on discovery and installation.

### Accessing the Add-on Store

1. Open NVDA menu → Tools → Add-on Store
2. Or press `NVDA+N`, then `T`, then `A`

### Add-on Store Features

<CardGroup cols={2}>
  <Card title="Browse Add-ons" icon="store">
    Discover available add-ons with descriptions, ratings, and download counts
  </Card>

  <Card title="Search" icon="magnifying-glass">
    Find specific add-ons by name, author, or functionality
  </Card>

  <Card title="One-Click Install" icon="download">
    Install add-ons directly without manual file management
  </Card>

  <Card title="Automatic Updates" icon="arrows-rotate">
    Get notified of and install add-on updates easily
  </Card>

  <Card title="Reviews" icon="star">
    Read community reviews and ratings before installing
  </Card>

  <Card title="Categories" icon="folder">
    Browse by category (Applications, Languages, Tools, etc.)
  </Card>
</CardGroup>

### Installing from Add-on Store

1. Open Add-on Store
2. Browse or search for desired add-on
3. Select the add-on to view details
4. Click "Install"
5. Restart NVDA when prompted

<Note type="info">
  Most add-ons require restarting NVDA before they become active. NVDA will prompt you to restart after installation.
</Note>

## Manual Add-on Installation

You can also install add-ons manually from `.nvda-addon` files.

### Installing Add-on Files

1. Download the `.nvda-addon` file
2. Open the file (press Enter on it)
3. NVDA will display add-on information
4. Click "Install" to proceed
5. Restart NVDA when prompted

### Installation Locations

Add-ons can be installed in two locations:

<Accordion title="User Add-ons Directory">
  Location: `%APPDATA%\nvda\addons\`

  * User-specific installation
  * Persists across NVDA updates
  * Recommended for most users
  * Easily managed through Add-on Store
</Accordion>

<Accordion title="System Add-ons Directory">
  Location: `{NVDA_install}\systemConfig\addons\`

  * System-wide installation (all users)
  * Requires administrator privileges
  * Used for organizational deployments
  * Managed by IT administrators
</Accordion>

<Note type="warning">
  Only install add-ons from trusted sources. Malicious add-ons could compromise your system security. The Add-on Store reviews all submissions for basic safety.
</Note>

## Popular Add-on Categories

### Application Support

Add-ons that improve NVDA's support for specific applications:

* **Office Applications**: Enhanced Microsoft Office, LibreOffice support
* **Web Browsers**: Advanced navigation for Chrome, Firefox, Edge
* **Development Tools**: IDE support (VS Code, Eclipse, Visual Studio)
* **Media Players**: Accessibility for Spotify, VLC, Foobar2000
* **Communication**: Enhanced Skype, Teams, Discord support
* **Email Clients**: Advanced Outlook, Thunderbird features

### Language and Translation

Add-ons providing language support:

* **Input Methods**: Support for Asian language input
* **Braille Tables**: Additional braille translation tables
* **Speech Dictionaries**: Language-specific pronunciation
* **Localization**: Interface translations
* **OCR**: Optical character recognition in various languages

### Navigation and Productivity

* **Enhanced Navigation**: Advanced object navigation commands
* **Quick Keys**: Custom keyboard shortcuts
* **Clipboard Tools**: Enhanced clipboard management
* **Window Management**: Virtual desktop and window switching
* **Time and Date**: Enhanced time/date announcement

### Development Tools

* **Developer Toolkit**: Inspect accessible objects and properties
* **Remote Access**: Control NVDA remotely
* **Testing Tools**: Accessibility testing utilities
* **Logging**: Enhanced debug logging
* **API Tools**: Add-on development helpers

### Synthesizers and Braille

* **Speech Synthesizers**: Additional TTS engines
* **Braille Drivers**: Support for additional displays
* **Braille Enhancements**: Advanced braille features
* **Voice Tuning**: Enhanced voice control

## Managing Add-ons

### Installed Add-ons Manager

View and manage installed add-ons:

1. NVDA menu → Tools → Manage Add-ons
2. View list of installed add-ons
3. Select add-on to see details
4. Enable, disable, or remove add-ons

### Add-on Actions

<Accordion title="Disable Add-on">
  Temporarily disable without uninstalling:

  1. Open Manage Add-ons
  2. Select add-on
  3. Click "Disable"
  4. Restart NVDA

  Disabled add-ons remain installed but inactive.
</Accordion>

<Accordion title="Enable Add-on">
  Re-enable a disabled add-on:

  1. Open Manage Add-ons
  2. Select disabled add-on
  3. Click "Enable"
  4. Restart NVDA
</Accordion>

<Accordion title="Remove Add-on">
  Uninstall an add-on:

  1. Open Manage Add-ons
  2. Select add-on to remove
  3. Click "Remove"
  4. Confirm removal
  5. Restart NVDA
</Accordion>

<Accordion title="Update Add-on">
  Check for and install updates:

  1. Open Add-on Store
  2. Select "Updatable" tab
  3. View available updates
  4. Click "Update" for specific add-ons
  5. Or "Update All" for all available updates
  6. Restart NVDA
</Accordion>

## Add-on Compatibility

### Version Compatibility

Add-ons specify compatible NVDA versions:

* **Minimum Version**: Oldest NVDA version supported
* **Maximum Version**: Newest tested NVDA version
* **API Version**: NVDA API compatibility level

<Note type="warning">
  NVDA may disable add-ons that aren't compatible with your version. Check the Add-on Store or add-on website for updated versions.
</Note>

### Incompatible Add-ons

When NVDA updates, some add-ons may become incompatible:

1. NVDA will warn about incompatible add-ons
2. Choose to disable or remove them
3. Check Add-on Store for updates
4. Contact add-on author if updates aren't available

### Testing Compatibility Override

For advanced users testing add-ons:

1. NVDA menu → Tools → Manage Add-ons
2. Select incompatible add-on
3. Choose "Enable anyway" (if available)
4. Use with caution - may cause instability

<Note type="warning">
  Enabling incompatible add-ons may cause NVDA to crash or behave unexpectedly. Only do this for testing purposes.
</Note>

## Developing NVDA Add-ons

Developers can create custom add-ons to extend NVDA's functionality.

### Getting Started

Key resources for add-on development:

* **[NVDA Developer Guide](https://download.nvaccess.org/documentation/developerGuide.html)**: Official API documentation
* **[Add-on Template](https://github.com/nvaccess/AddonTemplate)**: Starter template for new add-ons
* **[NVDA Add-on Development Guide](https://github.com/nvdaaddons/DevGuide/wiki)**: Community guide
* **[NVDA API Mailing List](https://groups.google.com/a/nvaccess.org/g/nvda-api)**: Developer discussion

### Add-on Structure

NVDA add-ons follow a specific directory structure:

```
myAddon/
├── addon/
│   ├── globalPlugins/       # Global plugins (always active)
│   ├── appModules/          # Application-specific modules
│   ├── synthDrivers/        # Speech synthesizer drivers
│   ├── brailleDisplayDrivers/ # Braille display drivers
│   ├── locale/              # Translations
│   └── doc/                 # Documentation
├── manifest.ini             # Add-on metadata
└── readme.md                # Add-on description
```

### Manifest File

The `manifest.ini` defines add-on metadata:

```ini theme={null}
name = myAddon
summary = My NVDA Add-on
description = Detailed description of functionality
author = Your Name <email@example.com>
version = 1.0.0
minimumNVDAVersion = 2023.1.0
lastTestedNVDAVersion = 2024.1.0
url = https://github.com/yourname/myaddon
```

### Plugin Types

<Accordion title="Global Plugins">
  Loaded when NVDA starts, active in all applications:

  * Add universal commands
  * Monitor system-wide events
  * Provide global functionality
  * Independent of specific applications

  Location: `addon/globalPlugins/myPlugin.py`
</Accordion>

<Accordion title="App Modules">
  Application-specific enhancements:

  * Improve support for specific programs
  * Add custom keyboard commands
  * Handle application-specific events
  * Activated only when specific app has focus

  Location: `addon/appModules/appname.py`
</Accordion>

<Accordion title="Synthesizer Drivers">
  Speech synthesizer implementations:

  * Interface with TTS engines
  * Provide voice output
  * Support speech parameters
  * Implement SynthDriver API

  Location: `addon/synthDrivers/mysynth.py`
</Accordion>

<Accordion title="Braille Display Drivers">
  Braille display support:

  * Communicate with braille hardware
  * Handle braille input
  * Implement display protocol
  * Extend braille support

  Location: `addon/brailleDisplayDrivers/mydisplay.py`
</Accordion>

### Building Add-ons

Use the [Add-on Template](https://github.com/nvaccess/AddonTemplate) to build add-ons:

```bash theme={null}
# Clone template
git clone https://github.com/nvaccess/AddonTemplate.git

# Install dependencies
pip install -r requirements.txt

# Build add-on
scons

# Result: myAddon-1.0.0.nvda-addon
```

The build process:

1. Validates manifest
2. Compiles translations
3. Packages files into `.nvda-addon` archive
4. Creates distribution-ready package

### Testing Add-ons

Test add-ons during development:

1. **Scratchpad Directory**: Place add-on in `scratchpad/addons/` for testing
2. **Developer Mode**: Enable NVDA log level to "Debug"
3. **Python Console**: Use NVDA's Python console for debugging (`NVDA+Control+Z`)
4. **Reload Plugins**: Press `NVDA+Control+F3` to reload plugins without restarting

<Note type="info">
  The Python console allows you to inspect NVDA's internal state, test API calls, and debug add-on code interactively.
</Note>

## Submitting to Add-on Store

To make your add-on available to all NVDA users:

### Submission Process

1. **Prepare Add-on**:
   * Complete development and testing
   * Write comprehensive documentation
   * Include translations if possible
   * Ensure compatibility with latest NVDA

2. **Submit to Store**:
   * Follow [Submission Guide](https://github.com/nvaccess/addon-datastore/blob/master/docs/submitters/submissionGuide.md)
   * Create GitHub repository for add-on
   * Submit metadata to add-on datastore
   * Await review by NVDA community

3. **Review Process**:
   * Community reviews code and functionality
   * Basic security and compatibility checks
   * Feedback provided for improvements
   * Approval or requested changes

4. **Publication**:
   * Approved add-ons appear in Add-on Store
   * Automatic updates through store
   * User reviews and ratings
   * Download statistics

### Submission Requirements

* **Open Source**: Add-on code must be publicly available
* **License**: Compatible with NVDA's GPL license
* **Documentation**: User-facing documentation required
* **Manifest**: Complete and accurate metadata
* **Testing**: Compatibility with specified NVDA versions
* **Security**: No malicious code or security vulnerabilities

<Note>
  The add-on store submission process helps ensure quality and safety, but community review is not a guarantee of perfection. Users should still exercise judgment when installing add-ons.
</Note>

## Community Resources

### Communication Channels

<CardGroup cols={2}>
  <Card title="NVDA Add-ons List" icon="envelope">
    Mailing list for add-on users and developers
    [groups.io/g/nvda-addons](https://groups.io/g/nvda-addons)
  </Card>

  <Card title="NVDA API List" icon="code">
    Official developer mailing list
    [NVDA API](https://groups.google.com/a/nvaccess.org/g/nvda-api)
  </Card>

  <Card title="GitHub Discussions" icon="github">
    Official NVDA discussions
    [GitHub](https://github.com/nvaccess/nvda/discussions)
  </Card>

  <Card title="Community GitHub" icon="users">
    Community coordination
    [nvdaaddons](https://github.com/nvdaaddons)
  </Card>
</CardGroup>

### Additional Resources

* **[Add-on Store Website](https://addonstore.nvaccess.org/)**: Browse add-ons online
* **[NVDA Add-on Development Guide](https://github.com/nvdaaddons/DevGuide/wiki)**: Comprehensive development guide
* **[NVDA Developer Guide](https://download.nvaccess.org/documentation/developerGuide.html)**: Official API documentation
* **[NVDA GitHub Wiki](https://github.com/nvaccess/nvda/wiki)**: Additional guides and documentation

## Best Practices

### For Users

* Install only add-ons you need
* Keep add-ons updated
* Review add-on descriptions and ratings
* Disable add-ons if experiencing issues
* Provide feedback to developers
* Report bugs through proper channels

### For Developers

* Follow NVDA coding standards
* Maintain backward compatibility when possible
* Document all features thoroughly
* Respond to user feedback
* Keep add-ons updated with NVDA releases
* Use version control (Git)
* Write comprehensive changelogs
* Provide multi-language support when feasible

## Troubleshooting Add-ons

<Accordion title="Add-on Won't Install">
  * Verify `.nvda-addon` file isn't corrupted
  * Check NVDA version compatibility
  * Ensure sufficient disk space
  * Try restarting NVDA with add-ons disabled
  * Check NVDA log for error messages
</Accordion>

<Accordion title="Add-on Causes Crashes">
  * Restart NVDA with add-ons disabled (`NVDA+Control+F3` at startup)
  * Disable suspect add-on in Manage Add-ons
  * Check for add-on updates
  * Report issue to add-on developer
  * Check NVDA log file for error details
</Accordion>

<Accordion title="Add-on Not Working">
  * Verify add-on is enabled
  * Check if application is supported
  * Ensure compatible NVDA version
  * Review add-on documentation
  * Look for conflicting add-ons
</Accordion>

<Accordion title="Update Fails">
  * Check internet connection
  * Try manual download and installation
  * Clear NVDA cache (restart NVDA)
  * Temporarily disable antivirus
  * Check Add-on Store connectivity
</Accordion>

## Related Topics

* [Speech Synthesis](/features/speech-synthesis) - Audio output configuration
* [Braille Displays](/features/braille-displays) - Tactile output devices
* [Browse Mode](/features/browse-mode) - Document navigation
* [Vision Enhancements](/features/vision-enhancements) - Visual highlighting
