Skip to content

sogladev/rs-addon-manager

Repository files navigation

Git-Based Addon Manager

A modern GUI addon manager that uses Git repositories to install, update, and manage your WoW addons across multiple directories.

Socials Addon Manager

Key Features:

  • Install addons directly from GitHub/GitLab URLs
  • Curated catalogue of addons for easy install
  • Bulk install/update all addons
  • Manage multiple addon directories
  • Import/export addon lists
  • Cross-platform (Windows, Linux, macOS)

Download

Get the latest builds from the Releases page.

For Windows users: I recommend the MSI installer (addon-manager_*.msi) as it supports Tauri's built-in self-updater.

Table of Contents


Addon Manager Features

Feature Supported
Windows, Linux, MacOS Yes
Install, Remove, Update addons Yes
git sources GitHub, GitLab, etc Yes
Curated catalogue of addons for easy install Yes
Install all Yes
Update all Yes
Multiple addon directories Yes
Import / Export addon list Yes
Switch Git branches Yes
Manage subaddons Yes
Install via Git (HTTPS) Yes
Install via Git (SSH) Not planned
Install from GitHub Releases or Packages Not yet supported
Manage non-Git addons Yes
Auto updater with Tauri Updater plugin Yes
CLI Headless mode Yes

Addon Manager Usage

Usage:

  1. Download the latest release for your platform
  2. Install and launch the application
  3. Select your WoW Interface/AddOns folder
  4. Add addons using their Git repository URLs

Example Git URLs:

  • https://github.com/Sattva-108/AdiBags.git
  • https://gitlab.com/username/addon-name.git

Install

Catalogue

Note: The catalogue is a helpful tool that automatically fills in HTTPS URLs for addons. Addons are curated from the Project Epoch Wiki and the Epoch Addons Discord. This list may contain moved, outdated, or broken repository links.

Menu

import-video.mp4

Advanced: "Easy" install

If you already have addon folders you can quickly "install" them by moving or dragging the addon folder into the hidden .addonmanager folder inside your Interface/AddOns directory. The Addon Manager scans the .addonmanager folder on startup (and when changes are detected):

  • Folders inside .addonmanager that contain a .git directory are treated as Git-tracked repositories and will be tracked and updatable.
  • Folders without a .git directory are treated as local addons. They are managed by the Addon Manager (symlinked into Interface/AddOns), but they cannot be updated automatically.
  • The manager is intentionally simple: it scans the disk and classifies repositories vs. local folders based on the presence of .git.

Notes:

  • This is useful for migrating old addons, installing manually downloaded addons, or quickly moving addon folders from one install to another.
  • To remove a local addon completely remove its folder from .addonmanager or use the UI Remove action (which also removes symlinks).

Command Line Options

# Run in headless mode to automatically check for updates and update all addons
./addon-manager --headless
# Only shows errors
./addon-manager --headless --quiet
# Show help
./addon-manager --help

Import Format Example

Lines beginning with # are automaticly ignored.

# Directory: /home/pc/Games/wow335-stock/Interface/AddOns
# <addonName> *<gitUrl> <branch>
AnyIDTooltip *https://github.com/Raynbock/AtlaslootProjectEpoch.git main
AtlasLoot *https://github.com/Raynbock/AtlaslootProjectEpoch.git main

Tech Stack

Rust Vue.js Tauri DaisyUI

Core Technologies

  • GUI: Tauri + Vue.js application with DaisyUI components

Local Development

Prerequisites

Formatting & Pre-commit

To set up formatting and the pre-commit hook:

  1. Install Prettier and the Vue Prettier config:

    bun add -D prettier @vue/eslint-config-prettier
  2. Set up the pre-commit hook by creating .git/hooks/pre-commit with:

    #!/bin/sh
    
    cargo fmt --all
    bun run prettier --write .

    Make sure the hook is executable:

    chmod +x .git/hooks/pre-commit
  3. Run manually

    bunx eslint --ext .ts,.vue addon-manager/src/

Catalogue - Adding New Addons

To add a new addon to the catalogue, edit the file:

src/data/addonCatalogue.ts

Add a new entry to the ADDON_CATALOGUE array:

{
    name: 'Your Addon Name',
    gitUrl: 'https://github.com/user/repo.git',
    description: 'Brief description of what the addon does',
    author: 'GitHubUsername',
    category: 'ui-enhancement',
    defaultBranch: 'main',
    notes: 'Any warnings or special instructions' // Optional
}

Types

Generate TypeScript bindings from Rust types

cargo test
cargo test export_bindings

Acknowledgements

The Addon Manager UI and features were inspired by GitAddonsManager and other existing Wow Addon Managers. For an overview of existing addon managers, I recommend this comparison video by Arcane Intellect: WoW Addon Managers Compared

License

About

Cross-platform (Windows + Linux + MacOS) GUI addon manager

Topics

Resources

Stars

Watchers

Forks