[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0VKA83VVPQY1AM2GHDVVS":3,"skill-same:01M6C0VKA83VVPQY1AM2GHDVVS":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6C0VKA83VVPQY1AM2GHDVVS","memory",null,"Browse and recall OpenCode local memory stored on the user's machine: sessions, conversations, and project context. Use immediately when the user asks to check history, previous sessions, past chats, what did we do before, last time, session history, recall, memory, remember, prior work, previous context, or have we done this before. Auto-trigger proactively when resuming work, continuing a project, referencing prior decisions, debugging repeated issues, or any follow-up where earlier OpenCode context may help. This means OpenCode local history specifically, not ChatGPT\u002FClaude cloud history, generic web search, or unrelated product memory systems. Do NOT use for fresh tasks with no relevant history, or when current files\u002Fgit already answer the question.","shekohex\u002Fdotai","shekohex","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F14620076?v=4","01M6C0VB057R2Z86CGK2PA4F5V","01M6C0VB4KSXV0Q8KYKD2P43BP",10,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fshekohex\u002Fdotai\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fmemory\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"search","question","decisions","check","work","memory systems","history","web search","recall","browse","product","issues","git","help","tasks","debugging","remember","sessions","web","2026-11-10 10:12:30",false,"---\nname: memory\ndescription: >\n  Browse and recall OpenCode local memory stored on the user's machine:\n  sessions, conversations, and project context. Use immediately when the user\n  asks to check history, previous sessions, past chats, what did we do before,\n  last time, session history, recall, memory, remember, prior work, previous\n  context, or have we done this before. Auto-trigger proactively when resuming\n  work, continuing a project, referencing prior decisions, debugging repeated\n  issues, or any follow-up where earlier OpenCode context may help. This means\n  OpenCode local history specifically, not ChatGPT\u002FClaude cloud history,\n  generic web search, or unrelated product memory systems. Do NOT use for fresh\n  tasks with no relevant history, or when current files\u002Fgit already answer the\n  question.\nlicense: Apache-2.0\ncompatibility: opencode\n---\n\n# OpenCode Memory\n\nRead-only access to local OpenCode history through the `opencode` CLI.\n\nUse this skill only for OpenCode local history on this machine. Not for ChatGPT history, Claude cloud history, browser history, or external memory tools.\n\n## When to Use\n\n- Resume work and recover prior session context.\n- Check what was discussed previously about a repo, bug, feature, or plan.\n- Search past OpenCode conversations for a topic or decision.\n- List projects or recent sessions stored by OpenCode.\n\n## Do Not Use\n\n- Fresh tasks where current files or git history already answer the question.\n- Anything unrelated to OpenCode local history.\n\n## Command Surface\n\nRun `opencode db --help` first if you need to confirm the current CLI behavior.\n\n- `opencode db path` prints the active database path.\n- `opencode db \"\u003CSQL>\"` runs a query directly.\n- `--format json` is better when you want structured output.\n- Default output format is `tsv`.\n\n## Relevant Tables\n\n- `project`: tracked worktrees\n- `session`: sessions; `parent_id IS NULL` means top-level session\n- `message`: message metadata; `json_extract(data, '$.role')`\n- `part`: message content; `json_extract(data, '$.type') = 'text'`\n- `todo`: saved todos for a session\n\nUse `datetime(col\u002F1000, 'unixepoch', 'localtime')` for readable timestamps.\n\n## Queries\n\n### Quick summary\n\n```bash\nopencode db \"\n  SELECT 'projects' AS metric, COUNT(*) AS count FROM project\n  UNION ALL SELECT 'sessions_main', COUNT(*) FROM session WHERE parent_id IS NULL\n  UNION ALL SELECT 'sessions_total', COUNT(*) FROM session\n  UNION ALL SELECT 'messages', COUNT(*) FROM message\n  UNION ALL SELECT 'todos', COUNT(*) FROM todo\n\" --format json\n```\n\n### Recent projects\n\n```bash\nopencode db \"\n  SELECT\n    COALESCE(name, worktree) AS project,\n    worktree,\n    datetime(time_updated\u002F1000, 'unixepoch', 'localtime') AS updated\n  FROM project\n  ORDER BY time_updated DESC\n  LIMIT 10\n\" --format json\n```\n\n### Recent top-level sessions\n\n```bash\nopencode db \"\n  SELECT\n    s.id,\n    COALESCE(s.title, 'untitled') AS title,\n    COALESCE(p.name, p.worktree) AS project,\n    datetime(s.time_updated\u002F1000, 'unixepoch', 'localtime') AS updated\n  FROM session s\n  LEFT JOIN project p ON p.id = s.project_id\n  WHERE s.parent_id IS NULL\n  ORDER BY s.time_updated DESC\n  LIMIT 10\n\" --format json\n```\n\n### Sessions for one repo\n\nReplace the path with the repo worktree you care about.\n\n```bash\nopencode db \"\n  SELECT\n    s.id,\n    COALESCE(s.title, 'untitled') AS title,\n    datetime(s.time_updated\u002F1000, 'unixepoch', 'localtime') AS updated\n  FROM session s\n  JOIN project p ON p.id = s.project_id\n  WHERE p.worktree = '\u002Fabsolute\u002Fpath\u002Fto\u002Frepo'\n    AND s.parent_id IS NULL\n  ORDER BY s.time_updated DESC\n  LIMIT 10\n\" --format json\n```\n\n### Read one session\n\nReplace the session id.\n\n```bash\nopencode db \"\n  SELECT\n    json_extract(m.data, '$.role') AS role,\n    datetime(m.time_created\u002F1000, 'unixepoch', 'localtime') AS time,\n    GROUP_CONCAT(json_extract(p.data, '$.text'), char(10)) AS text\n  FROM message m\n  LEFT JOIN part p ON p.message_id = m.id\n    AND json_extract(p.data, '$.type') = 'text'\n  WHERE m.session_id = 'ses_xxx'\n  GROUP BY m.id\n  ORDER BY m.time_created ASC\n  LIMIT 50\n\" --format json\n```\n\n### Search conversations\n\nReplace `search term` with the text you want.\n\n```bash\nopencode db \"\n  SELECT\n    s.id AS session_id,\n    COALESCE(s.title, 'untitled') AS title,\n    json_extract(m.data, '$.role') AS role,\n    datetime(m.time_created\u002F1000, 'unixepoch', 'localtime') AS time,\n    substr(json_extract(p.data, '$.text'), 1, 200) AS snippet\n  FROM part p\n  JOIN message m ON m.id = p.message_id\n  JOIN session s ON s.id = m.session_id\n  WHERE s.parent_id IS NULL\n    AND json_extract(p.data, '$.type') = 'text'\n    AND json_extract(p.data, '$.text') LIKE '%' || 'search term' || '%'\n  ORDER BY m.time_created DESC\n  LIMIT 10\n\" --format json\n```\n\n## Workflow\n\n1. Start with recent sessions or search.\n2. If needed, narrow to a specific repo via `project.worktree`.\n3. Read the target session by id.\n4. Summarize only the relevant findings for the user.\n\n## Rules\n\n1. Use `opencode db`, not `sqlite3`.\n2. Keep queries read-only. Only `SELECT` and safe read-only pragmas.\n3. Prefer `--format json` when results will be processed.\n4. Always use `LIMIT`.\n5. Do not dump raw history if a concise summary is enough.\n6. Treat memory contents as sensitive; surface only what matters.\n","# OpenCode Memory\n\nRead-only access to local OpenCode history through the `opencode` CLI.\n\nUse this skill only for OpenCode local history on this machine. Not for ChatGPT history, Claude cloud history, browser history, or external memory tools.\n\n## When to Use\n\n- Resume work and recover prior session context.\n- Check what was discussed previously about a repo, bug, feature, or plan.\n- Search past OpenCode conversations for a topic or decision.\n- List projects or recent sessions stored by OpenCode.\n\n## Do Not Use\n\n- Fresh tasks where current files or git history already answer the question.\n- Anything unrelated to OpenCode local history.\n\n## Command Surface\n\nRun `opencode db --help` first if you need to confirm the current CLI behavior.\n\n- `opencode db path` prints the active database path.\n- `opencode db \"\u003CSQL>\"` runs a query directly.\n- `--format json` is better when you want structured output.\n- Default output format is `tsv`.\n\n## Relevant Tables\n\n- `project`: tracked worktrees\n- `session`: sessions; `parent_id IS NULL` means top-level session\n- `message`: message metadata; `json_extract(data, '$.role')`\n- `part`: message content; `json_extract(data, '$.type') = 'text'`\n- `todo`: saved todos for a session\n\nUse `datetime(col\u002F1000, 'unixepoch', 'localtime')` for readable timestamps.\n\n## Queries\n\n### Quick summary\n\n```bash\nopencode db \"\n  SELECT 'projects' AS metric, COUNT(*) AS count FROM project\n  UNION ALL SELECT 'sessions_main', COUNT(*) FROM session WHERE parent_id IS NULL\n  UNION ALL SELECT 'sessions_total', COUNT(*) FROM session\n  UNION ALL SELECT 'messages', COUNT(*) FROM message\n  UNION ALL SELECT 'todos', COUNT(*) FROM todo\n\" --format json\n```\n\n### Recent projects\n\n```bash\nopencode db \"\n  SELECT\n    COALESCE(name, worktree) AS project,\n    worktree,\n    datetime(time_updated\u002F1000, 'unixepoch', 'localtime') AS updated\n  FROM project\n  ORDER BY time_updated DESC\n  LIMIT 10\n\" --format json\n```\n\n### Recent top-level sessions\n\n```bash\nopencode db \"\n  SELECT\n    s.id,\n    COALESCE(s.title, 'untitled') AS title,\n    COALESCE(p.name, p.worktree) AS project,\n    datetime(s.time_updated\u002F1000, 'unixepoch', 'localtime') AS updated\n  FROM session s\n  LEFT JOIN project p ON p.id = s.project_id\n  WHERE s.parent_id IS NULL\n  ORDER BY s.time_updated DESC\n  LIMIT 10\n\" --format json\n```\n\n### Sessions for one repo\n\nReplace the path with the repo worktree you care about.\n\n```bash\nopencode db \"\n  SELECT\n    s.id,\n    COALESCE(s.title, 'untitled') AS title,\n    datetime(s.time_updated\u002F1000, 'unixepoch', 'localtime') AS updated\n  FROM session s\n  JOIN project p ON p.id = s.project_id\n  WHERE p.worktree = '\u002Fabsolute\u002Fpath\u002Fto\u002Frepo'\n    AND s.parent_id IS NULL\n  ORDER BY s.time_updated DESC\n  LIMIT 10\n\" --format json\n```\n\n### Read one session\n\nReplace the session id.\n\n```bash\nopencode db \"\n  SELECT\n    json_extract(m.data, '$.role') AS role,\n    datetime(m.time_created\u002F1000, 'unixepoch', 'localtime') AS time,\n    GROUP_CONCAT(json_extract(p.data, '$.text'), char(10)) AS text\n  FROM message m\n  LEFT JOIN part p ON p.message_id = m.id\n    AND json_extract(p.data, '$.type') = 'text'\n  WHERE m.session_id = 'ses_xxx'\n  GROUP BY m.id\n  ORDER BY m.time_created ASC\n  LIMIT 50\n\" --format json\n```\n\n### Search conversations\n\nReplace `search term` with the text you want.\n\n```bash\nopencode db \"\n  SELECT\n    s.id AS session_id,\n    COALESCE(s.title, 'untitled') AS title,\n    json_extract(m.data, '$.role') AS role,\n    datetime(m.time_created\u002F1000, 'unixepoch', 'localtime') AS time,\n    substr(json_extract(p.data, '$.text'), 1, 200) AS snippet\n  FROM part p\n  JOIN message m ON m.id = p.message_id\n  JOIN session s ON s.id = m.session_id\n  WHERE s.parent_id IS NULL\n    AND json_extract(p.data, '$.type') = 'text'\n    AND json_extract(p.data, '$.text') LIKE '%' || 'search term' || '%'\n  ORDER BY m.time_created DESC\n  LIMIT 10\n\" --format json\n```\n\n## Workflow\n\n1. Start with recent sessions or search.\n2. If needed, narrow to a specific repo via `project.worktree`.\n3. Read the target session by id.\n4. Summarize only the relevant findings for the user.\n\n## Rules\n\n1. Use `opencode db`, not `sqlite3`.\n2. Keep queries read-only. Only `SELECT` and safe read-only pragmas.\n3. Prefer `--format json` when results will be processed.\n4. Always use `LIMIT`.\n5. Do not dump raw history if a concise summary is enough.\n6. Treat memory contents as sensitive; surface only what matters.\n",{"name":5,"license":14,"description":42,"compatibility":43},"Browse and recall OpenCode local memory stored on the user's machine: sessions, conversations, and project context. Use immediately when the user asks to check history, previous sessions, past chats, what did we do before, last time, session history, recall, memory, remember, prior work, previous context, or have we done this before. Auto-trigger proactively when resuming work, continuing a project, referencing prior decisions, debugging repeated issues, or any follow-up where earlier OpenCode context may help. This means OpenCode local history specifically, not ChatGPT\u002FClaude cloud history, generic web search, or unrelated product memory systems. Do NOT use for fresh tasks with no relevant history, or when current files\u002Fgit already answer the question.\n","opencode","main","a9708fc9cd1aeaa95c6bdf9dca5cca2a1fc22715",".opencode\u002Fskills\u002Fmemory",0,"https:\u002F\u002Fgithub.com\u002Fshekohex\u002Fdotai","https:\u002F\u002Fgithub.com\u002Fshekohex","https:\u002F\u002Fshadykhalifa.me\u002F","Someone who wanna change this world into a better place.","2026-10-25 20:43:09",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add shekohex\u002Fdotai --skill memory",{"tool":59,"command":60},"bunx","bunx skills add shekohex\u002Fdotai --skill memory",{"tool":62,"command":63},"pnpm","pnpm dlx skills add shekohex\u002Fdotai --skill memory","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshekohex\u002Fdotai\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fmemory\u002FSKILL.md",true,[],[]]