Use AI DevKit memory via CLI commands. Search before non-trivial work, store verified reusable knowledge, update stale entries, and avoid saving transcripts, secrets, or one-off task progress.
Use npx ai-devkit@latest memory ... as the durable knowledge layer.
For implementation, debugging, review, planning, or documentation tasks, search before deep work unless the task is trivial:
npx ai-devkit@latest memory search --query "<task, subsystem, error, or convention>" --limit 5
For broad or risky tasks, search multiple angles: subsystem, error text, framework, command, and task intent.
Use results as context:
Search before storing:
npx ai-devkit@latest memory search --query "<knowledge to store>" --table
Store or update only after the quality gate passes.
Before storing, all must be true:
Store:
Do not store:
npx ai-devkit@latest memory search \
--query "<query>" \
--tags "<tags>" \
--scope "<scope>" \
--limit 5
Use --table to get IDs for updates:
npx ai-devkit@latest memory search --query "<query>" --table
Options: --query/-q required; --tags; --scope/-s; --limit/-l from 1-20; --table.
npx ai-devkit@latest memory store \
--title "<actionable title, 10-100 chars>" \
--content "<context, guidance, evidence, exceptions>" \
--tags "<lowercase,tags>" \
--scope "<global|project:name|repo:org/repo>"
Use this content shape when helpful:
Context: Where this applies.
Guidance: What to do.
Evidence: File, command, test, or user instruction.
Exceptions: When not to apply it.
Find the ID with search --table, then update only changed fields:
npx ai-devkit@latest memory update \
--id "<memory-id>" \
--title "<updated title>" \
--content "<updated content>" \
--tags "<replacement,tags>" \
--scope "<updated scope>"
--tags replaces all existing tags.
Use the narrowest useful scope:
repo:<org/repo> for one repository.project:<name> for one app, product, or workspace.global only for knowledge that applies across unrelated projects.If unsure, use a narrower scope.
npx ai-devkit@latest --version.--limit range.~/.ai-devkit/memory.db; project config can override it automatically.