Miroff95 downloadsFast inventory screen for items and stock positions: search, add, move, use up.
An Obsidian plugin for home inventory: tools, fasteners, filament, household things. Your data stays in plain markdown notes with properties. The plugin gives you a fast screen on top of them, so adding, finding and moving things takes seconds, also on a phone.
Works on desktop, tablet and phone (not desktop-only).
Inventory_Items/): what the thing is (id, kind, tags, price, photo). It has no quantity.Inventory_Positions/): how many units of an item sit where, and in which state (stored, installed, defective, consumed, disposed, or your own)._inventory_config/lists/): kinds, locations and tags, one note each.Everything lives in one base folder (default Inventory, changeable in the settings). Obsidian Bases tables are created for you.
#tag, place, state:name), item list, locations board with a photo and the stock for each place.fileclass) for the field forms of the item notes.On the first start the dashboard shows two steps: check the plugins, then Initialize to create the folders, tables and classes. Check structure in the settings compares the vault with what the plugin expects and fixes the differences you tick.
Until the plugin is in the community catalog, use BRAT and add this repository, or copy main.js, manifest.json and styles.css from a release into <vault>/.obsidian/plugins/inventory-ui/.
The tooling runs in Docker, so nothing is installed on the host.
docker compose build
docker compose run --rm build npm install
docker compose run --rm build npm run typecheck
docker compose run --rm build npm test
docker compose run --rm build npm run lint
docker compose run --rm build npm run build # production bundle
docker compose run --rm build npm run build:dev # dev bundle (adds the "Reload plugin" command)
docker compose up -d # watch mode
The code is split into a domain layer (src/domain, no Obsidian imports), the Obsidian adapters (src/obsidian) and the interface (src/ui).
Bump the version in manifest.json, package.json and package-lock.json, add the entry to versions.json, then push a tag equal to the version. The workflow builds the plugin, attests the files and creates a draft release: publish it by hand.