xshoji's blog

Exploring tech and sharing personal insights

xshojiの気になるトピックをまとめるブログ

Backend Engineer Tokyo, Japan Tech & Insights

Brunoで環境変数を一時的に上書きする方法

以前 Postman を使っていたが、環境変数を一時的に違う値に上書きする機能が地味に便利だった。

Guide on How to Persist Postman Variables | Postman Blog
https://blog.postman.com/how-to-persist-postman-variables/

この機能を使うことで、今だけ

  • 操作対象のアカウントIDを違うIDに切り替える
  • リクエスト先のバージョンを変更する

といったことが可能で、かつ環境変数の元の値は変更しないので作業が終わったら全て元に戻す、ということが可能だった。

現在は Bruno をメインで使っているのですが(以前紹介した こちらの記事 が原因で乗り換えました)、環境変数を設定する画面上では Postman にあるような「Initial Value」と「Current Value」という項目はなかったため、普段書き換える時は環境変数を書き換えたり、頻繁にやるなら環境ごとコピーしたり面倒だった。

続きを読む

AmpCodeの広告付き無料プランを試そうと思ったら1ヶ月近く待たされた話

2025年末くらいにXのポストで AmpCode というサービスを知った。 このサービスは、比較的珍しい「広告付き無料プラン(Amp Free と呼ばれてます)」があるAIコーディングエージェントで、無料でも最新のAIモデルを使える。

  • 最新のAIモデルを使える(2026年1月時点だと Claude Opus 4.5)
  • 毎日 10$ 分のクレジットを付与される
  • データは学習されない
  • 広告が開発に関する広告なので地味に良い感じ(らしい)

私は普段そんなにがっつりAIを使うことはなく、寝る前の1-2時間でちょっと思いついたことを試す、くらいの用途でAIを使っていたので、これだと最新のモデルも使えるしめっちゃええやん!ということで早速登録してみました。

ただし、登録したものの、すぐ使えずに結局一ヶ月近く待つことになったので、その話をまとめます。

続きを読む

BetterTouchTool: キーシーケンスによるスニペット入力機能が突然動作しなくなりOSアップデートで解決した..と思ったらただの勘違いだった話(解決編)

はじめに

BetterTouchTool: キーシーケンスによるスニペット入力機能が突然動作しなくなったが、OSアップデートで解決した話 | xshoji’s blog
https://blog.xshoji.com/posts/20260117_btt-key-sequence-snippet-issue/

こちらで意気揚々と書いたブログの内容に関して、

  • ググっても解決できなかった!
  • OSアップデートが原因だった!!
  • AIに相談して解決の糸口が掴めた!!!

と散々書いてたんですが、数日後に、macOS 26 でもガッツリ再発して頭を抱える事態が発生しました…

続きを読む

Zed: キーボードのみで矩形選択できるようにする設定

普段、 VSCode でテキスト編集しているんですが、本当に若干ですが “もっさり” するんですよね。 私は普段 memo.txt と言うファイルにあらゆるメモを保存しているんですが、ちょっとしたメモを保存するのに VSCode を起動しようとすると、ほんの一瞬待たされるのでそこがストレスになっています。

そこで、最近 Zed エディタを試しているんですが、 Zed は非常に軽量で起動も一瞬ですしサクサク動きます。 今回は、そんな Zed エディタでキーボードのみで矩形選択(カラム選択)できるようにする設定方法を紹介します。

続きを読む

OpenCode の GitHub Copilot 連携機能が正式サポートされたので仕組みを再確認してみた

以前

OpenCode の GitHub Copilot 連携機能の仕組みを読み解く(注意点あり) | xshoji’s blog
https://blog.xshoji.com/posts/20260106_opencode-github-copilot-integration-spec/

こちらで記事にした OpenCode の GitHub Copilot 連携機能ですが、2026年1月16日に公式にサポートされたと発表がありました。

ということで、改めて OpenCode の GitHub Copilot 連携機能が以前とどう変わったのか再確認してみました。

続きを読む

BetterTouchTool: キーシーケンスによるスニペット入力機能が突然動作しなくなったが、OSアップデートで解決した話

[ ! ] 2026-02-07(土) 追記

BetterTouchTool: キーシーケンスによるスニペット入力機能が突然動作しなくなりOSアップデートで解決した..と思ったらただの勘違いだった話(解決編) | xshoji’s blog
https://blog.xshoji.com/posts/20260207_btt-key-sequence-snippet-issue-solved/

で本件の根本解決しました。
こちらの記事の内容は完全に勘違いだったようです。が、ネタとして残しておきます。

はじめに

普段BTTを愛用していて、キーシーケンスによるスニペット入力をよく使います。 これは、たとえば

  • ;now とタイプすると 2026-01-17(土) 02:36:13 と展開される

といったものです。 こういった単純なスニペット展開から、最近だとAIへのプロンプトを呼び出したり大変便利です。

そんなキーシーケンスによるスニペット入力機能ですが、数日前まで普通に使えていたのに、ある日突然動かなくなりました。

設定は一切変えていないし、macOSも普段どおり使っているだけです。それなのに、トリガーが一切発火しない。

最初は「まあBTTだし、たまにあるよね」くらいの気持ちで調査を始めたのですが、結果的にこれはググっても、SNSを見ても、ほぼ辿り着けない系の不具合でした。

この記事では最終的にどうやって答えに辿り着いたのか、その流れをネタとして書き残しておきます。

続きを読む

Go 標準の flag パッケージのテクニック集その2: ロングオプションへ対応する

Go 標準の flag パッケージのテクニック集その1: Usageを綺麗に整形して見やすくする | xshoji’s blog

の続きです。前回は、Go 標準の flag パッケージで Usage を綺麗に整形する方法を紹介しました。 Usage は見やすくなったのですが、次の要件として、ロングオプションを扱いたい、というのがあります。

Unix系のコマンドラインツールでは、一般的にショートオプション( -f のような1文字のオプション)とロングオプション( --file のような複数文字のオプション)の両方をサポートしていることが多いです。 Go 標準の flag パッケージは、 任意の文字列をフラグ名として定義できるので、ショートオプションとロングオプションの両方を実装上定義することは可能ですが、それらが同じ意味のオプションであることが Usage からは伝わりづらいので、そのままではとても使えません。

前回紹介した有名な spf13/cobraurfave/cli といったフレームワークを使えば簡単に実現できるのですが、 今回はあえて main.go のみで実装することにこだわりたかったため、Go 標準の flag パッケージだけでロングオプションを扱えるようにする方法を試行錯誤してみました。

多少複雑ですが、実用的な実装ができたので、今回はその実装方法について紹介したいと思います。

注意: この記事で紹介するスニペットは Go 1.18以上(Genericsを使用するため) が必要です

続きを読む

VSCode: Copilot Chat のペインで上下キーでの履歴移動とEnterキーでの送信を無効化して使いやすくする

VSCodeの Copilot Chat のペインでAIへ指示する際、イラっとする動きをすることが2点ほどありました。具体的には

  • 上下でカーソル移動する際に、1行目で↑キーを押すと前に送信した文章が表示されてしまう(履歴移動になる)
  • まだ入力中なのに間違えてEnterで送信してしまう

という点です。今回はこれらの解消方法を見つけたので紹介します。

続きを読む

OpenCode の GitHub Copilot 連携機能の仕組みを読み解く(注意点あり)

[ ! ] 2026-01-16(金) 追記

OpenCode on X: “OpenCode can now officially be used with your Github Copilot subscription …”
https://x.com/opencode/status/2011790750543983072

にある通り公式に GitHub Copilot 連携がサポートされたようです。 こちらの記事は、公式連携がサポートされる前にどのように OpenCode が GitHub Copilot 連携を実現していたのかの調査の記録として残しておきます。

はじめに

Claude Code の OSS 版と言われている

OpenCode | The open source AI coding agent
https://opencode.ai/

が話題になっています。 私は普段 GitHub Copilot を利用しているのですが、この OpenCode は GitHub Copilot との連携に対応しています。 …となると、 Claude Code を使わずとも、 OpenCode を使えば、追加料金なしで Claude Code っぽい環境を手に入れられるのでは?と思い、興味が湧きました。

ただ、利用する前に一点気になることがありました。 それは、 GitHub Copilot って 3rd パーティ製アプリに対して Copilot を使った操作の API を公開してない認識だったので、どのように連携してるんだろう?という点でした。 この部分について調べてみたところ、興味深い点と少し注意が必要な状況であることがわかったので、 今回はその内容について共有したいと思います。

続きを読む