ocs 0.1.2

A session picker for OpenCode
ocs-0.1.2 is not a library.

ocs

release build codecov downloads

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:

cargo install ocs

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.

ocs

Pass an initial query with --query:

ocs --query picker

Use --cwd to show only sessions started in the current directory:

ocs --cwd

Use --print to write the selected session ID to standard output instead of opening OpenCode. This is useful for scripts and shell integrations:

ocs --print

Shell Integration

Add this function to your .bashrc or .zshrc to pass the selected session ID to OpenCode:

ocs() {
  local session
  session="$(command ocs --print "$@")" || return
  [ -n "$session" ] || return
  command opencode --session "$session"
}

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:

ocs --data-dir /path/to/opencode

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.