Skip to content
nikushiksPublic

About

A calm, AI-organised place to save everything. Self-hosted, open-source alternative to mymind. Fork of Karakeep.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

2,334 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nom cat

Nom

A calm, private, AI-organised place to save everything.

Nom is a personal, single-user library for links, notes, images, PDFs and videos, inspired by mymind. Save first; find it later with tags, summaries, colours and semantic search. Run it on your own server and choose your AI provider.

  • An image-first Everything view, quick notes, paste-link capture and drag/drop.
  • AI tags and TLDRs, with structured fields for articles, recipes, products, places and videos. Tags stay in English; summaries follow the content language.
  • Manual Spaces and Smart Spaces built from saved searches.
  • Top of Mind pins, Serendipity resurfacing, recoverable Trash and duplicate bumping.
  • A standalone PWA, a buildable browser extension and an Expo iOS app with sharing.
  • Your own SQLite database and assets, import/export and optional backups.

AI enrichment sends saved content to the provider you configure. Your collection and account live on your server; there is no Nom subscription or shared workspace.

Everything in Nom

A saved recipe with its structured fields Spaces and a Smart Space

More screenshots, taken from real public links saved through Nom's own pipeline, and how to regenerate them, are in docs/nom/screens/readme.

Architecture

flowchart LR
  Clients[Web / PWA / extension / iOS] --> Web[Next.js UI + Hono/tRPC API]
  Web --> Disk[SQLite + assets + SQLite queue]
  Web --> Search[Meilisearch]
  Workers[Background workers] <--> Disk
  Workers --> Chrome[Headless Chrome / persistent profile]
  Workers --> AI[OpenAI-compatible AI + embeddings]
  Workers --> Search
Loading

Web and workers run in the same all-in-one container. Chrome and Meilisearch are sidecars. Persistent local disk is required; the app is not a serverless deployment.

Quick start

Requires Git, Docker Engine and Docker Compose v2.24.4+ already installed. This starts a local installation at http://localhost:3100. For a remote server, use an SSH tunnel first and configure HTTPS before PWA use. The prebuilt image ghcr.io/nikushiks/nom is not public yet, so build it locally until it is (this is a substantial build; see INSTALL.md).

export NOM_REPOSITORY_URL="${NOM_REPOSITORY_URL:-https://github.com/nikushiks/nom.git}"
git clone "$NOM_REPOSITORY_URL" nom
cd nom
docker buildx build --load -f docker/Dockerfile --target aio -t nom-local:install .
cd deploy
cp .env.example .env
chmod 600 .env
python3 -c 'import pathlib,secrets; p=pathlib.Path(".env"); s=p.read_text(); s=s.replace("NEXTAUTH_SECRET=\n", "NEXTAUTH_SECRET="+secrets.token_hex(32)+"\n").replace("MEILI_MASTER_KEY=\n", "MEILI_MASTER_KEY="+secrets.token_hex(32)+"\n"); p.write_text(s)'
${EDITOR:-vi} .env   # set NOM_IMAGE=nom-local:install (the image built above)
docker compose config --quiet
docker compose up -d
curl --fail --retry 30 --retry-connrefused --retry-delay 2 http://localhost:3100/api/health

In the editor, supply OPENAI_API_KEY locally, or disable AI and auto-indexing until you have a key. Create the first account (it becomes admin), then set DISABLE_SIGNUPS=true and run docker compose up -d --no-deps web. Keep this account creation private until signups are locked. Never publish .env.

Install and operate

Development requires Node 24 and pnpm 11.2.1. Run pnpm install, then pnpm typecheck, pnpm lint, pnpm format, and the package tests documented in AGENTS.md. Preserve the thin fork layer when syncing upstream.

Built on Karakeep

Nom is a modified fork of Karakeep, with thanks to its contributors and Localhost Labs. Upstream notices and the AGPL-3.0 licence remain in the repository. Nom adds its interface, cat assets and personal library features; upstream package names are retained. Fonts, demo images and other third-party material are credited in NOTICE.md.

The code is AGPL-3.0. The Nom name and the cobalt cat artwork are not: the artwork is © 2026 nikushiks, all rights reserved, except use, unmodified, in builds of Nom, and the name and logo may not be used for other products or forks, which must use their own: see NOTICE.md.

A running instance offers Settings → Source. Operators set NOM_SOURCE_URL to the complete source of their exact running revision, including modifications, using a public revision URL or a source archive. The default points to Nom's public repository; update it when running your own fork. Source publication must exclude credentials, account data, browser profiles and local-only files listed in INSTALL.md.

About

A calm, AI-organised place to save everything. Self-hosted, open-source alternative to mymind. Fork of Karakeep.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages