Plugin/módulo zsh que encapsula aliases y tab completions del CLI de OpenCode. Compatible con Zimfw, oh-my-zsh y standalone.
- 🚀 Alto rendimiento: usa
mtime check(no--version) para invalidación de cache. Costo en shell startup: ~3ms (stat) vs ~600ms (regeneración completa). - 🎯 Aliases curados: 11 aliases de los más útiles (no la lista completa).
- 🔌 Multi-manager: estructura idiomática compatible con Zimfw (sin flags), oh-my-zsh y standalone.
- 🪶 Cero dependencias externas: sólo requiere el binario
opencodeinstalado.
zsh-opencode/
├── LICENSE
├── README.md
├── init.zsh # entry point (Zimfw default source)
├── zsh-opencode.plugin.zsh # shim para oh-my-zsh y standalone
└── functions/
└── _opencode # completion (auto-descubierto vía fpath)
Añadir a ~/.zimrc, antes del módulo completion:
zmodule c4shdev/zsh-opencode
zmodule completionNo requiere flags. Zimfw detecta automáticamente:
init.zshcomo entry point (porquefunctions/existe)functions/parafpath- autoload de las funciones definidas en
functions/
Luego:
zimfw build
exec zshClonar como plugin:
git clone https://github.com/c4shdev/zsh-opencode ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-opencodeAñadir a ~/.zshrc:
plugins=(... zsh-opencode)compinit de oh-my-zsh añade automáticamente el directorio del plugin a fpath, por lo que _opencode se descubre vía functions/.
git clone https://github.com/c4shdev/zsh-opencode ~/.local/share/zsh-opencodeEn ~/.zshrc, antes de compinit:
fpath=(~/.local/share/zsh-opencode/functions $fpath)
autoload -Uz compinit && compinit
source ~/.local/share/zsh-opencode/zsh-opencode.plugin.zsh| Alias | Comando |
|---|---|
oc |
opencode |
ocr |
opencode run |
ocw |
opencode web |
ocs |
opencode serve |
oca |
opencode attach |
ocu |
opencode upgrade |
ocm |
opencode models |
ocst |
opencode stats |
ocp |
opencode providers |
ocpr |
opencode pr |
ocses |
opencode session |
$OPENCODE_BIN: directorio del binarioopencode. Default:~/.opencode/bin.
- Primer shell start: el módulo genera
_opencodeejecutandoopencode completion zsh(~600ms una vez). - Shells subsiguientes: comparamos
mtimedel binario vs el cache. Si el binario no cambió, no se regenera. - Cuando actualizas opencode (
ocuobrew upgrade): el binario es más nuevo que el cache, se regenera.
El módulo debe inicializarse antes de compinit. Esto asegura que la completion regenerada esté disponible cuando compinit la lea:
- Zimfw: declarar
zmodule c4shdev/zsh-opencodeantes dezmodule completion. - oh-my-zsh: el orden de
plugins=(...)define el orden;zsh-opencodedebe aparecer antes que cualquier plugin que use completion (prácticamente todos). - Standalone:
sourceantes decompinit.
MIT