Install
openclaw skills install @adlternative/agent-historySearch and read past AI coding-agent conversation history (OpenCode, Claude Code, …) via the ochist CLI. Use this BEFORE doing fresh research, web searches, or codebase exploration when the user references earlier work — e.g. "what did I do before", "我之前", "上次", "earlier session", "we already discussed/configured/decided", "recall", "find that command/error/decision from a previous chat". Locates prior sessions across all installed agents, greps their content, and reads full message text on demand, paging with shell tools to avoid context bloat.
openclaw skills install @adlternative/agent-historyochist exposes past conversation history from local AI coding agents
(OpenCode, Claude Code, and any other registered source) as plain,
pipe-friendly text — so you can recover earlier research, commands, errors,
and decisions instead of redoing them.
It is READ-ONLY and never modifies any data store. By default it queries
EVERY agent whose data exists on this machine; restrict with --source.
Use it proactively when the user:
Check history FIRST in these cases — it is cheaper than re-researching.
sessions and grep default to the current project — sessions whose
working directory is the current directory or a subdirectory of it. Sibling
git worktrees of the same repo are included automatically, so a session run
in a linked worktree still shows up from the main checkout (and vice versa).
To widen or narrow:
--global / -g — search ALL sessions across every directory.--dir <path> — scope to a specific directory instead of the cwd.--no-worktrees — strict single-directory scope (don't expand to worktrees).Rule of thumb: start project-scoped (more relevant, less noise); if you find
nothing, retry with --global.
Sessions can have hundreds of parts and large tool outputs. NEVER read a whole session blindly. Narrow first, then pull only what you need:
ochist grep <pattern> or ochist sessionsochist meta <session> (cheap, reliable card)ochist show <session> (one line per part)ochist part <part_id> (only the parts that matter)Pipe through grep, head, wc -l, awk, jq to keep output small.
ochist sources
List known agents and whether each has data on this machine.
ochist sessions [--source N] [--global|-g] [--dir PATH] [--no-worktrees] [--limit N] [--json]
Recent sessions (current project by default; includes sibling worktrees).
Columns: time<TAB>source<TAB>slug<TAB>id<TAB>dir<TAB>title
ochist grep <pattern> [--source N] [--global|-g] [--dir PATH] [--no-worktrees] [--session S] [--type text|tool|patch] [--limit N] [--json]
Search across part content (current project by default).
Output: part_id<TAB>source<TAB>slug<TAB>tag<TAB>match
ochist meta <session> [--source N] [--json]
Reliable metadata card: tools, cost, tokens, todos, counts, time.
ochist show <session> [--source N] [--role user|assistant] [--type text|tool|patch] [--full] [--max N] [--json]
Outline (default): #n<TAB>part_id<TAB>tag<TAB>chars<TAB>preview. --full prints content.
ochist part <part_id> [--source N] [--json]
Full, untruncated content of a single part.
--source values: opencode, claudecode, qoder, codex (run ochist sources to see all).
<session>/<part_id> accept: agent id, slug/prefix, or latest.
Find which session touched a topic, then read the answer:
ochist grep "ssh" --limit 8 # candidates + part_id + source
ochist meta silent-star # confirm the right session
ochist show silent-star | grep -i "authorized_keys" # find the exact part id
ochist part prt_xxxxx # read the full message
Browse recent work — current project, a specific dir, or everything:
ochist sessions # current project
ochist sessions --dir ~/code/myproject # a specific project
ochist sessions --global # all projects
ochist sessions --source claudecode # one agent only
Skim only the assistant's conclusions:
ochist show latest --role assistant | head -30
meta fields (tools, cost, tokens, todos, counts) are 100% reliable —
prefer them for a quick, cheap overview.grep returns one representative line + a part_id; follow up with
ochist part <part_id> for full text.parent_id), Codex (via parent_thread_id), and Claude Code
subagent output all appear inside the parent's parts, prefixed with
[subagent …]. A subagent id/slug resolves to its parent.--json | jq for machine parsing.ochist is not on PATH, invoke via:
node <repo>/dist/cli.js <args>.