# Opencode Memory

> Persistent memory system with .memory.md, compaction, and cross-project sync

- Skill: `digi4care/opencode-memory` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add digi4care/opencode-memory`
- Raw SKILL.md: https://api.skillmd.com/api/skills/digi4care/opencode-memory/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: digi4care (https://skillmd.com/u/digi4care)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/digi4care/opencode-memory

---


# OpenCode Memory System

Persistent memory keeps useful project context available across sessions via the memory plugin, tools, hooks, and slash commands.

## Quick Commands

```text
/memory status                       Show memory health and indexing status
/memory sync [--force] [--verbose]   Index MEMORY.md and related sources
/memory compact                      Reduce memory size while preserving key context
/remember "text" [flags]            Store new memory with category/priority metadata
/recall "query" [flags]             Search memory with citations and relevance scores
/forget "query" [--force]           Remove a memory entry (confirmation by default)
```

See full command behavior and examples in `docs/MEMORY_USAGE.md`.

## Usage Patterns

### Starting a New Project

1. Run `/memory status` to confirm memory is enabled and healthy.
2. Add baseline context with `/remember "Project uses Bun + strict TypeScript" --category context`.
3. Continue saving decisions as they happen (architecture, standards, gotchas).

### Finding Past Decisions

Use targeted recall queries:

- `/recall "decision about auth provider"`
- `/recall "why vectorWeight 0.7" --source memory --min-score 0.3`

The expected result format is citation + score + preview, for example:

`MEMORY.md#L45-L52 (0.87): "Use verb routing for /memory commands to keep UX consistent..."`

### Cleaning Up and Maintenance

1. Run `/memory sync` after substantial MEMORY.md edits.
2. Run `/memory compact` when memory grows noisy or repetitive.
3. Use `/memory sync --force` if search quality drops after major edits.

## Best Practices

### Writing Effective Memories

- Be specific about what changed and why it matters.
- Include enough context to be reusable later.
- Prefer one clear memory per idea.

Good:

`Use memory_search as shared entry point for /recall and /forget to keep filters consistent.`

Too vague:

`Search was updated.`

### Use Categories Consistently

- `decision` for architecture choices and tradeoffs.
- `pattern` for repeatable implementation approaches.
- `correction` for fixes and lessons learned.
- `preference` for team/user style constraints.
- `context` for project facts and constraints.

### When to Use Priority

- `high`: security, production stability, irreversible decisions.
- `medium`: most implementation notes.
- `low`: temporary reminders and lightweight context.

### Organization Tips

- Use consistent wording for recurring topics to improve recall matches.
- Periodically compact to keep retrieval relevant.
- Prefer concise technical language over conversational phrasing.

## Integration Tips

- Memory commands are thin wrappers around plugin tools (`memory_status`, `memory_sync`, `memory_search`, `memory_remember`).
- Hooks automatically bootstrap and persist useful context at session boundaries.
- Configuration is shared through `opencode.config.yaml` and `src/lib/config/`, so memory behavior stays aligned with project-wide settings.
- Use this skill as quick guidance; use `docs/MEMORY_USAGE.md` for complete installation, configuration, troubleshooting, and workflow coverage.

---

**Difficulty**: ⭐⭐ (Intermediate)
**Complexity**: Medium (scripts + integration)
**Use Case**: Persistent context across sessions, project memory, cross-project knowledge

