From ef36dc215e2eb34e2e1ee3237eb63ebff35a6e75 Mon Sep 17 00:00:00 2001 From: Pranav Avva Date: Wed, 28 Jan 2026 13:23:20 -0500 Subject: [PATCH] feat(opencode): add completion and alias plugin for opencode Signed-off-by: Pranav Avva --- plugins/opencode/README.md | 25 +++++++++++++++++++++++++ plugins/opencode/opencode.plugin.zsh | 28 ++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 plugins/opencode/README.md create mode 100644 plugins/opencode/opencode.plugin.zsh diff --git a/plugins/opencode/README.md b/plugins/opencode/README.md new file mode 100644 index 000000000..0462f9b8a --- /dev/null +++ b/plugins/opencode/README.md @@ -0,0 +1,25 @@ +# opencode plugin + +This plugin adds several aliases and shell completion for the [`opencode`](https://opencode.ai) command line tool from Anomaly Innovations. + +To use it, add `opencode` to the plugins array of your `.zshrc` file: + +```zsh +plugins=(... opencode) +``` + +## Installation + +See the [opencode docs](https://opencode.ai/docs#install) for installation instructions. + + +## Aliases + +|Alias|Command|Description| +|-|-|-| +|`oc`|`opencode`|Run the `opencode` command| +|`ocr`|`opencode run` |Run `opencode` with a message| + +## Completions + +This plugin configures shell completion for the `opencode` command. diff --git a/plugins/opencode/opencode.plugin.zsh b/plugins/opencode/opencode.plugin.zsh new file mode 100644 index 000000000..5eeebce85 --- /dev/null +++ b/plugins/opencode/opencode.plugin.zsh @@ -0,0 +1,28 @@ +if ! (( $+commands[opencode] )); then + print "zsh opencode plugin: opencode not found. Please install opencode before using this plugin." >&2 + return 1 +fi + +# See `opencode completion` +_opencode_yargs_completions() { + local reply + local si=$IFS + IFS=$' +' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" opencode --get-yargs-completions "${words[@]}")) + IFS=$si + if [[ ${#reply} -gt 0 ]]; then + _describe 'values' reply + else + _default + fi +} + +if [[ "'${zsh_eval_context[-1]}" == "loadautofunc" ]]; then + _opencode_yargs_completions "$@" +else + compdef _opencode_yargs_completions opencode +fi + +# Aliases +alias oc="opencode" +alias ocr="opencode run"