Skip to content
Docs menu

Concepts

Projects & tags

Projects keep memories of different codebases apart; tags group them by topic across projects.

Projects

Every record belongs to a project. If you do not pass one, it goes to general.

  • Use one project name per codebase or product, for example my-api or billing-service. Keep the spelling stable; my-api and my_api are two different projects.
  • Pass project to memory_recall to search one project. Leave it out to search everything.
  • Sessions are per project: session_init with project="my-api" returns the last handover for that project only.
  • Many hooks and agents fill the project from the current directory name.

Tags

Tags are free-form labels: database, auth, ci, incident-2026-09.

  • Find everything with a tag using memory_search_by_tag.
  • Tag reusable recipes with reusable plus the technology (["reusable", "postgres"]). Cross-project tools such as analogize surface them for sibling projects.
  • A few tags are used internally. Records tagged recovery or auto-extract are hidden from recall unless you ask for them (see MEMORY_RECALL_EXCLUDED_TAGS in Configuration).

Branches

memory_save also accepts a branch: the git branch a note relates to. It is useful for notes that stop being true once a feature branch is merged or abandoned.

On a team server

On a team server, access is controlled by scope (personal, team or shared), not by projects or tags. Projects and tags still organise records inside each scope. The tags scope:…, team:… and user:… are reserved and managed by the server.

Found a mistake? Open an issue on GitHub.

Search