https://github.com/code-hemu/addonova
Next-Generation Web Extension Framework 😉
https://github.com/code-hemu/addonova
add-on addonova build-tool chrome-extension
Last synced: about 1 month ago
JSON representation
Next-Generation Web Extension Framework 😉
- Host: GitHub
- URL: https://github.com/code-hemu/addonova
- Owner: code-hemu
- License: gpl-3.0
- Created: 2026-05-28T13:26:25.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-28T14:04:56.000Z (about 1 month ago)
- Last Synced: 2026-05-28T16:07:15.347Z (about 1 month ago)
- Topics: add-on, addonova, build-tool, chrome-extension
- Language: JavaScript
- Homepage:
- Size: 31.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Addonova
[](https://github.com/code-hemu/addonova)
Addonova is a framework that allows developers to build extensions for multiple browsers. Developers can easily build, test, and manage extensions.
## Quick Start
```bash
npx addonova init my-extension
cd my-extension
npm run release
```
## Supported Browsers
- Chrome (MV3)
- Firefox
- Microsoft Edge
- Opera
- Naver Whale
- Thunderbird
## CLI Commands
| Command | Description |
| --- | --- |
| `addonova init ` | Scaffold a new extension project |
| `addonova build [options]` | Build the current extension project |
| `addonova zip` | Create release zip bundles |
| `addonova tool` | Open the i18n tools UI in a browser |
| `addonova --help` | Show help |
## Build Scripts
Generated projects include these npm scripts:
```bash
npm run release
npm run release:chrome
npm run release:edge
npm run release:opera
npm run release:firefox
npm run release:thunderbird
npm run release:naver
npm run debug
npm run debug:chrome
npm run debug:edge
npm run debug:opera
npm run debug:firefox
npm run debug:thunderbird
npm run debug:naver
npm run dev
npm run zip
npm test
```
You can also call the CLI directly:
```bash
npx addonova build --all --release
npx addonova build --chrome --debug
npx addonova build --all --debug --watch
npx addonova zip
npx addonova tool
```
## Build Options
| Option | Description |
| --- | --- |
| `--all` | Build all configured browsers |
| `--chrome` | Build Chrome target |
| `--edge` | Build Microsoft Edge target |
| `--firefox` | Build Firefox target |
| `--opera` | Build Opera target |
| `--naver` | Build Naver Whale target |
| `--thunderbird` | Build Thunderbird target |
| `--release` | Create release build |
| `--debug` | Create debug build |
| `--watch` | Rebuild when files change and reload opened extensions |
| `--open` | Open a browser with the debug extension loaded |
| `--test` | Build test version |
| `--version=x.x.x` | Append version to output zip names |
## Dev Mode
```bash
npm run dev
```
Dev mode runs:
```bash
addonova build --all --debug --watch
```
Addonova opens an isolated browser profile, loads the unpacked debug extension from `.output/debug/`, watches source files, rebuilds changed assets, and reloads the extension when the built files change.
## Generated Extension Structure
```txt
my-extension/
|-- config/
|-- platform/
|-- src/
| |-- _locales/
| |-- assets/
| |-- css/
| |-- html/
| |-- js/
| `-- manifest/
|-- .output/
`-- package.json
```
## Locales / i18n
Locale files use the `.i18n` format:
```txt
@extensionName
My Extension
@extensionDescription
This is my extension description.
```
Run the interactive message manager from a generated project:
```bash
npm run tool
```
Or use the i18n tools UI:
```bash
npx addonova tool
```
This opens a full UI at `http://localhost:9876` with:
- **Translate tab** — view all locale messages, add new messages with auto-translation, delete messages
- **JSON → i18n tab** — drag-and-drop a `messages.json` file to convert to `.i18n` format
## Development
Run the test suite:
```bash
npm test
```
Check what will be published:
```bash
npm pack --dry-run
```
## Requirements
- Addonova package: Node.js >= 20.19
- Generated extension template: Node.js >= 22 and npm >= 11