Claude-skill-registry codecompanion-memory
Search and save conversation memories using semantic search. Use this skill when the user mentions past conversations, asks "do you remember", or when historical context from previous sessions would help solve the current problem.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/codecompanion-memory" ~/.claude/skills/majiayu000-claude-skill-registry-codecompanion-memory && rm -rf "$T"
skills/data/codecompanion-memory/SKILL.mdCodeCompanion Memory Skill
This skill provides access to a searchable history of previous conversations stored in a ChromaDB vector database. It supports both retrieving past conversations via semantic search and saving new conversation summaries.
The same database is shared between:
- Neovim (via codecompanion-history.nvim plugin)
- OpenCode (via this skill and the
command)/sum
When to Use This Skill
Invoke this skill when:
- User references past conversations: Phrases like "we discussed this before", "remember when", "last time we talked about"
- Recurring problems: The user encounters an issue that might have been solved previously
- Context would be helpful: Previous solutions, decisions, or architectural discussions could inform the current task
- User asks about their codebase: Questions about past work, project history, or previous implementations
- Building on previous work: Extending or modifying solutions from past conversations
Querying Memories
~/.config/opencode/skills/codecompanion-memory/query.sh --query "your search query"
Query Parameters
-
or--query TEXT
: The search query (required)-q TEXT- Use natural language
- Be specific but not too narrow
- Examples: "fixing Docker networking", "Go error handling patterns", "setting up ChromaDB"
-
or--count NUMBER
: Number of results to return (default: 5)-n NUMBER- More results = more context but also more noise
- Recommended: 3-5 for focused queries, 10+ for exploratory searches
-
or--verbose
: Show full document content-v- Without this flag, only previews (first 200 chars) are shown
- Use when you need to read the full conversation summary
-
or--project PATH
: Override default project root (default: ~/codecompanion-history/summaries)-p PATH -
or--help
: Show help message-h
Saving Memories
To save a new conversation summary:
echo 'YOUR_SUMMARY_MARKDOWN' | ~/.config/opencode/skills/codecompanion-memory/save-summary.sh --title "Title"
Save Parameters
or--title TEXT
: Title for the summary (optional but recommended)-t TEXT
or--dir PATH
: Override summaries directory (default: ~/codecompanion-history/summaries)-d PATH
or--help
: Show help message-h
The summary should be passed via stdin as markdown content.
Summary Format
When saving a summary, use this structure:
# Descriptive Title ## Date YYYY-MM-DD ## Project Context - **Working Directory**: /path/to/project - **Project Root**: /path/to/project ## Summary 2-3 paragraph summary of what was discussed and key decisions made. ## Key Topics - Topic 1 - Topic 2 ## Technical Details Important technical information, code patterns, or solutions. ## Code Changes List of files modified with brief descriptions. ## Outcome What was the result? Was the problem solved? ## Tags python, docker, authentication, bug-fix
Example Queries
Finding Past Solutions
# User: "I'm getting a CORS error, have we dealt with this before?" ~/.config/opencode/skills/codecompanion-memory/query.sh \ --query "CORS error HTTP request" \ --count 3
Architectural Decisions
# User: "What database did we choose for the user service?" ~/.config/opencode/skills/codecompanion-memory/query.sh \ --query "database choice user service" \ --count 5 \ --verbose
Code Patterns
# User: "How did I implement authentication last time?" ~/.config/opencode/skills/codecompanion-memory/query.sh \ --query "authentication implementation pattern" \ --count 3 \ --verbose
Output Format
Query results are displayed in order of relevance:
Searching in: /home/user/codecompanion-history/summaries Query: Arduino --- Result 1 --- Path: 1759511459.md Preview: ## Code Context **Files Modified**: ardoise.ino (main focus: refactoring BLE write logic)... --- Result 2 --- Path: 1759512219.md Preview: ## Code Context **Files Modified**: ardoise.ino (main Arduino sketch)...
Each result includes:
- Path: The markdown file containing the full conversation summary
- Preview/Document: Either a short preview or full content (with
)--verbose
You can read the full conversation summary files at:
~/codecompanion-history/summaries/<chat_id>.md
How It Works
User Query | Bash Script (query.sh) | VectorCode CLI | ChromaDB (local instance) | Semantic Search Results
The skill:
- Wraps the VectorCode CLI tool
- Queries a local ChromaDB database
- Uses semantic embeddings (SentenceTransformer)
- Returns results sorted by relevance
Database Information
- Database Location:
~/.local/share/vectorcode/chromadb/chroma.sqlite3 - Summaries:
~/codecompanion-history/summaries/*.md - Embedding Model: SentenceTransformer (all-MiniLM-L6-v2)
The database uses semantic embeddings, meaning:
- Queries find conceptually similar content, not just keyword matches
- Synonyms and related terms are automatically understood
- Context and meaning are preserved across different phrasings
Shared Between Neovim and OpenCode
Summaries from both sources are stored in the same location:
- Neovim (codecompanion-history.nvim): Uses the
keymap to generate summariesgcs - OpenCode: Uses the
command to generate summaries/sum
Both are indexed by VectorCode and searchable from either environment.
Dependencies
: Shell interpreterbash
: For JSON parsing in the query scriptpython3
: CLI tool for querying/indexing ChromaDBvectorcode
Installing VectorCode
If VectorCode is not installed:
# Using pipx (recommended) pipx install vectorcode # Or using uv uv tool install vectorcode # Or using pip pip install --user vectorcode # Verify installation which vectorcode
Troubleshooting
"vectorcode command not found"
# Install VectorCode pipx install vectorcode # Or check installation which vectorcode
"No results found"
- Try broader queries: "Docker" instead of "Docker Compose networking with custom bridge"
- Check if conversations are indexed:
ls ~/codecompanion-history/summaries/ - Verify database exists:
ls ~/.local/share/vectorcode/chromadb/ - Re-index summaries:
cd ~/codecompanion-history/summaries && vectorcode vectorise --pipe *.md
VectorCode configuration
If you have a ChromaDB Docker container and want VectorCode to use it, create:
# ~/codecompanion-history/summaries/.vectorcode.toml [default] db_url = "http://localhost:8001" db_path = ""
Note: The skill works fine with VectorCode's default local database.
Best Practices
- Start broad, then narrow: Begin with general queries, then refine based on results
- Use verbose mode selectively: Only when you need full context to answer the user's question
- Combine with code search: This skill finds conversations; use code search tools to find actual implementations
- Cite your sources: Tell the user which conversation(s) you found the information in
- Verify information: Past solutions might be outdated; always validate before applying
Example Workflow
User: "I'm stuck on the same authentication bug we had last month" Step 1: Search for relevant conversations $ ./query.sh --query "authentication bug fix" --count 5 Step 2: Review results, identify the most relevant conversation > Result 3 seems most relevant (Path: 1763841695.md) Step 3: Read full summary if needed $ cat ~/codecompanion-history/summaries/1763841695.md Step 4: Apply the solution or adapt it to current context Step 5: Inform user > "I found a similar issue we solved in conversation 1763841695. The problem was related to session token expiration. Here's what we did..."
Status: Production ready
Location:
~/.config/opencode/skills/codecompanion-memory/Last Updated: 2026-01-20