mirror of
https://github.com/robbyrussell/oh-my-zsh.git
synced 2026-09-27 05:26:06 +02:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
129de5a05f | ||
|
|
bd77419b2a |
@@ -130,7 +130,7 @@ plugins=(... kubectl)
|
|||||||
| kdss | `kubectl describe statefulset` | Describe statefulset resource in detail |
|
| kdss | `kubectl describe statefulset` | Describe statefulset resource in detail |
|
||||||
| kdelss | `kubectl delete statefulset` | Delete the statefulset |
|
| kdelss | `kubectl delete statefulset` | Delete the statefulset |
|
||||||
| ksss | `kubectl scale statefulset` | Scale a statefulset |
|
| ksss | `kubectl scale statefulset` | Scale a statefulset |
|
||||||
| krsss | `kubectl rollout status statefulset` | Check the rollout status of a deployment |
|
| krsss | `kubectl rollout status statefulset` | Check the rollout status of a statefulset |
|
||||||
| krrss | `kubectl rollout restart statefulset` | Rollout restart a statefulset |
|
| krrss | `kubectl rollout restart statefulset` | Rollout restart a statefulset |
|
||||||
| | | **Service Accounts management** |
|
| | | **Service Accounts management** |
|
||||||
| kdsa | `kubectl describe sa` | Describe a service account in details |
|
| kdsa | `kubectl describe sa` | Describe a service account in details |
|
||||||
|
|||||||
@@ -1,111 +0,0 @@
|
|||||||
# opencode plugin
|
|
||||||
|
|
||||||
This plugin adds completion and aliases for the [OpenCode](https://opencode.ai) CLI.
|
|
||||||
Install OpenCode using its [installation instructions](https://opencode.ai/docs/#install),
|
|
||||||
and make sure `opencode` is available on your `$PATH`.
|
|
||||||
|
|
||||||
To enable it, add `opencode` to the plugins array in your `.zshrc`:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
plugins=(... opencode)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Learning OpenCode from the terminal
|
|
||||||
|
|
||||||
Use tab completion to explore commands and their descriptions without leaving the
|
|
||||||
shell. For example, these are some of the candidates shown by the CLI:
|
|
||||||
|
|
||||||
```text
|
|
||||||
$ opencode <TAB>
|
|
||||||
agent -- manage agents
|
|
||||||
models -- list all available models
|
|
||||||
run -- run opencode with a message
|
|
||||||
session -- manage sessions
|
|
||||||
stats -- show token usage and cost statistics
|
|
||||||
...
|
|
||||||
|
|
||||||
$ opencode session <TAB>
|
|
||||||
delete -- delete a session
|
|
||||||
list -- list sessions
|
|
||||||
|
|
||||||
$ opencode run --<TAB>
|
|
||||||
--agent -- agent to use
|
|
||||||
--continue -- continue the last session
|
|
||||||
--file -- file(s) to attach to message
|
|
||||||
--model -- model to use in the format of provider/model
|
|
||||||
...
|
|
||||||
```
|
|
||||||
|
|
||||||
Completion works through the aliases too. Type a partial command or option and
|
|
||||||
press Tab to finish it:
|
|
||||||
|
|
||||||
```text
|
|
||||||
$ opc session li<TAB>
|
|
||||||
$ opc session list
|
|
||||||
|
|
||||||
$ opcr --att<TAB>
|
|
||||||
$ opcr --attach
|
|
||||||
|
|
||||||
$ opcc --log-l<TAB>
|
|
||||||
$ opcc --log-level
|
|
||||||
```
|
|
||||||
|
|
||||||
Candidates depend on your installed OpenCode version. In OpenCode 1.18.29, the
|
|
||||||
CLI's completion output omits top-level TUI flags such as `--model` and `--fork`,
|
|
||||||
even though those flags work when typed. Use `opencode --help` or
|
|
||||||
`opencode run --help` for the full options, and see the
|
|
||||||
[CLI reference](https://opencode.ai/docs/cli/) for more workflows.
|
|
||||||
|
|
||||||
## Aliases
|
|
||||||
|
|
||||||
| Alias | Command | Description |
|
|
||||||
| ------ | --------------------- | ----------------------------------- |
|
|
||||||
| `opc` | `opencode` | Launch the terminal UI |
|
|
||||||
| `opcc` | `opencode --continue` | Continue the last session |
|
|
||||||
| `opcr` | `opencode run` | Run a prompt without opening the UI |
|
|
||||||
|
|
||||||
To keep completion but skip the aliases, set this in your `.zshrc`, above the line
|
|
||||||
that sources Oh My Zsh:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
# ~/.zshrc
|
|
||||||
zstyle ':omz:plugins:opencode' aliases no
|
|
||||||
|
|
||||||
plugins=(... opencode)
|
|
||||||
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Common workflows
|
|
||||||
|
|
||||||
All aliases accept additional arguments:
|
|
||||||
|
|
||||||
```zsh
|
|
||||||
# Open a project
|
|
||||||
opc ~/projects/my-app
|
|
||||||
|
|
||||||
# Explore a different approach by forking the last session
|
|
||||||
opcc --fork
|
|
||||||
|
|
||||||
# Ask a question without entering the terminal UI
|
|
||||||
opcr "Explain the test setup in this project"
|
|
||||||
|
|
||||||
# Reuse an already running backend to avoid MCP server cold starts
|
|
||||||
opcr --attach http://localhost:4096 "Explain this project's architecture"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Completion
|
|
||||||
|
|
||||||
Completion queries the installed OpenCode CLI on demand for commands and options,
|
|
||||||
including through the aliases above. It falls back to Zsh's default completion when
|
|
||||||
the CLI returns no candidates. No OpenCode process is started at shell startup,
|
|
||||||
and no generated completion cache is needed.
|
|
||||||
|
|
||||||
## Credits
|
|
||||||
|
|
||||||
Based on the OpenCode plugin proposals by
|
|
||||||
[pranavavva](https://github.com/pranavavva) in
|
|
||||||
[#13545](https://github.com/ohmyzsh/ohmyzsh/pull/13545) and
|
|
||||||
[mskadu](https://github.com/mskadu) in
|
|
||||||
[#13794](https://github.com/ohmyzsh/ohmyzsh/pull/13794).
|
|
||||||
The completion adapter is derived from OpenCode's `opencode completion` output.
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#compdef opencode
|
|
||||||
|
|
||||||
# Adapted from `opencode completion`, using the CLI's live Yargs completions.
|
|
||||||
local -a reply
|
|
||||||
reply=("${(@f)$(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" \
|
|
||||||
command opencode --get-yargs-completions "${words[@]}" < /dev/null 2> /dev/null)}")
|
|
||||||
|
|
||||||
if [[ -n "${reply[1]}" ]]; then
|
|
||||||
_describe 'values' reply
|
|
||||||
else
|
|
||||||
_default
|
|
||||||
fi
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
if (( ! $+commands[opencode] )); then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
alias opc='opencode'
|
|
||||||
alias opcc='opencode --continue'
|
|
||||||
alias opcr='opencode run'
|
|
||||||
@@ -39,7 +39,7 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
|
|||||||
# Get absolute path, resolving symlinks
|
# Get absolute path, resolving symlinks
|
||||||
local PROJECT_ROOT="${PWD:A}"
|
local PROJECT_ROOT="${PWD:A}"
|
||||||
while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" \
|
while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" \
|
||||||
&& ! -d "$PROJECT_ROOT/.git" ]]; do
|
&& ! -e "$PROJECT_ROOT/.git" ]]; do
|
||||||
PROJECT_ROOT="${PROJECT_ROOT:h}"
|
PROJECT_ROOT="${PROJECT_ROOT:h}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user