Compare · browse · plan Mod Organizer 2 modlists.
Moving to a new modlist? Modlist Atlas puts your current MO2 setup next to the list you're moving to (a Wabbajack list, a guide, a friend's profile) so you can see what's shared, what's missing and what's different. Then you decide, mod by mod or many at once, what to keep, drop or think about later.
It runs on your own PC in your browser. It never changes your MO2 install, and it only contacts Nexus when you ask it to: Fetch Nexus details on a new snapshot, or Find on Nexus. After that, mod pictures load from Nexus as you browse.
Screenshots show a small demo with three sample lists.
Contents: What it helps you answer · Quick start · A tour · Keyboard shortcuts · Optional settings · Privacy and safety · Where your data lives · Good to know · Development · Feedback · Credits and notes · License
- Which of my mods does the new list already include, and which would I lose?
- What does the new list add that I've never used?
- Do both lists use the same mod in different versions?
- Of the 600 mods in my setup, how many have I decided on so far?
Works with every game Mod Organizer 2 manages: Skyrim, Fallout, Oblivion, Morrowind, Starfield and others. Vortex lists aren't supported.
- Install Python 3.10 or newer (tick Add Python to PATH). Nothing else is needed.
- Download this project: Code → Download ZIP on GitHub, and unzip it anywhere. Or use git:
git clone https://github.com/vivekmtk/modlist-atlas.git
- Double-click
Modlist Atlas.bat. Your browser openshttp://localhost:8000. Windows SmartScreen may warn you the first time, because the file isn't signed. That's expected: click More info → Run anyway. The file only starts Modlist Atlas on your PC. On macOS or Linux, runpython3 tools/serve.pyinstead. Uploaded lists work there, but the MO2 profile option needs a Windows MO2 install. - Name your first session and pick its game (see Sessions).
- Click + Add list and pick one:
- MO2 profile: point it at your Mod Organizer 2 folder and choose a profile.
- Upload files: drop in a profile's
modlist.txt(plusplugins.txtand INIs if you have them), a whole profile folder, or a.zip. Use this for lists you haven't installed, for example one shared on Load Order Library or by a friend. - From other sessions: reuse a list you already added to another session.
Add at least two lists to compare them. To refresh a list after changing it in MO2, use Re-snapshot on the Overview page. Remove takes a list out of the session you're in.
Updating: download the new ZIP and unzip it over your existing Modlist Atlas folder, replacing
files when asked. Your lists, decisions and settings are kept. Don't unzip it to a new folder: the
app would look empty there, because your data stays in the old folder (see
Where your data lives). If you used git, run git pull instead.
Every mod gets one row, and every list gets a column. Click the list chips at the top to cycle each one through any → in → not in. For example, in my-setup, not in wabbajack-list shows exactly what you'd lose by switching. Or click a segment of the overlap bar. Versions differ finds mods that both lists have in different versions (only lists snapshotted from MO2 have versions). Download CSV exports the current view, with your decisions, for a spreadsheet.
Your comments have their own column, and you can filter it like in Excel: click Comment in the header.
See one list as cards or a table. Group mods by MO2 separator (in load order) or by Nexus category, and filter by category, separator, decision or enabled state. The coloured dots on each card show which of your lists contain that mod.
Click a mod for its details: its description, a Nexus link, and which lists contain it. Mark it Keep, Drop or Maybe and add a comment, such as replaced by Lux or needs a patch. In tables, the small K / D / ? buttons on each row (? is Maybe; hover a button to see its name) do the same without opening the mod.
Decisions follow the mod, not the list. A mod you marked keep shows as keep in every list that has it, and decisions survive re-snapshots and removing lists. Each session has its own decisions.
A session is one plan for one game: the lists you compare, your filters, and your keep / drop decisions. Click the session name at the left of the list bar to switch sessions or manage them. For example, keep your Skyrim plan while you start a Morrowind one, or try a second Skyrim plan on another base list.
- New session: give it a name and a game. It starts with no lists and no decisions.
- Duplicate: copies a session's lists, decisions and setup under a new name. Use it to try a variation without losing the original.
- Rename and Delete do what they say. Deleting a session removes only its decisions. Its lists stay, so you can add them to other sessions.
Each session has its own lists. A list you add or upload goes into the session you're in, for that session's game. To use it in another session too, add it there with + Add list → From other sessions. The list is stored once, so a re-snapshot updates it in every session that has it. Removing a list from one session leaves it in the others. Its files are deleted only when no session has it any more, and the app asks first. Find on Nexus searches the session's game. The app reopens the session you used last.
When you upgrade from a version without sessions, your existing decisions move into a session named Default for the game most of your lists are for. Rename it to whatever you like. When you upgrade from a version where lists were shared by game, each session keeps every list it showed before.
Uploaded lists only have mod names, so their mods have no Nexus link, category or description unless one of your MO2 lists has the same mod. Click Find on Nexus at the top to search Nexus for every such name:
- Exact title, one mod: linked automatically, e.g.
Vanilla Scripting Enhancements. - Close titles: kept as suggestions, e.g.
Vanilla Scripting Enhancements - BSA Versionor a patch whose name starts like the main mod. The button shows how many are waiting. Open a mod (or use the Needs Nexus review filter) to Accept the right one or choose None of these. - Nothing found: tool outputs, renamed or removed mods. Tick Search again for names that weren't found on a later run to retry only these.
Results are saved, so each name is searched only once, and new lists only search their new names. A wrong automatic match can be undone from the mod's details. No API key is needed; only mod names are sent to Nexus. With a Nexus API key, Find on Nexus then also fetches summaries, pictures and authors for the session's MO2 snapshots that don't have them yet.
Click ☑ Select in Browse or Compare to show checkboxes. Tick mods one by one, or use the header checkbox to select everything matching your filters. Then choose a decision and/or a comment and click Apply. A typed comment replaces the existing comments on those mods. Leave it empty to keep them.
The Overview page shows how far along your decisions are, how the lists' categories compare, and how many mods each pair of lists shares. Click any number to jump to those mods. Freeze a list (for example your current setup) so the app asks before overwriting it.
| Key | Action |
|---|---|
/ or Ctrl+K |
Search |
K / D / M |
Keep / drop / maybe (with a mod open) |
C |
Edit the comment |
← / → |
Previous / next mod |
Esc |
Leave the comment box, then close |
Enter |
Open the focused table row |
You don't need any settings for the web app; it asks for everything it needs. To pre-fill the
MO2 profile form, or to add a Nexus API key, copy .env.example to .env and edit it:
Copy-Item .env.example .env
notepad .env # MO2_PATH, MO2_PROFILE, MO2_LIST_NAME, NEXUS_API_KEYNexus API key (nexusmods.com → Site preferences → API Keys): adds official one-line summaries and thumbnails. Without it, summaries come from the descriptions MO2 has already cached. A snapshot never waits for Nexus: tick Fetch Nexus details when adding it to fetch them in the background, or click Find on Nexus later. Results are cached, so only new mods are looked up. The key is used only for your own lists (personal use, as Nexus's API policy allows).
- Read-only towards MO2. Snapshots copy files out; nothing is ever written back.
- Offline until you use Nexus. It only reads your MO2 folder and the files you upload. Find on Nexus and Fetch Nexus details contact Nexus only when you use them. Mod pictures aren't downloaded: once a list has Nexus details, your browser loads each mod's picture from Nexus's image servers when you view it, which shows those servers your IP address (not which page you're on). Without Nexus details there are no pictures and nothing is loaded.
- Only on your PC. The server listens on
localhostonly and refuses requests from other websites. - No personal paths. Absolute paths and your graphics card name are blanked in copied INIs.
Everything stays in the project folder, unless you set ATLAS_HOME to use another one:
Back these up to keep a history. None of them are part of the repository, so updating the tool never touches them.
To rebuild a setup from a snapshot, or to use the command line, see Advanced use.
- Uploaded lists only have mod names. They're matched to your other lists by name, and borrow links, categories and descriptions from them. Find on Nexus fills in the rest by title; a mod with a very different folder name may still need to be confirmed by hand or won't be found. Versions are never known for uploaded lists.
- Mods without a Nexus ID (tool outputs, manual installs) have no link or category.
- Adding lists and saving decisions need the local server (
Modlist Atlas.bat). Served any other way, the app is a read-only viewer. - List colours repeat after 8 lists.
python -m unittest discover testsThe tests use a temporary ATLAS_HOME and a fake MO2 install; they never touch your data or the
network. See DESIGN.md for how the pieces fit together.
Found a bug or have an idea? Open an issue on GitHub Issues.
- Built with AI assistance (Claude Code); reviewed and directed by the author.
- Mod names, summaries, descriptions and images belong to their respective authors on Nexus Mods. This project only links to them and caches them locally.
- Not affiliated with any game publisher, Nexus Mods, Mod Organizer 2, Wabbajack or Load Order Library.
MIT © 2026 Vivek Muralidharan






