[FEATURE] Support custom wrapper commands (like shell functions/aliases) for terminal_cmd
- 主要言語
- Lua
- スター
- 3.1k
- フォーク
- 216
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
## Feature Description
Support for using **custom wrapper commands** (e.g. shell functions or aliases) as `terminal_cmd` in `claudecode.nvim`.
Currently, `terminal_cmd` only works with executables available in the shell PATH. When using a shell function (e.g. `cl`), it fails with exit code 127.
## Use Case
I created a custom shell function `cl` that wraps `claude` with additional custom prompts.
I’d like to use this wrapper command with `claudecode.nvim` so that every request automatically follows my predefined prompt rules.
This would make it easier for users to customize their workflows without modifying the plugin code.
## Proposed Solution
Allow `terminal_cmd` to support shell functions or aliases in addition to executables.
For example, running the command through a shell (e.g. `bash -i -c "cl"`) so that user-defined functions are available.
## Alternatives Considered
- Directly using the `claude` binary instead of the wrapper (works, but loses my custom prompt logic).
- Writing a separate executable script (`~/bin/cl`) instead of a shell function (possible, but less convenient for quick customization).
## Additional Context
Error message when attempting to use a shell function as `terminal_cmd`:
[ClaudeCode] [terminal] [ERROR] Claude exited with code 127.
Check for any errors.
```lua
Example config:
{
"coder/claudecode.nvim",
dependencies = { "folke/snacks.nvim" },
opts = {
terminal_cmd = "cl",
terminal = {
snacks_win_opts = {
...
},
},
},
}
```
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
プラグインの terminal_cmd の処理から始め、例の cl シェル関数を使って報告された終了コード 127 を再現します。現在のコマンド実行が PATH の実行可能ファイルをどのように扱っているかを確認し、その後、サポート対象のラッパー関数またはエイリアスが、直接の実行可能コマンドにリグレッションを起こさずに動作することを検証します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- bash, lua, neovim, shell
- 領域
- cli, devtools
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100