AI SaaS

AWSに買収された次世代コマンドライン「Fig」が 「Amazon CodeWhisperer for command line」になって帰ってきた

IDチームの前田です。先日NuPhy Air60 V2というキーボードを購入しました。V1はカスタム(Mod)しすぎて、タイプ音が響かなくなりメカニカルキーボードの良さを失ったので、V2はそこそこのカスタムで抑えます。カスタムキーボード最高!!

そして、ここから本題。

三行まとめ

  • 2023年08月AWSに買収された次世代コマンドラインFigが、Amazon CodeWhisperer for command lineになりリリースされました(サービス名が長い…)
  • AIによる自然言語からBashコマンドへの変換機能はそれなりに便利
  • 筆者のように普段からCLIを常用し、Shellの補完関数を使っている人にはコマンド補完とかあまり恩恵はないかも

Amazon CodeWhisperer for command lineとは

  • Amazon CodeWhisperer for command lineはコマンドライン操作の補完をするツール
  • もともとFigというツールで公開されていましたが、2023年08月AWSに買収され、Amazon CodeWhisperer for command lineとなり2023年11月にリリースされました
  • IDEのように形式で、500以上のコマンドの補完に対応
  • 自然言語をBashコマンドに変換する機能も搭載

bash-completionやかつて筆者もよくPull Requestを送っていたZsh Completionsのような感じのツールです。

実際に動いている例

導入方法

前提条件

  • 2023年12月01日現在、macOSのみ対応となっています
  • 検証環境 macOS 14.1.1

1. インストール

  • https://aws.amazon.com/codewhisperer/resources/ からdmgファイルをダウンロードし、アプリのインストール
  • 言語を English にしないとCommand Lineのダウンロードリンクが表示されないので注意

2. 認証

  • 個人利用(Individual)に関しては無料となっており、AWS Builder IDを利用します。
  • 業務利用(Professional)の場合は有料($19/月)になっており、AWS IAM Identity Centerでの認証が必要です。
  • 価格表と機能比較

ログインが終わると各種設定画面が表示されます。

3. 設定

  • 正式サポートされているのはターミナル エミュレータ
    • Hyper
    • macOSのターミナル
    • VSCodeのターミナル
    • iTerm2
  • Betaサポートのターミナル エミュレータ

Betaサポートのターミナルエミュレータは、下記のコマンドを実行することで利用が可能です。

cw integrations install input-method

一覧には入っていませんが筆者の利用しているWezTermでも動作しました。(最近PlemolJPというフォントを使ってますが読みやすくてオススメです!!)

機能改善や利用状況の収集のためAWSと情報が共有されるため、必要であれば設定を確認しておきましょう。

補完機能を使ってみる

前提として筆者はFish Shellを利用しており、昔からCLI環境をかなり整備して利用しています(※1)

Amazon Codewhisperer Command Lineの場合

ディレクトリ名の補完。

コマンド補完の様子。

利用に際して危険なコマンドを提案してこないようにこちらも必要であれば、Allow instant execute of dangerous suggestions を無効にしておきましょう(デフォルトでは無効になっています)。

Fish Shellの場合

ディレクトリ名の補完。(Repo名に案件名やらいろいろ入っているので加工しています)
普段はzとかghq+pecoでディレクトリ移動するので、このような補完を利用することはないですが。

コマンド補完の様子。

両者を比較し、現時点で筆者は慣れ親しんだFish Shellの補完スタイルの方使いやすいので、Amazon CodeWhisperer for command lineの方ではコマンド補完 CLI Completions を無効にしました。

自然言語からコマンドを生成 cw ai

cw ai でAIにより自然言語をBashコマンドに変換する機能もあり、手元で検証したところ日本語でも動作しました。
どの生成AIにも言えますが、ちゃんと指示を出さないと微妙なコマンドが提案されてくるので、雑な感じでは利用出来ません。

ワンライナーでまとめることも出来ますし、 cw aiで呼び出して、指示を出すことも可能です。

英語と日本語で試した例。

提案されたコマンドを Edit command で編集も出来ます。

ちなみにAWSのツールですが、Azure CLIやGoogle Cloud CLIのコマンドも教えてくれます。

当然ですが、Execute Command を選択すると提案されたコマンドが即実行されるので、Enter連打は控えましょう。

危険なコマンドだと警告が表示。

警告が出ない場合も…。

コマンドとして cw ai は押しにくいので、筆者は alias a="cw ai" と設定して、 a で実行出来るようにしました。

まとめ

  • 2023年08月AWSに買収された次世代コマンドラインFigが、Amazon CodeWhisperer for command lineになりリリース
  • AIによる自然言語からBashコマンドへの変換機能はそれなりに便利と感じました
  • 筆者は現時点だとコマンド補完とかは普段利用しているFish Shellの方が正直使いやすいと感じましたが今後に期待
    • 名称はもっと短くて覚えやすくなると嬉しい

※1 備考

筆者が利用しているFish Shellプラグイン、補完機能の一覧。

→ fisher list
edc/bass
jethrokuan/z
oh-my-fish/plugin-expand
oh-my-fish/plugin-peco
yoshiori/fish-peco_select_ghq_repository
acomagu/fish-async-prompt
gazorby/fish-abbreviation-tips
jorgebucaran/autopair.fish
meaningful-ooo/sponge
nickeb96/puffer-fish
→ ls -1 ~/.config/fish/completions/
assh.fish
expand-word.fish
gh.fish
helm.fish
kind.fish
krew.fish
orb.fish
rtx.fish
stern.fish

関連リンク

glidenote

memolist.vim作者. GMOペパボ、Kaizen PlatformといったWEB系スタートアップでシニアエンジニア、SRE Group Manager、Engineering Group Managerを歴任。AWS Certified Security – Specialty.
Speed Cube初心者 1/5/12=19.21/29.70/30.27。ばね指治療中