kept
Health Warn
- License — License: AGPL-3.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Fail
- process.env — Environment variable access in apps/docs/astro.config.mjs
- spawnSync — Synchronous process spawning in apps/docs/scripts/try-app.ts
- process.env — Environment variable access in apps/docs/scripts/try-app.ts
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Self-hosted, open-source inventory of everything you own and where it is. AI assistant and MCP server built in.
A self-hosted, open-source inventory of everything you own and where it is,
with its paperwork and its history.
Try Kept · Try the map · Host it · Docs
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.
Try it in your browser
Nothing to install, nothing saved.
- Try Kept: the whole app, with a sample household.
- Try the map: the 3D map, with a sample home.
A look around
The location map
Each location as a 3D map: floors, rooms, shelves and boxes, what's inside one tap away. Arranged
by you, or laid out by Kept. Plan view, balconies and terraces, phones included
(the map).
On a phone
Installs as an app. Capture, scan and search, offline too.
A thing
A short ID, where it is down to the box, its details, paperwork, value, loans and history.
Labels
A short ID and a QR code for every box. Label-printer rolls or office-printer sheets; scan one to
open the box.
What it does
- Inventory. Locations, places, boxes and things, with photos, documents, tags, custom fields,
quantities, saved views, search and a trash you can restore from. - Capture. Photograph a thing, a receipt or a label, 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. Print label sheets with a short ID and a QR code; scan one to open the box it is on.
- The household. Shared locations with roles, lending, 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 and CSV, full exports. - Five languages: English, Arabic (right to left), French, German and Italian.
Quick start: host it
Docker with Compose v2, on a machine with at least 2 GB of RAM and 2 CPU cores
(what it needs).
git clone --branch v1.10.6 --depth 1 https://github.com/keptinventory/kept.git && cd kept
cp compose.env.example .env
for v in SUPERUSER OWNER APP AUTH SYSTEM; do
sed -i.bak "s/^KEPT_DB_${v}_PASSWORD=\$/KEPT_DB_${v}_PASSWORD=$(openssl rand -hex 32)/" .env
done
sed -i.bak 's|^KEPT_IMAGE=$|KEPT_IMAGE=ghcr.io/keptinventory/kept:1.10.6|' .env && rm .env.bak
# Set KEPT_PUBLIC_URL in .env to the address you will open, e.g. http://<this host>:8080
docker compose pull
docker compose up -d
docker compose logs kept | grep "KEPT SETUP CODE"
.env: five generated database passwords, the released image, andKEPT_PUBLIC_URL:
exactly the address the browser shows (links and QR codes are built from it).- Start: the database, then the one-shot
migrate, then Kept on port 8080
(KEPT_HTTP_PORTchanges it). - First run: open
KEPT_PUBLIC_URL, enter the setup code from the log, create the first
account. It becomes the instance admin. - Keep the keys:
docker compose exec kept kept admin recovery-kitprints them. Store them
off this server: a backup restores secret values only with the key.
The camera, installing the app, push and location need HTTPS:docker compose --profile https up -d adds Caddy with a certificate for KEPT_DOMAIN
(HTTPS). Every step in full:
the install guide.
- 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).
Works with
- 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.
Links
| 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 | What's planned, in progress and shipped |
| Questions and ideas | Discussions |
| Contributing | CONTRIBUTING.md: a discussion or an issue first for anything larger than a fix; the CLA once, a sign-off on every commit |
| Security | SECURITY.md: report privately, never in a public issue |
| Changelog | CHANGELOG.md |
Licence
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.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found
