basic-memory-pi-setup
Set up Basic Memory for a Pi workspace. Use when Basic Memory is not configured, /bm-status…
How to write well-structured Basic Memory notes: frontmatter, observations with semantic categories, relations with wiki-links, and best practices for building a rich knowledge graph. Use when creating or improving notes.
$ npx -y skills add basicmachines-co/basic-memory --skill memory-notes --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/memory-notesContext preview
The summary Claude sees to decide when to auto-load this skill.
How to write well-structured Basic Memory notes: frontmatter, observations with semantic categories, relations with wiki-links, and best practices for building a rich knowledge graph. Use when creating or improving notes.
name: memory-notes description: "How to write well-structured Basic Memory notes: frontmatter, observations with semantic categories, relations with wiki-links, and best practices for building a rich knowledge graph. Use when creating or improving notes."
Write well-structured notes that Basic Memory can parse into a searchable knowledge graph. Every note is a markdown file with three key sections: frontmatter, observations, and relations.
--- title: API Design Decisions tags: [api, architecture, decisions] --- # API Design Decisions The API team evaluated multiple approaches for the public API during Q1. After prototyping both REST and GraphQL, the team chose REST due to broader ecosystem support and simpler caching semantics. This note captures the key decisions and their rationale, along with open questions still to resolve. ## Observations - [decision] Use REST over GraphQL for simplicity #api - [requirement] Must support versioning from day one - [risk] Rate limiting needed for public endpoints ## Relations - implements [[API Specification]] - depends_on [[Authentication System]] - relates_to [[Performance Requirements]]
Every note starts with YAML frontmatter:
--- title: Note Title # required — becomes the entity name in the knowledge graph tags: [tag1, tag2] # optional — for organization and filtering type: note # optional — defaults to "note", use custom types with schemas permalink: custom-path # optional — auto-generated from title if omitted ---
> **Note:** When using `write_note`, you don't write frontmatter yourself. The `title`, `tags`, `note_type`, and `metadata` are separate parameters — Basic Memory generates the frontmatter automatically. Your `content` parameter is just the markdown body starting with `# Heading`.
Free-form markdown between the heading and the Observations section. This is the heart of the note — write generously here:
Write complete, substantive prose. Basic Memory's search retrieves relevant chunks from note bodies, so longer, richer context makes notes more discoverable and more useful when found. Don't reduce everything to bullet points — tell the story.
Observations are categorized facts — the atomic units of knowledge. Each one becomes a searchable entity in the knowledge graph.
- [category] Content of the observation #optional-tag
The category in brackets is free-form — use whatever label makes sense for the observation. There is no fixed list. The only rule is the `[category] content` syntax. Consistency within a project helps searchability, but invent categories freely.
A few examples to illustrate the range:
- [decision] Use PostgreSQL for primary data store - [risk] Third-party API has no SLA guarantee - [technique] Exponential backoff for retry logic #resilience - [question] Should we support multi-tenancy at the DB level? - [preference] Use Bun over Node for new projects - [lesson] Always validate webhook signatures server-side - [status] active - [flavor] Ethiopian beans work best with lighter roasts
Relations create edges in the knowledge graph, linking notes to each other. They're how you build structure beyond individual notes.
- relation_type [[Target Note Title]]
| Type | Purpose | Example | |------|---------|---------| | `implements` | One thing implements another | `- implements [[Auth Spec]]` | | `requires` | Dependencies | `- requires [[Database Setup]]` | | `relates_to` | General connection | `- relates_to [[Performance Notes]]` | | `part_of` | Hierarchy/composition | `- part_of [[Backend Architecture]]` | | `extends` | Enhancement or elaboration | `- extends [[Base Config]]` | | `pairs_with` | Things that work together | `- pairs_with [[Frontend Client]]` | | `inspired_by` | Source material | `- inspired_by [[CRDT Research Paper]]` | | `replaces` | Supersedes another note | `- replaces [[Old Auth Design]]` | | `depends_on` | Runtime/b
AI conversations that actually remember. Never re-explain your project to your AI again. Join our Discord: https://discord.gg/tyvKNccgqN
Repo: basicmachines-co/basic-memory
Set up Basic Memory for a Pi workspace. Use when Basic Memory is not configured, /bm-status…
Use Basic Memory from Pi for durable continuity. Capture checkpoints with bm_capture, recall…
Guide Basic Memory setup in Tau. Use when a user wants to install or configure the Tau memory…
Save a deliberate work checkpoint to Basic Memory with the story, changed files,…
Capture a durable engineering decision in Basic Memory with rationale, alternatives,…
Orient Claude from Basic Memory before substantial repo work by reading active tasks, open…