目次
gh copilot suggest使ってわからないコマンドはcopilotに聞こう!
巷ではVibe Codingってキーワードが流行ってますね。CursorやwindsurfやClineなどなど
弊社でもDevinやCursorを使い始めました。
社内ではPyCharmが主流なので、今のところgithub copilotとのコンビネーションが多いのかな?
github copilot便利みたいですね。
自分はNeoVimだからまだ活用してるぜ!ってテンションで言えないです😅
NeoVimのgithub copilotに関わるものはいくつかありますが、自分は今のところgithub/copilot.vimを暫定的に使っています。
実は便利だなというほど使えてないというか、自分はSuggestを無視してることが多い気がします😅
GitHub – github/copilot.vim: Neovim plugin for GitHub Copilot
NeoVimにはVibe Coding系はいくつかありますが、
GitHub – joshuavial/aider.nvim
GitHub – yetone/avante.nvim: Use your Neovim like using Cursor AI IDE!
GitHub – olimorris/codecompanion.nvim: ✨ AI-powered coding, seamlessly in Neovim
これらは一通り一度Installして使ってみたんですが、思いっきり使いこなせているかと言うとまだ使いこなせてません。
個人的にchatgptもclaudeもgeminiも課金して使える環境がありますが・・・正直コストの話も大きいかも・・・😅
GitHub – zbirenbaum/copilot.lua: Fully featured & enhanced replacement for copilot.vim complete…
GitHub – zbirenbaum/copilot-cmp: Lua plugin to turn github copilot into a cmp source
今日はVibe Codingにあやかって、Terminalでもcopilotを便利に使おうというのが主題になっています。
AI Terminal
まず最初にAIでTerminalという観点でwarp terminalを紹介しておきます。
Warp: The intelligent terminal
有償ですがLLMとやり取りしながらできるっぽいです。
自分もmacにwarp入れてますが、ちゃんと使ってないので詳しくないです。自分はWezTerm使ってます。
だんだんこういう世界も始まってるんだなぁと・・・
Vive Codingなんておしゃれな名前ついてるから、Terminalでの作業も名前付けたい😂
- Vive Terminal(う、う〜〜ん🤔)
- Vive Shell(普通過ぎるけどこれかなぁ)
- Vive Ops(これか?!!!だがしかし・・・わかりにくいかもなぁ🤔)
- Vive ShellOps(う、う〜〜〜〜〜んくどいかなぁ🤔)
誰か決めてください🤣
AIつかってTerminalでもVibe Shellしようぜ!
一旦Vibe Shell(2024/04/24時点)で進めます🤣
Requirements
この3つです。
GitHub CLI
GitHub – cli/cli: GitHub’s official command line tool
さっと入れてしまいましょう!
自分の場合はmacOSなのでHomebrewでInstallしてます。
brew install gh
GitHub CLI クイックスタート
GitHub CLI クイックスタート – GitHub Docs
クイックスタートを読んで開始できる準備を始めましょう。
GitHub Copilot for CLI
CLIG での GitHub Copilot のインストール – GitHub Docs
これでInstallできます。
gh extension install github/gh-copilot
Installされたかの確認は
gh extension list
NAME REPO VERSION
gh copilot github/gh-copilot v1.1.0
こんな形で出力されると思います。
ghcs CLIでのGitHub Copilotの構成
CLI での GitHub Copilot の構成 – GitHub Docs
echo 'eval "$(gh copilot alias -- bash)"' >> ~/.bashrc
初めてgh copilotを起動するといろいろ確認されます。
分析用にLog送るかとかそんな内容です。
ここの設定は個人の判断に任せます。
CLI での GitHub Copilot の構成 – GitHub Docs
ここをみるとわかると思います。
gh copilot suggest
それでは実際にgh copilot suggestをしてみましょう。
macOSなので、まずはDocumentsの配下の一覧を出力するコマンドを聞いてみます。
gh copilot suggest "Documents配下のファイルの一覧を出力したい"

何について聞いてるのか聞かれるので、ここでは普通にコマンドなので”generic shell command”を選択します。

そうすると、これどうするか聞かれますね
コピーするの?説明が欲しいの?みたいな感じですね
一旦説明してもらいます。

こんな感じになります。
Copyします。

するとshellのpromptが返ってくるので
おもむろにCmd+vすると

コピペできました。
これが全体の流れです。
gum
ちょっとこのままではスムーズじゃないのとコマンドも長いので、ちょっと工夫してスマートにしてみましょう。
GitHub – charmbracelet/gum: A tool for glamorous shell scripts 🎀
gumはとても多機能でTerminalでの入力をいろいろな形で表現、制御してくれます。
セレクタ用意したり、YES/NOの選択を求めたり、ちょっとTUIとしてもおしゃれな感じにしてくれます。
ここではgumのinputを利用してgh copilot suggestへ渡す入力をTUIで制御していきます。
Install gum
普通にHomebrewもあります。
go installでもInstallできます。
brew install gum
go install github.com/charmbracelet/gum@latest
gum help
Installできたらhelpを確認しましょう。
prompt/placeholder/cursor/headerの4要素にそれぞれ内容のテキストと色設定があります。
色設定については環境変数でも設定できるようです。
❯ gum input --help
Usage: gum input [flags]
Prompt for some input
Flags:
-h, --help Show context-sensitive help.
-v, --version Print the version number
--placeholder="Type something..." Placeholder value ($GUM_INPUT_PLACEHOLDER)
--prompt="> " Prompt to display ($GUM_INPUT_PROMPT)
--cursor.mode="blink" Cursor mode ($GUM_INPUT_CURSOR_MODE)
--value="" Initial value (can also be passed via stdin)
--char-limit=400 Maximum value length (0 for no limit)
--width=0 Input width (0 for terminal width) ($GUM_INPUT_WIDTH)
--password Mask input characters
--[no-]show-help Show help keybinds ($GUM_INPUT_SHOW_HELP)
--header="" Header value ($GUM_INPUT_HEADER)
--timeout=0s Timeout until input aborts ($GUM_INPUT_TIMEOUT)
--[no-]strip-ansi Strip ANSI sequences when reading from STDIN ($GUM_INPUT_STRIP_ANSI)
Style Flags
--prompt.foreground="" Foreground Color ($GUM_INPUT_PROMPT_FOREGROUND)
--prompt.background="" Background Color ($GUM_INPUT_PROMPT_BACKGROUND)
--placeholder.foreground="240" Foreground Color ($GUM_INPUT_PLACEHOLDER_FOREGROUND)
--placeholder.background="" Background Color ($GUM_INPUT_PLACEHOLDER_BACKGROUND)
--cursor.foreground="212" Foreground Color ($GUM_INPUT_CURSOR_FOREGROUND)
--cursor.background="" Background Color ($GUM_INPUT_CURSOR_BACKGROUND)
--header.foreground="240" Foreground Color ($GUM_INPUT_HEADER_FOREGROUND)
--header.background="" Background Color ($GUM_INPUT_HEADER_BACKGROUND)
setup bash
Installも済んだので組み込んでいきます。
自分の場合はBashなので.bashrcにセットアップしていきます。
ここでは、先に紹介したghのSetupも含めて表記します。
if command -v gh &> /dev/null; then
eval "$(gh completion --shell $(basename ${SHELL}))"
eval "$(gh copilot alias -- $(basename ${SHELL}))"
.bashrc
if command -v gh &> /dev/null; then
eval "$(gh completion --shell $(basename ${SHELL}))"
eval "$(gh copilot alias -- $(basename ${SHELL}))"
if command -v gum &> /dev/null; then
function _gum_gh_copilot_suggest() {
declare -x gum_gh_copilot_suggest_input=$(gum input --cursor.foreground="#80FFEA" --header="gh copilot suggest target shell" --header.foreground="#7766CC")
gh copilot suggest --target shell "$gum_gh_copilot_suggest_input"
}
bind '"\C-g":"_gum_gh_copilot_suggest\n"'
fi
fi
ちょっと書き方に癖がありますが・・・🤣
yadmでmacOSだけじゃなく、Linux環境なども手元にあり管理を統合しているので、Installの漏れなどが発生しても良いように、このような形にしてます😂
適度に色付けたりちょっとDracula Themeっぽくしたりしてます🧛
bashのshortcut keyとして”Control + g”にしました。
これでBash上で”Ctl + g”することでいつでもgumを呼び出し、入力をしgh copilot suggestに渡すことができます。
自分の場合は shell-out optionは利用せず、TargetだけShellに設定してます。
Execute
それでは実際に動かしましょう。
おもむろにCtl + g
日本語もできます

gh copilotのメニューが出るのでExplainして貰いましょう


Copy command to clipboardしましょう
macOSなのでCommand + vでclipboardからPasteできます。

実際に出力されたのはこのコマンドです。
ls -d ~/Documents/*/
ちょっぴり出力がかゆいけど目的は達成できると思います。
lazygitをdeltaをinstallしたい
もう少し複雑なことを聞いてみましょう。


おおおおおおお
lazygitからdeltaがgit-deltaだってわかってらっしゃる🤣
感想
もう少し複雑なことを依頼してみるのが良い気がするけど、思いつかなかったのでここまでにします。
ちょっとすぐ思いつくレベルのことしかGitHub Copilotに聞けませんでしたが・・・
ほんとに困ったときに使えるかもしれないですね。
自分にはあまり必要なものじゃないかもしれない。
Vibe Shellしたい方はやってみてください。
注意点
こういったTerminalでのOperationでコマンドを聞きたくなる方は、Linuxのコマンドを苦手としていたり、コンピュータ的な経験値の観点で初心者な方が多いと思います。
CLIでのGitHub Copilot の責任ある使用について以下にあります。
CLI での GitHub Copilot の責任ある使用 – GitHub Docs
まず前提としてGitHub Copilotはとても優秀です。私自身もそう思います。
ただし、その出力されたものが正しいかの確認は自身でする必要があります。
Unix/Linuxのコマンドラインの世界では、環境に対して破壊的なものもたくさんあります。
例としてはファイルの削除などのコマンドは気をつけた方が良いです。
Unix/Linuxの一部のコマンドは発行する権限次第では、簡単にOSを破壊することできます。
またExplainも活用した方が良いと思います。
gh copilotが提供してくれるExplainだけではなく、実際に発行されるCommandのHelpもあわせて確認しましょう。
そしてセキュリティについての配慮も必要です。
この場合はどんなコマンドかを問いかけているだけなのでセキュリティ的に気をつけることはそれほど必要ないと考えていますが、利用に関して必要以上の情報を渡さないといったことも注意しましょう。
最後に付け加えるとすれば、AIの力を借りることは良いことだと思います。生産性、効率向上などの観点ではとても良い効果を発揮してくれます。
ですが2025年の現時点において、あらゆる面において信頼性の高いものでは残念ながらありませんし、少なくともコンピュータにおける何もかもを解決できるものではありません。
現時点ではAIを活用するには、それなりのベースとなる基礎知識やスキルも必要だと考えています。
もちろん近い将来、AIの発展で更に使いやすいものになっていくと思います。ただ現時点ではまだです。
なのでまだ経験値が足りない、知識が足りないと思う方々は自身のスキルアップや学習の補助として活用されることを念頭において触るのが良いと思います。

