ターミナルがダサいとモテない。gh copilot suggestをスマートに使う。
Yusuke Hasegawa

Yusuke Hasegawa @yusukeh

About: I’m Yusuke, CEO of grasys Inc., a Japanese MSP specializing in scalable, high-performance cloud infrastructure and operations.

Location:
Tokyo, Japan
Joined:
May 29, 2025

ターミナルがダサいとモテない。gh copilot suggestをスマートに使う。

Publish Date: Jun 24
0 0

gh copilot suggest使ってわからないコマンドはcopilotに聞こう!


Photo by Roman Synkevych on Unsplash

巷では Vibe Coding ってキーワードが流行ってますね。CursorwindsurfClineなどなど

弊社でもDevinCursorを使い始めました。

社内では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系はいくつかありますが、

これらは一通り一度Installして使ってみたんですが、思いっきり使いこなせているかと言うとまだ使いこなせてません。

個人的にchatgptもclaudeもgeminiも課金して使える環境がありますが・・・正直コストの話も大きいかも・・・😅

copilot系もいくつかあります。

今日は 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

ここにInstall Documentがあります。

GitHub - cli/cli: GitHub's official command line tool

さっと入れてしまいましょう!

自分の場合はmacOSなのでHomebrewでInstallしてます。

brew install gh
Enter fullscreen mode Exit fullscreen mode

GitHub CLI クイックスタート

GitHub CLI クイックスタート - GitHub Docs

クイックスタートを読んで開始できる準備を始めましょう。

GitHub Copilot for CLI

Install方法はここにあります。

CLIG での GitHub Copilot のインストール - GitHub Docs

これでInstallできます。

gh extension install github/gh-copilot
Enter fullscreen mode Exit fullscreen mode

Installされたかの確認は

gh extension list

NAME REPO VERSION
gh copilot github/gh-copilot v1.1.0
Enter fullscreen mode Exit fullscreen mode

こんな形で出力されると思います。

ghcs CLIでのGitHub Copilotの構成

ここにあります。

CLI での GitHub Copilot の構成 - GitHub Docs


echo 'eval "$(gh copilot alias -- bash)"' >> ~/.bashrc
Enter fullscreen mode Exit fullscreen mode

初めてgh copilotを起動するといろいろ確認されます。

分析用にLog送るかとかそんな内容です。

ここの設定は個人の判断に任せます。

CLI での GitHub Copilot の構成 - GitHub Docs

ここをみるとわかると思います。

gh copilot suggest

それでは実際にgh copilot suggestをしてみましょう。

macOSなので、まずはDocumentsの配下の一覧を出力するコマンドを聞いてみます。

gh copilot suggest "Documents配下のファイルの一覧を出力したい"
Enter fullscreen mode Exit fullscreen mode

何について聞いてるのか聞かれるので、ここでは普通にコマンドなので”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
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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}))"
Enter fullscreen mode Exit fullscreen mode

.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
Enter fullscreen mode Exit fullscreen mode

ちょっと書き方に癖がありますが・・・🤣

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/*/
Enter fullscreen mode Exit fullscreen mode

ちょっぴり出力がかゆいけど目的は達成できると思います。

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の発展で更に使いやすいものになっていくと思います。ただ現時点ではまだです。

なのでまだ経験値が足りない、知識が足りないと思う方々は自身のスキルアップや学習の補助として活用されることを念頭において触るのが良いと思います。

Comments 0 total

    Add comment