Core concepts

Team Memory

Knowit is local-first. Project memory is a JSONL file you review in version control like source code — and a shared SQLite path covers everything else.

Git-reviewed JSONL

In project scope, .knowit/knowledge.jsonl is the canonical memory file. Because it's line-delimited JSON, every added rule or decision shows up as a clean diff. The workflow is the one your team already has:

  • An agent (or a teammate) stores a new decision during a session.
  • The change appears in .knowit/knowledge.jsonl and goes into the same branch and pull request as the code it explains.
  • Reviewers see the memory change next to the code change and approve both.
  • On pull, every teammate — and every agent they run — gets the updated memory automatically.

Migrating from SQLite projects

Existing projects with .knowit/knowit.db are migrated automatically on first project-scope initialization when .knowit/knowledge.jsonl does not exist. You can also run the conversion explicitly:

Terminal
$ knowit migrate-storage --sqlite-path .knowit/knowit.db --dry-run
$ knowit migrate-storage --sqlite-path .knowit/knowit.db

The command writes .knowit/knowledge.jsonl and .knowit/sources.json. It refuses to overwrite existing targets unless you pass --force.

Shared SQLite database

For private global memory, or a shared database that lives outside any repo, point everyone at the same SQLite database path:

Terminal
$ KNOWIT_DB_PATH=/shared/team/knowit.db npx knowit install --scope global --client claude

Every developer and every agent then reads and writes the same durable memory source — without adding a hosted dependency.