A self-hosted, open-source inventory of everything you own and where it is.
Homes, garages and storage units; the rooms, shelves and boxes inside them; the things inside those, with receipts, manuals, warranties and history. Self-hosted, on your own server or homelab. Nothing leaves it unless you turn it on: no telemetry, the update check off by default, the AI provider yours to choose.
Nothing to install, nothing saved.
- Try Kept: the whole app, with a sample household.
- Try the map: the 3D map, with a sample home.
- Host it: Docker Compose or Kubernetes.
- List: names first, each with its type; a box says how much is inside; the amber tape only on things with a printed label.
- Map: each location in 3D: floors, rooms, shelves and boxes, what's inside one tap away. Arranged by you, or laid out by Kept. Plan view, balconies and terraces (the map).
- Graph: a location's places, boxes and things, in 2D or 3D.
Installs as an app. Capture, scan and search, offline too.
A short ID and a QR code for every box. Label-printer rolls or office-printer sheets; scan one to open the box.
- Inventory. Locations, places, boxes and things, with photos, documents, tags, custom fields, quantities, saved views, search, an archive for what you no longer use and a trash you can restore from.
- Capture. Photograph a thing, a receipt, a label or a whole room, online or offline; your AI provider (OpenAI, Anthropic, Google, OpenRouter, Groq, or an OpenAI-compatible server such as Ollama) suggests the details and you confirm them. Without one, you type them.
- Labels and scanning. Print label sheets with a short ID and a QR code; scan one to open the box it is on. Scan sessions count a shelf, pack a box or move a pile in one go.
- The household. Shared locations with roles, lending, kits that go out and come back as one, stocktakes, schedules, warranties, paperwork and an insurance report; reminders in the app, by mail, by push and in a calendar feed.
- Moving house. Numbered boxes, a label and a contents sheet for each, tracked in the van, unpacked by scanning (moving).
- Vehicles and machines. Readings, services, fuel and running costs.
- AI assistant and MCP server. Ask in plain words; changes wait for your OK. Claude and other
AI agents connect at
/mcp(how). - Backups you can read. Nightly restic backups to a directory, S3 or SFTP, each with a copy that opens in a browser without Kept; imports from Homebox (a past import can be repaired) and CSV, full exports.
- Your own network or HTTPS. Works over plain http at home; an export with secret values needs HTTPS.
- Five languages: English, Arabic (right to left), French, German and Italian.
Docker with Compose v2. Tested on 1 GB of RAM and one CPU core, a backup during photo uploads included; Kept and its database use about 200–400 MB (what was tested).
mkdir kept && cd kept
curl -fsSLO https://raw.githubusercontent.com/keptinventory/kept/v1.14.3/compose.yaml
docker compose run --rm init
docker compose up -dcompose.yaml: the whole stack in one file; no clone, no passwords to make.init: asks the address you'll open Kept at (a name such ashttp://kept.home.arpa:8080beats an IP address: printed labels carry it), writes.envand shows the setup code.- Start: the database, a one-shot bootstrap that makes the database logins and their
passwords, the one-shot
migrate, then Kept on port 8080 (KEPT_HTTP_PORTchanges it). - First run: open the address, enter the setup code, create the first account. It becomes
the instance admin. Then keep the keys off this server:
docker compose exec kept kept admin recovery-kitprints them.
The camera, installing the app, push and location need HTTPS:
docker compose --profile https up -d adds Caddy with a certificate for KEPT_DOMAIN, from
the Caddyfile in docker/caddy/ (HTTPS). Every step in full:
the install guide.
-
Home Assistant: on Home Assistant OS, Kept installs as an app with its own database, backed up with Home Assistant's backups (install as a Home Assistant app):
-
Kubernetes: the Helm chart,
oci://ghcr.io/keptinventory/charts/kept, signed and published with each release (install on Kubernetes). -
Verify the image:
cosign verify --key cosign.pub <image>:<version>, withcosign.pubfrom this repository (verifying a release). -
Backups: nightly, encrypted, to a directory, S3 or SFTP (backups).
- Home Assistant: the kept-homeassistant integration, a HACS custom repository (setup).
- Paperless-ngx: receipts, manuals and warranty cards linked to things (setup).
- The rest: integrations.
- Next: compartments on the 3D map
- Later: mobile and desktop apps · scan a room into the 3D map · storage furniture templates
Full roadmap → · 👍 the themes you want most.
| Documentation | keptinventory.info |
| Install | Docker Compose, HTTPS, Kubernetes (Helm chart in charts/kept), configuration |
| API | HTTP API reference, generated from the OpenAPI document |
| MCP | Connect an AI client |
| Roadmap | Now, next and later |
| Questions and ideas | Discussions |
| Chat | Discord |
| Contributing | CONTRIBUTING.md: a discussion or an issue first for anything larger than a fix; sign the CLA once |
| Security | SECURITY.md: report privately, never in a public issue |
| Changelog | CHANGELOG.md |
Kept is free software under the GNU Affero General Public License, version 3
(LICENSE), and every feature ships in it: nothing is held back. If you run a modified
Kept for other people, you must offer them its source. The image carries the third-party notices
of everything inside it, served at /notices.txt.




