ocs 0.1.5

A session picker for OpenCode
ocs() {
  local session

  if (( $# )); then
    command ocs "$@"
    return
  fi

  session="$(command ocs --print)" || return

  [[ -n "$session" ]] || return

  command opencode --session "$session"
}

_ocs_search() {
  emulate -L zsh

  zle -I

  local session
  session="$(command ocs --print --query "$BUFFER")"
  local exit_code="$?"

  if (( exit_code == 0 )) && [[ -n "$session" ]]; then
    BUFFER=""
    CURSOR=0
    command opencode --session "$session"
    exit_code="$?"
  fi

  zle reset-prompt

  return "$exit_code"
}

zle -N ocs-search _ocs_search
bindkey '^Xs' ocs-search