{"id":45747528,"url":"https://github.com/marc1326/anvil-organizer","last_synced_at":"2026-04-09T10:07:48.956Z","repository":{"id":340594731,"uuid":"1149668987","full_name":"Marc1326/Anvil-Organizer","owner":"Marc1326","description":"Native Linux mod manager inspired by MO2 — 35 games, Proton Script Extender support (SKSE64/F4SE/SFSE), Python/Qt6","archived":false,"fork":false,"pushed_at":"2026-04-03T16:57:44.000Z","size":17236,"stargazers_count":13,"open_issues_count":29,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-03T19:33:19.975Z","etag":null,"topics":["linux","linux-gaming","mod-manager","mod-organizer-2","modding","nexusmods","proton","pyside6","python","steamdeck"],"latest_commit_sha":null,"homepage":"https://marc1326.github.io/Anvil-Organizer/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Marc1326.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"Marc1326","ko_fi":"marc1326","custom":["https://www.paypal.com/paypalme/marc1326"]}},"created_at":"2026-02-04T11:33:21.000Z","updated_at":"2026-04-03T19:27:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"2ccfd0ab-7833-4e7f-a5ee-89d16bec7ed0","html_url":"https://github.com/Marc1326/Anvil-Organizer","commit_stats":null,"previous_names":["marc1326/anvil-organizer"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/Marc1326/Anvil-Organizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc1326%2FAnvil-Organizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc1326%2FAnvil-Organizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc1326%2FAnvil-Organizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc1326%2FAnvil-Organizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Marc1326","download_url":"https://codeload.github.com/Marc1326/Anvil-Organizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marc1326%2FAnvil-Organizer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31456664,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","linux-gaming","mod-manager","mod-organizer-2","modding","nexusmods","proton","pyside6","python","steamdeck"],"created_at":"2026-02-25T17:10:32.646Z","updated_at":"2026-04-09T10:07:48.949Z","avatar_url":"https://github.com/Marc1326.png","language":"Python","funding_links":["https://github.com/sponsors/Marc1326","https://ko-fi.com/marc1326","https://www.paypal.com/paypalme/marc1326"],"categories":[],"sub_categories":[],"readme":"# 🔨 Anvil Organizer\n\nA native **Linux mod manager** inspired by [Mod Organizer 2](https://github.com/ModOrganizer2/modorganizer), built with Python and PySide6 (Qt6).\n\nMO2 dominates on Windows — Anvil fills the gap on Linux.\n\n![Python](https://img.shields.io/badge/Python-3.11+-blue)\n![Qt](https://img.shields.io/badge/GUI-PySide6%20(Qt6)-green)\n![License](https://img.shields.io/badge/License-GPL--3.0-orange)\n![Platform](https://img.shields.io/badge/Platform-Linux-lightgrey)\n![GitHub stars](https://img.shields.io/github/stars/Marc1326/Anvil-Organizer)\n![GitHub Downloads](https://img.shields.io/github/downloads/Marc1326/Anvil-Organizer/total)\n![Latest Release](https://img.shields.io/github/v/release/Marc1326/Anvil-Organizer)\n\n\u003e ⚠️ **Early Development** — Anvil Organizer is under active development. Expect bugs and breaking changes. Feedback and bug reports are welcome!\n\n---\n\n## Features\n\n- **MO2-style virtual file system** — mods never touch your game directory (symlink-based deploy)\n- **Multi-instance support** — separate configurations per game\n- **Profile system** — switch mod setups per game instance\n- **Drag \u0026 drop mod ordering** — with collapsible separators and color coding\n- **Category system** — primary + secondary categories, filter panel\n- **Framework detection** — auto-detects and installs game frameworks\n- **Nexus Mods integration** — SSO-Login, API Key, direct downloads, NXM link handler\n- **Conflict detection** — shows file conflicts between mods with visual highlighting\n- **Savegame browser** — view saves per game, open in file manager\n- **Open Plugin System** — add new games via UI wizard (File → Create Game Plugin) or minimal Python code\n- **F4SE / SFSE / SKSE64 Proton Shims** — enables script extenders under Linux/Proton (world first!)\n- **Auto-redeploy** — mods redeployed automatically on toggle/reorder\n- **Game Running Lock** — UI locked while a game is running to prevent accidental changes\n- **Nexus Info Tab** — fetch mod info from Nexus with one click, view details in mod dialog\n- **Mod detail navigation** — next/previous buttons to browse through your mod list\n- **BG3 Auto-Deploy** — every change is immediately written to modsettings.lsx\n- **Framework Reverse-Sync** — detects newer framework versions and preserves them\n- **Self-update** — checks GitHub for updates, one-click git pull + restart\n- **7 languages** — DE, EN, FR, ES, IT, PT, RU\n- **Dark theme** — multiple styles included\n\n## Supported Games (35)\n\n### Fully Supported (8)\n\n| Game | Notes |\n|------|-------|\n| Cyberpunk 2077 | REDmod, CET, ASI frameworks |\n| Red Dead Redemption 2 | ScriptHook, ASI Loader, LML |\n| The Witcher 3: Wild Hunt | Multi-folder routing (mods/dlc/bin) |\n| Baldur's Gate 3 | Unified mod list, auto-deploy, profiles, NativeModLoader, WASD |\n| Skyrim Special Edition | SKSE64 Proton Shim, BA2 packing, plugins.txt, 7 frameworks |\n| Fallout 4 | F4SE Proton Shim (auto-injection), BA2 packing, plugins.txt |\n| Starfield | SFSE Proton Shim, Address Library detection |\n\n### Beta (27) — [Feedback welcome!](https://github.com/Marc1326/Anvil-Organizer/issues)\n\n| Game | Steam | GOG | Game | Steam | GOG |\n|------|:-----:|:---:|------|:-----:|:---:|\n| Bannerlord | ✅ | ✅ | Monster Hunter: World | ✅ | — |\n| Blade \u0026 Sorcery | ✅ | — | Morrowind | ✅ | ✅ |\n| Control | ✅ | ✅ | NieR: Automata | ✅ | — |\n| Dark Souls | ✅ | — | No Man's Sky | ✅ | ✅ |\n| Darkest Dungeon | ✅ | ✅ | Oblivion Remastered | ✅ | — |\n| Divinity: Original Sin EE | ✅ | ✅ | Sekiro | ✅ | — |\n| Dragon Age 2 | ✅ | — | Stardew Valley | ✅ | ✅ |\n| Dragon Age: Origins | ✅ | ✅ | Stellar Blade | ✅ | — |\n| Dragon's Dogma | ✅ | ✅ | Subnautica | ✅ | — |\n| Elden Ring | ✅ | — | The Witcher | ✅ | ✅ |\n| Fallout 3 | ✅ | ✅ | The Witcher 2 | ✅ | ✅ |\n| Fallout: New Vegas | ✅ | ✅ | Valheim | ✅ | — |\n| FF VII Remake | ✅ | — | | | |\n| Hogwarts Legacy | ✅ | ✅ | | | |\n| Kingdom Come: Deliverance | ✅ | ✅ | | | |\n\nWorks with **Steam** and **Heroic Games Launcher** (GOG/Epic via Proton/Wine).\n\n\u003e 💡 **Missing your game?** Use **File → Create Game Plugin** to add any game — no coding required!\n\n---\n\n## Comparison\n\n| Feature | Anvil Organizer | MO2 (via Wine) | Vortex (via Wine) |\n|---------|:-:|:-:|:-:|\n| **Native Linux** | **Yes** | No (Wine) | No (Wine) |\n| **Proton Script Extender Shims** (SKSE64/F4SE/SFSE) | **Yes** | No | No |\n| **MO2-style virtual filesystem** | Symlinks | VFS driver | Hardlinks |\n| **Drag \u0026 drop load order** | **Yes** | Yes | Limited |\n| **Multi-instance / Multi-game** | **Yes** | Yes | Yes |\n| **Profile system** | **Yes** | Yes | Yes |\n| **Nexus Mods integration** | **Yes** | Yes | Yes |\n| **Conflict detection** | **Yes** | Yes | Yes |\n| **Plugin System (add games via UI)** | **Yes** | No | No |\n| **LOOT integration** | Planned | Yes | Yes |\n| **Nexus Collections** | Planned | No | Yes |\n| **BA2/BSA packing** | **Yes** | No | No |\n| **Framework auto-detection** | **Yes** | No | No |\n| **Languages** | 7 | 1 | 10+ |\n| **Steam Deck ready** | **Yes** | Manual | Manual |\n| **Open Source** | GPL-3.0 | GPL-3.0 | GPL-3.0 |\n\n\u003e **TL;DR** — Anvil is the only mod manager built *for* Linux. No Wine, no workarounds, and the only tool with native Proton Script Extender support.\n\n---\n\n## Screenshots\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"screenshots/main_cyberpunk.png\" alt=\"Cyberpunk 2077\" width=\"400\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"screenshots/main_bg3.png\" alt=\"Baldur's Gate 3\" width=\"400\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"screenshots/instance_manager.png\" alt=\"Instance Manager\" width=\"400\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"screenshots/settings.png\" alt=\"Settings\" width=\"400\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## Migrating from Windows?\n\nUse **[GoodbyeWindows](https://github.com/Marc1326/GoodbyeWindows)** to transfer your MO2 mod setup from Windows to Anvil Organizer on Linux — including load order, Nexus IDs, profiles, and mod files.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/Marc1326/GoodbyeWindows/main/docs/screenshots/hellolinux-welcome.png\" width=\"500\" alt=\"HelloLinux Importer\"\u003e\n\u003c/p\u003e\n\n---\n\n## Installation\n\n### Requirements\n\n| Dependency | Check | Arch Linux | Debian / Ubuntu |\n|------------|-------|------------|-----------------|\n| **Python 3.11+** | `python3 --version` | `sudo pacman -S python` | `sudo apt install python3` |\n| **pip** | `python3 -m pip --version` | `sudo pacman -S python-pip` | `sudo apt install python3-pip python3-venv` |\n| **Git** | `git --version` | `sudo pacman -S git` | `sudo apt install git` |\n| **Qt6 libraries** | `python3 -c \"from PySide6 import QtWidgets\"` | `sudo pacman -S qt6-base` | `sudo apt install libgl1 libegl1 libxcb-cursor0 libxkbcommon0` |\n\n### Installer Script (recommended)\n\nOne command to install Anvil with desktop entry and NXM handler:\n\n```bash\ncurl -sSL https://raw.githubusercontent.com/Marc1326/Anvil-Organizer/main/Anvil-Organizer-installer.sh | bash\n```\n\nThis downloads the latest AppImage to `~/Applications/`, creates a desktop entry, and registers the NXM link handler.\n\n### AppImage (manual)\n\nDownload from [GitHub Releases](https://github.com/Marc1326/Anvil-Organizer/releases/latest), make executable, run:\n\n```bash\nchmod +x Anvil_Organizer-*-x86_64.AppImage\n./Anvil_Organizer-*-x86_64.AppImage\n```\n\n### .deb Package (Debian / Ubuntu)\n\n```bash\n# Download from GitHub Releases, then:\nsudo apt install ./anvil-organizer_*_amd64.deb\n```\n\n### AUR (Arch Linux, CachyOS, EndeavourOS, Manjaro)\n\n```bash\nparu -S anvil-organizer\n```\n\nOr the latest git version:\n\n```bash\nparu -S anvil-organizer-git\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/Marc1326/Anvil-Organizer.git\ncd Anvil-Organizer\nchmod +x install.sh\n./install.sh\n```\n\nThis creates a virtual environment, installs dependencies, and adds a desktop entry to your app menu.\n\n### Manual Install\n\n```bash\ngit clone https://github.com/Marc1326/Anvil-Organizer.git\ncd Anvil-Organizer\npython3 -m venv .venv\n.venv/bin/pip install -r requirements.txt\n.venv/bin/python main.py\n```\n\n---\n\n## Updating\n\nAnvil checks for updates on startup. When updates are available, a notification appears — click to update and restart automatically.\n\nManual update:\n\n```bash\ncd Anvil-Organizer\ngit pull\n.venv/bin/pip install -r requirements.txt  # only if dependencies changed\n```\n\n---\n\n## Project Structure\n\n```\nAnvil-Organizer/\n├── main.py                 # Entry point\n├── install.sh              # Install script\n├── requirements.txt        # Python dependencies\n├── pyproject.toml          # Project metadata\n├── anvil/\n│   ├── mainwindow.py       # Main window (MO2-style layout)\n│   ├── core/               # Business logic\n│   │   ├── mod_deployer.py     # Symlink-based virtual deploy\n│   │   ├── mod_installer.py    # Archive extraction + installation\n│   │   ├── instance_manager.py # Multi-game instance management\n│   │   ├── update_checker.py   # Git-based self-update\n│   │   └── ...\n│   ├── plugins/games/      # Per-game plugins\n│   │   ├── game_cyberpunk2077.py\n│   │   ├── game_reddeadredemption2.py\n│   │   ├── game_witcher3.py\n│   │   ├── game_skyrimse.py\n│   │   └── ...\n│   ├── widgets/            # UI components\n│   ├── styles/             # Dark themes (QSS)\n│   ├── locales/            # Translations (7 languages)\n│   └── assets/icons/       # Game icons and covers\n```\n\n---\n\n## How It Works\n\nAnvil uses a **symlink-based virtual file system** similar to MO2:\n\n1. Mods are stored in `.mods/` inside each instance directory\n2. On game launch, Anvil creates symlinks from the game directory to your mods\n3. On game close (or app exit), symlinks are removed\n4. **Your game directory stays clean** — no files are ever copied or modified\n\nThis approach works natively on Linux without the need for a virtual filesystem driver.\n\n---\n\n## Create Game Plugin\n\nYour game is not listed? Add it yourself — **no coding required**:\n\n1. Click the **puzzle icon** in the toolbar (or **File → Game Plugin → Create**)\n2. Fill in: Game Name, Game Binary (.exe), Steam ID, and Data Path\n3. Click **Create** — done!\n\nThe plugin is saved to `~/.anvil-organizer/plugins/games/` and loaded automatically on next startup.\n\nYou can also edit existing plugins via **File → Game Plugin → Edit** to change paths, add frameworks, or update cover images.\n\nFull guide with examples: **[Wiki — Create Game Plugin](https://github.com/Marc1326/Anvil-Organizer/wiki/Create-Game-Plugin)**\n\n---\n\n## Contributing\n\nContributions welcome! Please open an issue first to discuss what you'd like to change.\n\n---\n\n## Support the Project\n\nIf Anvil Organizer is useful to you, consider supporting its development:\n\n☕ **Ko-fi:** [ko-fi.com/marc1326](https://ko-fi.com/marc1326)\n\n**Crypto:**\n- **Bitcoin:** `bc1q6ghal7tewh38gdggt8z8qeqr99u3y5ehmruwk9`\n- **Monero:** `4AGPyk5G4NwZboyQJcWQKwMFLTjs3fmoG9CFVBrkE3UFcpCaQyEmC93PgaeW1uuL65aLW1qKa8sd4Wo6NSu4HkvF117n5km`\n\n---\n\n## License\n\n[GPL-3.0](LICENSE)\n\n---\n\n## Acknowledgments\n\n- Inspired by [Mod Organizer 2](https://github.com/ModOrganizer2/modorganizer)\n- Built with [PySide6](https://doc.qt.io/qtforpython-6/) (Qt for Python)\n- Migration from Windows: [GoodbyeWindows](https://github.com/Marc1326/GoodbyeWindows)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarc1326%2Fanvil-organizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarc1326%2Fanvil-organizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarc1326%2Fanvil-organizer/lists"}