ocs
ocs is a better session picker for opencode.
ocs indexes your local OpenCode sessions and presents them in a full-screen
fuzzy finder. Search by title, project directory, session ID, or text from the
four most recent user prompts. The selected session is reopened with
opencode --session in its original directory when that directory still
exists.
The preview shows the session title, directory, ID, and complete text-message transcript. Press control-d to delete the selected session and its messages.
Installation
ocs should run on any system, including Linux, MacOS, and Windows.
The easiest way to install it is by using cargo, the Rust package manager:
Otherwise, see below for the complete package list:
Cross-platform
Pre-built binaries
Pre-built binaries for Linux, MacOS, and Windows can be found on the releases page.
Usage
Run ocs without arguments to browse sessions. Type to fuzzy-search, use the
arrow keys to move through matches, press enter to open the selected session,
or press control-d to delete it. Press escape or control-c to cancel.
Pass an initial query with --query:
Use --cwd to show only sessions started in the current directory:
Use --print to write the selected session ID to standard output instead of
opening OpenCode. This is useful for scripts and shell integrations:
Shell Integration
Add this function to your .bashrc or .zshrc to pass the selected session ID
to OpenCode:
The function forwards arguments to ocs, so ocs --query picker works as
usual.
Data Directory
By default, ocs reads opencode.db from $XDG_DATA_HOME/opencode. When
XDG_DATA_HOME is unset, it falls back to $HOME/.local/share/opencode.
Pass --data-dir to use an alternate OpenCode data directory, such as a
separate profile or a copied database:
Prior Art
This project was inspired by the session picker built into
opencode. ocs makes old sessions easier to find by
searching their metadata and recent prompts, with a full transcript preview.