Know what you own. Find what you need. Protect what matters.
A local-first inventory and studio-planning app for instruments, audio equipment, accessories, documents, and software.
Download · Wiki · Discussions · Issues
Gear collections grow one cable, bracket, instrument, and impulse purchase at a time. Studio Inventory gives musicians, engineers, rehearsal spaces, schools, collectors, and small studios one place to track the equipment itself—and the details that make it useful later.
- No subscription or cloud account. The database, photos, receipts, and manuals stay on the host computer. See Privacy and defaults for the short list of things that can reach the internet.
- Ready for real equipment chains. Nest a drum pad under its mount, the adapter under that, and the paid thumb screws under the adapter.
- Useful away from the desk. Add photos and scan labels from Android Chrome/Edge or iPhone/iPad Safari on the same trusted network.
- Built for proof of ownership. Track serials, values, receipts, condition, warranties, manuals, and insurance notes.
- Comfortable everywhere. Responsive, touch-friendly layouts work on phones, tablets, desktops, and large displays.
![]() |
![]() |
| Dashboard — value, documentation, loans, and recent activity | Browse by brand — a visual path through the collection |
| Catalog and protect | Organize and connect | Plan and operate |
|---|---|---|
| Serials, values, condition, warranties, receipts, photos, and insurance reports | Smart profiles, nested components, compatibility history, tags, manuals, and searchable PDFs | Room layouts, calibrated wall views, rack and signal-chain planning, loans, and binder printing |
| Signed QR owner labels and read-only guest links | Cables, mounts, fasteners, patchbays, monitors, instruments, drums, and software licenses | Mobile photo capture, responsive PWA, brand browsing, documentation scoring, and backup/restore |
Choose an Item Type / Smart Profile and the form reveals useful fields for that kind of equipment. Profiles cover brass and bowed strings, guitars and basses, acoustic and electronic drums, pads and cymbals, mounting hardware, fasteners, cables, patchbays, racks, and studio monitors.
Electronic drum kit
└── Alesis ControlPad
└── Gibraltar adapter clamp
└── Mounting thumb screws
Every record can keep its own price, receipt, photos, specifications, and compatibility result. Parent records show the complete assembly value.
- The app has its own icon on the desktop, in the Start menu and on the browser tab. The Windows launcher and installer previously shipped without one.
- Stopping the app is easier to find. Help & About now opens with a Stop Studio Inventory button, because closing the browser tab leaves the server running.
Nothing about your catalog changes and there is nothing to read before updating: 2.9.2 release notes.
A security and reliability release; nothing about how you catalog gear changed.
- Updates can no longer lose your catalog. Installers move
data/into the new version with a single rename and put the previous version back if any step fails. - A proper way to stop the app on every platform: Help & About → Stop Studio Inventory, or Stop Studio Inventory in the Windows Start menu. Installers ask the app to stop instead of ending it abruptly, so the catalog closes cleanly.
- A server log at
data/logs/studio-inventory.log, viewable in Help & About → Server Log. On Windows, where the app runs without a window, this is the only place error details appear. - Backups stream to disk, so large photo and manual collections no longer have to fit in memory.
- Stricter defaults: look-alike host names are refused, reverse-proxy requests always need the owner PIN, guest links hide prices and notes, and downloads refuse addresses on your own network.
- Node.js 22 or newer is required when running from source. Release downloads include the right runtime.
Full details, including behavior changes to read before updating: 2.9.1 release notes.
Pre-built releases include the runtime and production dependencies—no separate Node.js installation is required.
| Platform | Recommended download | Start here |
|---|---|---|
| Windows | Windows-Setup.exe |
Run setup, then launch Studio Inventory |
| macOS | .dmg |
Open the image and run the installer; if macOS blocks it, see allowing it once |
| Linux x64 | .tar.gz |
Extract and run Install Studio Inventory.sh |
| Portable use | Platform ZIP | Extract and use the included launcher |
Existing inventory lives in the local data/ folder and is preserved by release installers. Create a Full Backup ZIP before any upgrade.
To stop the app, use Help & About → Stop Studio Inventory (or Stop Studio Inventory in the Windows Start menu). Closing the browser tab leaves the server running.
Platform guides: macOS · Linux · Wiki installation guide
- Start Studio Inventory on the host computer.
- Open Backup & Restore and set an owner PIN of at least six characters.
- Connect the phone or tablet to the same trusted Wi-Fi network.
- Open the LAN address shown by the app and enter the PIN.
Android Chrome/Edge and iPhone/iPad Safari support inventory editing and photo capture. Live barcode video requires HTTPS; the regular LAN address provides Take a Label Photo and signed QR links instead.
Important
Do not forward port 3847 to the internet. Normal LAN HTTP traffic is not encrypted. Use trusted WPA2/WPA3 Wi-Fi, HTTPS, or a VPN. Behind an HTTPS proxy with its own host name, add that name to STUDIO_ALLOWED_HOSTS (see SECURITY.md).
| Location | Contents |
|---|---|
data/inventory.db |
SQLite catalog |
data/uploads/ |
Photos, receipts, manuals, logos, software, and studio images |
data/manual-inbox/ |
Files waiting to be attached to an item |
data/backups/ |
Suggested destination for backup exports |
data/logs/ |
Server log (studio-inventory.log). Share links and PINs are masked. |
The app supports Full Backup ZIP, JSON, SQL, CSV, and PDF exports. Full Backup ZIP is the complete recovery format because it includes managed files as well as the database.
Important
If you turn on catalog encryption, the key is deliberately not stored in data/. It lives in the operating system's credential store — Windows DPAPI (%APPDATA%\Studio Inventory), the macOS Keychain, or libsecret on Linux — and belongs to your user account on that computer. Copying data/ to another machine is not enough to open an encrypted catalog there: keep the recovery key the app shows you, or restore from a Full Backup ZIP.
Studio Inventory keeps your catalog on your own computer. A few features can reach the internet, and the ones that send anything are off until you turn them on.
| Feature | Default | What leaves the computer |
|---|---|---|
| Version check | On | An HTTPS request for terkwerx.com/downloads/studio-inventory/latest.json at startup, cached for six hours. It asks for a file; it uploads nothing about you or your gear. Set STUDIO_SKIP_UPDATE_CHECK=1 to switch it off. |
| Brand logo lookups | Off | When enabled in Brands, the brand's website name goes to unavatar.io, Google and DuckDuckGo. The manual Fetch logo buttons work either way. |
| DYMO label printing | Off | When enabled in Owner Labels, the page loads DYMO's Connect framework from DYMO's own host. Left off, every script comes from this computer, and Print Selected (Browser) still prints the same labels. |
| Manual and installer downloads | On request | Only the address you paste. Addresses on your own computer or local network are refused unless you set STUDIO_ALLOW_PRIVATE_DOWNLOADS=1. |
| Guest links and QR labels | Off until created | Nothing is uploaded. Guest links are read-only and hide prices, receipts, notes and borrower details; a QR label opens only its own item. |
Nothing is sent to the project maintainers, and there is no analytics or crash reporting.
Requires Node.js 22 or newer.
git clone https://github.com/TerkWerX/STUDIO-INVENTORY.git
cd STUDIO-INVENTORY
npm install
npm startOpen http://localhost:3847. To explore with sample equipment, run npm run reseed before starting.
npm test # API, restore, security, and browser regression suite
npm run test:api # server and API tests
npm run test:browser # Playwright UI testsNode.js · Express · SQLite (better-sqlite3-multiple-ciphers, so the catalog can be encrypted at rest) · vanilla JavaScript modules · Playwright · local filesystem storage
There is no frontend build step. The server exposes the API and serves the responsive web app directly.
| Need | Go to |
|---|---|
| Learn the main workflows | Project wiki |
| Ask a question or share an idea | Discussions |
| Report a reproducible problem | Issues |
| Help improve the project | Contributing guide |
| Report a security concern | Security policy |
| Get installation help | Support guide |
Curious contributors are welcome. Documentation fixes, additional equipment profiles, accessibility improvements, browser testing, and thoughtful feature ideas are all useful.
MIT © 2026 TerkWerX

