A LEGO® collection manager for Windows and macOS. Track your sets and minifigures, see what they're worth on BrickLink, identify them from a photo, and write eBay listings in one click.
BrickForge keeps your whole LEGO collection in one place on your computer: every set and minifigure you own, the ones on your wishlist, what each is worth today, and how that has changed. It's free, it works offline, and your data stays in a single file you control.
| Collection | Sets and minifigures with condition, quantity, purchase price, tags, notes, and a wishlist. Grid or table view, filters by theme, condition, and tag, and bulk edits. |
| Catalog | Browse and search every LEGO set and minifigure, with what you already own marked. Minifigures show their BrickLink ids. |
| Scan | Drop photos of sets or minifigures and get matches from the catalog. With an AI provider set up, a photo of several minifigures is split into one scan per figure. |
| Value | Market prices from BrickLink sales, portfolio history, gain over what you paid, top movers, value by theme, and price alerts. |
| Sell | An eBay-ready title and HTML description for any set, plus BrickLink's recent sold prices to price it. |
| Import and export | CSV from Brickset, Rebrickable, or BrickForge, BrickLink wanted-list XML, or a photo of a list. Every import is reviewed before anything is added. |
| Sync | Optional two-way sync with a PostgreSQL database you own (Supabase, Neon, or your own server) to keep two computers in step. |
Download from the latest release.
- Download
BrickForge-Setup-<version>.exeand run it. BrickForge installs for your Windows user and opens when it's done. - The installer isn't code-signed yet, so Windows SmartScreen may say Windows protected your PC. Click More info, then Run anyway.
BrickForge checks GitHub for new versions and offers to install them. Each download's SHA-512 checksum is verified before it runs.
- Download the disk image for your Mac:
BrickForge-<version>-mac-arm64.dmgfor Apple Silicon (M1 and later), orBrickForge-<version>-mac-x64.dmgfor an Intel Mac. Not sure? Apple menu → About This Mac shows Chip (Apple Silicon) or Processor (Intel). - Open it and drag BrickForge into Applications.
- BrickForge isn't signed with an Apple Developer ID yet, so the first time you open it macOS says it can't verify the developer. Click Done, open System Settings → Privacy & Security, scroll down, and click Open Anyway next to BrickForge. You only do this once.
macOS doesn't let an unsigned app replace itself, so on a Mac BrickForge tells you when a new version is out and opens its download page.
Just want to look around? Open Settings → About → Open the demo to browse a sample collection of 21 sets and 15 minifigures with real prices. The demo keeps its own data and never touches yours.
The first time you open BrickForge, it walks you through connecting the free services it uses. Every connection has a Test button that proves the key works before you rely on it. You can change any of them later in Settings → Connections.
| Service | What it unlocks | Cost | Needed? |
|---|---|---|---|
| Rebrickable | Set and minifigure names, pictures, themes, piece counts. Search, add, and Catalog. | Free | Yes |
| BrickLink | Market prices, price history, alerts, Sell's price suggestion, and minifigure ids. | Free | For prices |
| Brickognize | The photo recognizer behind Scan. | Free, no key | Built in |
| AI provider | Double-checks uncertain scans, reads photographed lists, writes eBay listings. | Pay per use, or your Claude Code sign-in | Optional |
- Create a free account at rebrickable.com.
- Open your account's Settings → API page and click Generate new API key.
- Paste the key into BrickForge and click Test.
BrickLink's API uses four values: a consumer key and secret, and a token and token secret.
- Sign in to bricklink.com (a free buyer account is enough).
- Go to the API consumer registration page and register.
- Create an access token. For IP address, enter
0.0.0.0so the token works from any network. For mask, enter0.0.0.0too. - Copy all four values into BrickForge and click Test.
Prices are BrickLink's sold prices from the last six months (US region, in US dollars), falling back to current listings when nothing has sold. BrickForge refreshes them daily if you leave Update prices daily on.
BrickLink is also the source of truth for minifigure ids: every minifigure in your collection goes by its BrickLink id (like sw0700). Only Rebrickable's catalog can be searched, so search results start out under Rebrickable's numbers; BrickForge finds each one's BrickLink id from the BrickLink inventories of the sets it comes in, and shows it as soon as it's known. When the sets alone can't tell similar figures apart, it compares the figure's official picture (through Brickognize) against just those candidates. If it still can't decide, enter the id in the minifigure's details.
Scan works without AI: Brickognize handles clear photos on its own. Pick one provider in Settings → Connections for the rest:
- Anthropic: an API key from platform.claude.com. Uses Claude Opus 5.5 by default.
- OpenAI: an API key from platform.openai.com.
- Claude Code: uses the Claude Code app already installed and signed in on your computer, so no key is needed. Each call is a little slower.
- Add things. Press Ctrl+K (⌘K on a Mac) anywhere and type a set number or a name, or use Add on any screen. Adding a set offers to add its minifigures too.
- Scan. Drag photos onto Scan, or click to pick them. Choose Sets or Minifigures first. With an AI provider set up, turn on Split group photos to scan a lineup of figures in one go. Pick the right match and click Add, or the heart to wishlist it.
- Edit and organize. Click any item for its details sheet. In Collection, Ctrl-click (⌘-click on a Mac) or Shift-click to select several, Ctrl+A (⌘A) to select everything shown, then tag, move, or edit them together. Esc clears the selection.
- Watch prices. In an item's details, set an alert for when its price drops below or rises above a target. Alerts are checked after every price update and show a desktop notification.
- Sell. Pick a set on Sell, describe your copy (how complete it is, and whether the instructions, minifigures, and box are included), and click Write the listing. Copy the title and the HTML straight into eBay.
- Back up. BrickForge backs up your collection weekly on its own. Settings → Your data backs up now, restores a backup, imports, and exports CSV.
Everything lives on your computer, in %APPDATA%\brickforge on Windows and ~/Library/Application Support/brickforge on a Mac:
brickforge.db |
Your collection, prices, alerts, and listings (SQLite) |
settings.json |
Preferences. API keys in it are encrypted with the system's own protection (Windows data protection, or the macOS Keychain) and can only be read by your account on this computer |
backups\ |
Automatic weekly backups and any you make yourself |
scans\ |
Photos you've scanned, until you clear them |
BrickForge sends nothing anywhere except to the service each feature needs: catalog lookups to Rebrickable, price lookups to BrickLink, scanned photos to Brickognize (and to your AI provider when it double-checks a match), and listing details to your AI provider. There's no account, no analytics, and no telemetry.
Sync keeps two computers in step, or keeps an off-site copy. BrickForge still works from its local file and sends and receives changes in the background, so it keeps working offline. When two computers change the same item, the newest change wins.
- Create a free PostgreSQL database, for example on Supabase or Neon, or use your own server.
- Copy its connection string (
postgresql://user:password@host:5432/dbname). Supabase and Neon may need?sslmode=requireon the end. - In Settings → Your data → Sync, paste it, click Test, then Connect.
BrickForge creates one table, brickforge_sync, and touches nothing else in that database. Restoring a backup while sync is on makes this computer rejoin as a new device and converge with the database.
You need Windows 10 or 11 or macOS 13 or later, Node.js 24, and Git.
git clone https://github.com/jaig-eye/brickforge.gitcd brickforgenpm installnpm run devnpm run dev builds the main process, starts the Vite dev server, and opens the app with hot reload. Your real collection (in the data folder above) is used; run npm run demo instead to work against the sample collection.
| Command | What it does |
|---|---|
npm run dev |
Run the app with hot reload |
npm run demo |
Run the app with the sample collection |
npm run typecheck |
Type-check the renderer and the main process |
npm run lint |
ESLint |
npm test |
Unit and integration tests (Vitest) |
npm run test:e2e |
Build, then drive the real app end to end (Playwright) |
npm run screenshots |
Regenerate the screenshots in this README |
npm run package:win |
Build the Windows installer into release\ |
npm run package:mac |
Build the macOS disk images into release/ (on a Mac) |
The tests never touch the internet or your data. Every web service (Rebrickable, BrickLink, Brickognize, Anthropic, OpenAI) is replaced by a local stand-in that replays recorded real responses, sync runs against an in-process PostgreSQL (PGlite), and each test gets a fresh data folder. .env.example lists the environment variables for pointing the app at other folders and services.
| App | Electron 44, sandboxed renderer, context-isolated preload |
| Interface | React 19, TypeScript, Tailwind CSS 4, Framer Motion, TanStack Query |
| Data | SQLite via better-sqlite3, versioned SQL migrations, optional PostgreSQL sync via node-postgres |
| Recognition | Brickognize, then Claude or OpenAI to double-check |
| Tests | Vitest, Playwright for Electron, PGlite |
electron/ Main process
api/ Rebrickable, BrickLink, Brickognize, and AI clients
db/ SQLite connection, migrations, queries
ipc/ Typed handlers the interface calls
services/ Scan queue, pricing, listings, import, sync, updates
src/ Interface (React)
pages/ Home, Collection, Catalog, Scan, Value, Sell, Settings
components/ Shell, brick graphics, charts, UI kit
tests/ Unit, integration, and end-to-end tests, fixtures, stand-in APIs
resources/ Icons and the demo collection
Ideas for what comes next are in ROADMAP.md, and every release is described in CHANGELOG.md. Bug reports and suggestions are welcome in Issues.
MIT © jaig-eye
LEGO® is a trademark of the LEGO Group, which does not sponsor, authorize, or endorse this project. BrickLink® is a trademark of the LEGO Group. Set and minifigure data and images come from Rebrickable; prices come from the BrickLink API. BrickForge isn't affiliated with Rebrickable, BrickLink, Brickset, or Brickognize.
Keywords: LEGO collection tracker, LEGO inventory app, LEGO set value, LEGO price tracker, minifigure collection, BrickLink price guide, Rebrickable, Brickset import, LEGO identifier, LEGO scanner, AFOL, LEGO investing, eBay LEGO listing, Windows desktop app, macOS app.







