From ef36dc215e2eb34e2e1ee3237eb63ebff35a6e75 Mon Sep 17 00:00:00 2001 From: Pranav Avva Date: Wed, 28 Jan 2026 13:23:20 -0500 Subject: [PATCH 1/2] 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" From 0f4c8721c33ce4df4ee3a389caf890e7b18bde2f Mon Sep 17 00:00:00 2001 From: Pranav Avva Date: Wed, 28 Jan 2026 13:27:04 -0500 Subject: [PATCH 2/2] style(opencode): comply with line length style rule Signed-off-by: Pranav Avva --- plugins/opencode/opencode.plugin.zsh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/opencode/opencode.plugin.zsh b/plugins/opencode/opencode.plugin.zsh index 5eeebce85..45aeaa806 100644 --- a/plugins/opencode/opencode.plugin.zsh +++ b/plugins/opencode/opencode.plugin.zsh @@ -1,5 +1,6 @@ if ! (( $+commands[opencode] )); then - print "zsh opencode plugin: opencode not found. Please install opencode before using this plugin." >&2 + print "zsh opencode plugin: opencode not found. Please install opencode \ + before using this plugin." >&2 return 1 fi @@ -8,7 +9,8 @@ _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[@]}")) +' 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