gh cliをCursor Agentに実行させると動かない
課題
ある日からCursor Agent にGitHub CLI (以下 gh cli) を実行させると、以下のようなエラーメッセージが表示されて動かなくなってしまった ygkn.icon
gh pr list を実行してください
Cursor
gh pr list コマンドを実行します。
code:txt
❯ gh pr list
head: |: No such file or directory
head: cat: No such file or directory
現在のリポジトリには表示できるプルリクエストがないようです。以下のようなエラーが発生しています:
head: |: No such file or directory
head: cat: No such file or directory
別の方法で GitHub の情報を確認したい場合は、お知らせください。
原因
Cursor Agent が実行するターミナルでは PAGER 環境変数に head -n 10000 | catが設定されているため
多分manやgit diff時にターミナルから処理が戻ってこなくなるのを防ぐため
ページャを利用するgh cliではなぜかこれが動かなかった
多分Cursor独自の機能。いつから(どのバージョンから)設定されているかは見つけられなかった
調査
ygkn.icon
echo $PAGER を実行してください
Cursor
echo $PAGER コマンドを実行します:
code:txt
echo $PAGER
head -n 10000 | cat
ygkn.icon
PAGER="" gh pr list を実行してください
Cursor
PAGER="" を使って gh pr list コマンドを実行します。
code:txt
PAGER="" gh pr list
【PR一覧が表示される】
解決策
gh cli でページャを使わないようにする
Pros
AIに毎回環境変数を設定させなくてすむ
Cons
自分で gh cli を実行する際もページャを使えなくなるので、長い出力とかを見るときに不便
方法(以下のいずれか)
~/.zshrc などで export GH_PAGER="" を設定する
gh config set pager none を実行する
Cursor Agent から gh cli を使うときのみページャを使わないように指定する
Pros
Cursor以外の環境を変えずに済む
Cons
毎回環境変数を設定するコマンドが走る
方法
Cursor の User Rules に以下のプロンプトを追加する
code:txt
Before using GitHub CLI (gh) commands for the first time in a terminal session, execute export GH_PAGER="" to prevent pager-related errors. This only needs to be done once per terminal session.