@carson2222/opencode-memory

>

View in AI SkillSafe app
Scanned · no findings
0 downloads
0 stars
0 demos
SKILL.md
nameopencode-memory
description>
licenseApache-2.0
compatibilityopencode

OpenCode Memory Browser

Read-only lookup for local OpenCode history. Use it only when prior sessions, plans, or decisions would help. Do not inject history by default.

Use When

  • User asks for history, previous sessions, last time, plans, recall, or memory.
  • Resuming a project where prior OpenCode context may matter.
  • Debugging a repeat issue that may have appeared earlier.

Do not use when repo files/git already answer the question or the task is new.

Rules

  • Read-only. Never modify OpenCode DB/files.
  • Use sqlite3 with read-only URI. Do not read the DB with file-read tools.
  • Keep results small with LIMIT and targeted LIKE.
  • Summarize relevant findings; do not dump raw history.
  • Avoid auth/provider tables: account, credential, control_account, account_state.

Setup

Run this first in bash:

DATA_ROOT="${XDG_DATA_HOME:-$HOME/.local/share}/opencode"
STATE_ROOT="${XDG_STATE_HOME:-$HOME/.local/state}/opencode"
DB="$(opencode db path 2>/dev/null || true)"
[ -n "$DB" ] || DB="${OPENCODE_DB:-$DATA_ROOT/opencode.db}"
case "$DB" in :memory:|/*) ;; *) DB="$DATA_ROOT/$DB" ;; esac
if [ ! -f "$DB" ]; then
  for candidate in "$DATA_ROOT"/opencode*.db; do
    [ -f "$candidate" ] && DB="$candidate" && break
  done
fi
DB_URI="file:${DB}?mode=ro"

Useful files:

  • Plans: $DATA_ROOT/plans/*.md
  • Prompt history: $STATE_ROOT/prompt-history.jsonl
  • Session diffs: $DATA_ROOT/storage/session_diff/<session-id>.json

Queries

Summary

sqlite3 "$DB_URI" "
  SELECT 'projects', COUNT(*) FROM project
  UNION ALL SELECT 'main sessions', COUNT(*) FROM session WHERE parent_id IS NULL
  UNION ALL SELECT 'messages', COUNT(*) FROM message
  UNION ALL SELECT 'parts', COUNT(*) FROM part
  UNION ALL SELECT 'todos', COUNT(*) FROM todo;
"

Recent sessions

sqlite3 "$DB_URI" "
  SELECT s.id, COALESCE(s.title, 'untitled') AS title,
    COALESCE(p.name, p.worktree, '') AS project,
    datetime(s.time_updated/1000, 'unixepoch', 'localtime') AS updated,
    (SELECT COUNT(*) FROM message m WHERE m.session_id = s.id) AS messages
  FROM session s
  LEFT JOIN project p ON p.id = s.project_id
  WHERE s.parent_id IS NULL
  ORDER BY s.time_updated DESC
  LIMIT 10;
"

Search text

Replace SEARCH_TERM first.

sqlite3 "$DB_URI" "
  SELECT s.id, COALESCE(s.title, 'untitled') AS title,
    json_extract(m.data, '$.role') AS role,
    datetime(m.time_created/1000, 'unixepoch', 'localtime') AS time,
    substr(json_extract(p.data, '$.text'), 1, 200) AS snippet
  FROM part p
  JOIN message m ON m.id = p.message_id
  JOIN session s ON s.id = m.session_id
  WHERE s.parent_id IS NULL
    AND json_extract(p.data, '$.type') = 'text'
    AND json_extract(p.data, '$.text') LIKE '%SEARCH_TERM%'
  ORDER BY m.time_created DESC
  LIMIT 10;
"

Read session text

Replace SESSION_ID_HERE first. Text parts only; use the reference for tool, patch, file, reasoning, or V2 internals.

sqlite3 "$DB_URI" "
  SELECT json_extract(m.data, '$.role') AS role,
    datetime(m.time_created/1000, 'unixepoch', 'localtime') AS time,
    GROUP_CONCAT(json_extract(p.data, '$.text'), char(10)) AS text
  FROM message m
  LEFT JOIN part p ON p.message_id = m.id
    AND json_extract(p.data, '$.type') = 'text'
  WHERE m.session_id = 'SESSION_ID_HERE'
  GROUP BY m.id
  ORDER BY m.time_created ASC
  LIMIT 50;
"

Plans And Prompt History

ls -lt "$DATA_ROOT"/plans/*.md 2>/dev/null | head -20
tail -20 "$STATE_ROOT"/prompt-history.jsonl 2>/dev/null

Prompt history entries currently use input, mode, and parts[]; do not assume root text.

Deep Reference

Use references/storage-format.md only when you need table details, part/tool shapes, legacy JSON paths, or debug queries.

Embed badges

Add these to your README to show the skill's verification status.

SkillSafe verified badge
Verified badge
[![SkillSafe verified badge](https://api.skillsafe.ai/v1/badge/@carson2222/opencode-memory/verified)](https://skillsafe.ai/skill/@carson2222/opencode-memory/)
Installs badge
Installs badge
[![Installs badge](https://api.skillsafe.ai/v1/badge/@carson2222/opencode-memory/installs)](https://skillsafe.ai/skill/@carson2222/opencode-memory/)
Scan badge
Scan badge
[![Scan badge](https://api.skillsafe.ai/v1/badge/@carson2222/opencode-memory/scan)](https://skillsafe.ai/skill/@carson2222/opencode-memory/)
Eval pass rate badge
Eval pass rate
[![Eval pass rate badge](https://api.skillsafe.ai/v1/badge/@carson2222/opencode-memory/eval)](https://skillsafe.ai/skill/@carson2222/opencode-memory/)