A desktop companion for Warframe — live inventory, market prices, trading, timers, relic overlay, and riven analysis. Read-only, no game modification.
Windows 10/11 for the full feature set. Inventory scanning requires Warframe to be running; all other features work standalone.
Linux runs against Warframe under Steam Proton: memory scanning goes through
/proc, and screen capture and OCR through X11 and Tesseract. Only the saved warframe.market session is Windows-only, since there is no OS credential store behind it.
This is the Linux fork of WyrmStudios/FrameForge. It exists because the Linux port was declined upstream, not because of a disagreement: upstream is the project, this is its platform branch, and fixes that are not Linux-specific are still sent upstream as individual pull requests. The app, its name and its bundle identifier are unchanged from upstream. Versions here are plain semver and count this repository's own releases; they do not track upstream's numbering.
Releases carry .deb, .rpm and .AppImage for Linux and an NSIS installer for Windows, all built from one version. Upstream's Windows builds live at upstream's releases.
The overlay stack, the EE.log discovery and several cross-platform fixes started from xamionex/FrameForge-Linux. That material was reworked here rather than taken as-is, so defects in it are ours and belong in this repository's issues, not theirs.
Upstream releases are merged in, tag by tag (docs/UPSTREAM-SYNC.md); main is not rewritten.
Reads your inventory directly from Warframe's process memory (read-only, same API as Overwolf). Instead of scanning for individual item patterns, FrameForge locates and captures the full account JSON blob that the game client holds in memory — the same authoritative data the game itself uses.
This gives complete coverage: resources, mods, arcanes, relics, weapons, Warframes, companions, blueprints, cosmetics (glyphs, palettes, emotes, titles, ship skins), sigils, pending Foundry jobs, credits, and more. Items that leave your inventory (traded, consumed, or expired) are correctly detected as dropped to zero. Inventory is persisted to disk and restored instantly on next launch — no login required.
Truncation-safe captures — the game sometimes leaves only part of the account blob in memory. FrameForge learns which sections your account normally contains and rejects any capture that has lost one of them, so a half-read blob never makes items flicker out and back in. Captures identical to the one already applied are skipped, so the changelog only moves when something actually changed.
View modes — Cards (icon + text), Icon grid, Text cards, List with icon, or Compact list (text-only, maximum density). Persisted per tab.
Browse every craftable item with full ingredient trees. Components are colour-coded by ownership status and show which relics drop them. Star items to track them in the Modular Window. Filter by Prime, Non-Prime, Vaulted/Unvaulted, Owned/Unowned, Ready to build, Mastered/Unmastered, and Lvl > 30 (Kuva/Tenet/Incarnon weapons, Necramechs). Items per page is configurable in Settings → General (30 / 60 / 100). Operator Weapons (Amp Prisms) appear as their own category.
Ignore Forma/Kuva — a toggle chip in the filter bar treats Forma blueprints and Kuva as always owned, so they never clutter the Unowned view.
Items with Forma applied show a Forma icon badge with the count overlaid — sourced live from memory, no manual tracking needed. Mastered / Unmastered filters use each item's actual level cap (30 for standard gear, higher for Incarnon/Kuva/Tenet weapons), and exclude non-levelable items (parts, blueprints) from both filters entirely.
View modes — switch between Cards (icon + text), Icon grid, Text cards, List (compact row with icon), and Compact list (text-only) via the toggle in the filter bar. Each tab remembers its own preference.
Sits in the Completionist module and covers every source of mastery: Warframes, Primary, Secondary, Melee, Operator Weapons, Archwing, Companions, Companion Weapons, Vehicles, Intrinsics, and Star Chart nodes and junctions. The toolbar shows overall progress and, for Equipment, Intrinsics, Nodes and Junctions, when each was last read from the account. Three views:
- Collection — the catalogue by category, grouped by variant (Standard, Prime, Kuva, Tenet, Zaw, Amp, …). Each item shows earned rank against its cap and the mastery it still has to give. Filter to Mastered, Partial, Missing, Unknown (no account observation yet) or Unobtainable.
- What next — actions that still earn mastery. Suggestions sorts them into stages: Level, claim or spend, Craft and Acquire, each row naming its blockers and whether it is Available, Blocked or of Unknown access. More relics lists items short a part that drops from relics you own, rated by the chance that every missing part drops when you run them solo at their current refinement; routes above 85% show up in Suggestions instead. With platinum prices missing parts and whole items from warframe.market, ranked by Cheapest finish, Mastery per platinum or Full purchase; click a quote for the market popup.
- Target MR — enter a rank and the plan fills itself from the chosen result view, shows the total, the gap and the projected rank, and lets you reorder, add or remove actions, star crafts for Foundry tracking, and spend owned mastered pieces as ingredients. Plans are saved per player.
Filters: Category, Progress, Availability, Sort and search. The Quick gains, Early progression and Completionist presets set them together. Easy mode hides the filters and shows only what is not blocked.
Browse Prime sets and mods with live platinum prices from warframe.market. Prices are loaded from the FrameForgePricing mirror on startup — a daily bulk cache updated twice per day from relics.run. No per-item network calls needed. Click any item for a live order popup with sell/buy orders, 3-week price chart, and one-click listing (requires WFM login). Mod cards show per-rank chips — click a chip to pre-fill the listing form with that exact rank and quantity. A rank selector in the orders popup filters listings to a specific mod/arcane rank.
Recipe-aware duplication detection — multi-count recipes (e.g. Aksomati Prime requires 2× Barrel) are respected when calculating sellable duplicates and the "Has dupes" filter.
WFM Status Automation (requires WFM login):
- Go Invisible on startup — set your status to Invisible the moment FrameForge opens
- Go Invisible on close — set your status before the app exits (X button or taskbar close)
- Auto-invisible timer — automatically go Invisible after a configurable number of minutes
Full warframe.market integration — manage active listings, post new orders, and receive trade whispers from in-game chat.
- One-click whisper copy — every order row has a 📋 button that copies the correct WFM trade message to your clipboard:
I want to buyfrom sellers,I want to sellto buyers. - Auto trade detection — when a trade completes in-game, the matching WFM whisper is automatically marked complete, the sold reply is copied to your clipboard, and the whisper stays visible as a ghost for 5 minutes.
- Auto listing update — after a sale is detected, the corresponding WFM sell listing is automatically decremented (or deleted if the last copy). Works regardless of which tab is active. An Auto-updated listings changelog at the bottom of the Listings tab shows every automatic change with an Undo button per entry.
- Status auto-reconnect — if WFM drops your status to offline, it is automatically restored without any action needed. Session token stored in Windows Credential Manager.
- Riven auction management — view all active riven auctions with AUC/DIR badges, starting price, and buyout price. Edit price, visibility, and auction type (AUC↔DIR) via a dedicated popup. Type switching is handled server-side with a guaranteed full data fetch.
- In-app WFM login — authenticate via a built-in WebView browser popup instead of entering credentials manually.
Browse void fissure drop tables with rarity colour-coding, ownership status, and platinum values. Supports all refinement levels (Intact → Radiant). View modes apply here too. Mastered-but-sold prime items (e.g. Bronco crafted into Akbronco) are correctly treated as completed. Ignore Forma/Kuva chip hides Forma and Kuva rewards from the Uncompleted filter.
Relic Planner — EV (expected value) calculator per refinement tier. Pick your metric (Platinum or Ducats), squad size (Solo → 4-player radshare), and filter by era, owned, or vaulted. Sortable columns: click any header (Relic, Owned, Intact, Except., Flawless, Radiant, Refine gain) to sort ascending or descending.
Live dashboard from DE's worldstate API:
- World cycles (Cetus, Orb Vallis, Cambion Drift, Zariman) with countdowns
- Bounty reset timers per open world
- Daily/Weekly resets, Sortie, Archon Hunt, The Circuit, Deep Archimedea
- Baro Ki'Teer, Prime Resurgence, Nightwave, Darvo deal, community events
- Alerts, Invasions, Void Fissures with configurable fissure watches and OS desktop notifications — get alerted the moment a watched fissure appears, no matter which tab is open
- Trades — auto-detected from EE.log. Captures all items from both sides of every trade, including item-for-item barters (no platinum involved). Each trade is classified as Sale, Purchase, or Trade.
- Trade Log — individual trade cards showing the full exchange: what you gave, what you received, with which player, and when. Toggle between Log and Analytics views in the Reports tab.
- Reports — date-filtered KPIs, platinum charts, per-item breakdown, top trading partners
- Item Report — track any item's quantity over time with daily snapshots and drag-to-reorder cards
Analyses riven rolls against the community-curated 44bananas spreadsheet (413+ weapons). Click Check Riven while the riven screen is open for instant per-stat quality ratings. Comparison mode shows old vs new roll side-by-side after each cycle. Supports primary, secondary, melee, and archwing weapons. On Linux, Alt-Tab out of the game before clicking the overlay's buttons — the game keeps the pointer grab until it loses focus.
When you open the Void Relics / Refinement screen, FrameForge detects the fissure era via OCR and instantly shows a compact overlay at the top-right of your screen ranking your relics by the metric you care about most.
Priority modes — Collect (probability of getting an item you don't own yet), Platinum (expected plat value per run), or Ducats (expected ducat yield). The top 3 relics are shown with refinement badge, copy count, score, and per-reward detail: vaulted status, ownership, platinum price, ducat value, and a refinement recommendation (REC) based on rarity.
Shown lines — All rewards (full 6-item list per relic), Best pick (the single highest-value reward), or Score summary (compact one-liner: plat EV · ducat EV · new items). Configure in Settings → Overlays.
The overlay auto-sizes to its content and dismisses when you return to the star map.
When a void fissure reward screen opens, FrameForge automatically captures it — via WinRT OCR on Windows, Tesseract on Linux — and shows a transparent overlay with platinum price, ducat value, and set completion for each card. Priority mode: Completion / Plat / Ducats / Set Value.
The item catalog used for OCR matching is built exclusively from known relic reward names — no false matches from non-reward items. Survival fissure multi-round sessions are fully supported: the selected relic carries over between rounds correctly.
Customisable sidebar with reorderable sections: tracked crafting items, favourite inventory items, pinned timers, and watched fissures.
The item database (items, recipes, relic drops) is fetched and rebuilt in the background on launch, and every open screen reloads on its own when it finishes — no manual Refresh item list needed, even right after an update. Source ETags are persisted to disk, so unchanged data is never re-downloaded. Tabs stay mounted while hidden, so switching between modules keeps your scroll position and filters.
Tabbed sidebar layout: General (Foundry page size, Mastery exclusions for Founders, retired event and removed-node sources, scanner, API, account info, pop-out), Overlays (Relic Overlay and Relic Pick Overlay settings), Market (WFM status automation), Filters (filter preset management per module), Accessibility (colorblind mode, text size up to 200%), Data (item database, cache), and Debugging (loggers, diagnostic tools with folder access and one-click clear).
Filter Presets — save, pin, and reorder named filter presets for Inventory, Foundry, Market, and Relic Helper, from each toolbar or from Settings → Filters. Search boxes across the app accept comma-separated terms for OR-style matching (e.g. braton, soma shows both).
One feature touches a EULA grey area and is off by default with an explicit opt-in warning:
- Memory Scanner —
ReadProcessMemoryfor live inventory. Read-only, same API as Overwolf.
FrameForge never contacts the official Warframe account or inventory API. Account state comes from the running game only, so console and cross-platform players are out of scope.
Everything else (Foundry, Market, Relics, Timers, Statistics) runs on public data only.
| Memory access | Read-only ReadProcessMemory — never writes, never injects |
| Game modification | None |
| Network | warframe.market, DE worldstate, WFCD GitHub repos, FrameForgePricing mirror. No FrameForge server, no telemetry |
| Credentials | WFM token in Windows Credential Manager (on Linux the session is not saved). Warframe API credentials never written to disk |
Source code is fully public under GPLv3 — build and verify it yourself.
- Windows 10 or 11 (64-bit) from upstream, or Linux with glibc 2.39 or newer running Warframe through Steam Proton
- Warframe installed for inventory scanning (other features work without it)
- warframe.market account for trading features (optional)
Linux — download the .deb, .rpm or .AppImage from Releases. Ubuntu 24.04, Debian 13 and Fedora 40 are all above the glibc floor; Debian 12 is below it and will install cleanly but fail to launch.
Windows — download the installer from upstream's Releases, run it (click More info → Run anyway if SmartScreen warns you — there is no code-signing certificate), and launch FrameForge from Start or the desktop shortcut.
Build Windows from upstream rather than from this fork — see About this fork for why.
# Prerequisites: Node.js 20+, pnpm, Rust MSVC toolchain
rustup default stable-x86_64-pc-windows-msvc
git clone https://github.com/WyrmStudios/FrameForge.git
cd FrameForge
pnpm install
pnpm tauri dev # dev mode with hot reload
pnpm tauri build # installer → src-tauri/target/release/bundle/Releases carry the three packages, so building is for development or for a branch no release covers.
# Prerequisites: Node.js 20+, pnpm, a Rust toolchain, and the system
# development headers listed in .github/actions/linux-build-deps/action.yml
git clone https://github.com/Lyrex/FrameForge-Linux.git
cd FrameForge-Linux
pnpm installThe frontend and backend are started separately:
pnpm dev
# In another terminal:
cd src-tauri
cargo runA development run shares its settings, database, caches, logs and
warframe.market login with the installed app. To keep them apart, set
FRAMEFORGE_ROOT to an absolute path. FrameForge then keeps everything under
that directory, titles its window "FrameForge Dev" and skips the update check
at launch:
FRAMEFORGE_ROOT="$HOME/.frameforge-dev" cargo runPackages build with the normal command:
NO_STRIP=true pnpm tauri build # deb, rpm and AppImage in src-tauri/target/release/bundle/NO_STRIP=true is only needed for the AppImage: linuxdeploy ships an old
strip that cannot read the .relr.dyn sections modern distributions use, and
it aborts the bundle rather than skipping the library. Building only deb and
rpm (--bundles deb,rpm) does not need it.
Warframe must be running through Steam Proton — EE.log is read from the
Proton prefix, and memory scanning reads the game process with
process_vm_readv, which requires kernel.yama.ptrace_scope to permit
same-user process access. Persistent
warframe.market sessions are unavailable, and the "remember me" control is
hidden rather than offered.
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript 5.8, Vite 7 |
| Desktop shell | Tauri 2 |
| Backend | Rust 2021 edition |
| Database | SQLite (local only) |
| Windows APIs | ReadProcessMemory, WinRT OCR, DXGI, GDI, Windows Credential Manager |
- No account required for most features
- No telemetry — no FrameForge server
- All data stored locally at
%LOCALAPPDATA%\warframe-companion\(Windows) or~/.local/share/warframe-companion/(Linux) - WFM session token stored in Windows Credential Manager if "Stay logged in" is enabled
GPLv3 — see LICENSE. Reimplemented third-party components are listed in THIRD_PARTY_NOTICES.md.
Bug reports, feature requests, and PRs welcome via GitHub Issues. Use the issue templates. For large changes, open an issue first to align on approach.
FrameForge is not affiliated with Digital Extremes Ltd. Warframe is a trademark of Digital Extremes Ltd.