xshojiの気になるトピックをまとめるブログ
AmpCodeの広告付き無料プランの1日のクレジットでできること:smartモードとrushモードの比較
はじめに
ampcodeには、3つのモードがある。
agent-modes - Owner’s Manual - Amp
https://ampcode.com/manual#agent-modes

今回はsmartモードとrushモードで「1日($10)でどこまで作れるのか」っていうのが気になって検証してしまった。深夜2時に。
続きを読むxshojiの気になるトピックをまとめるブログ
ampcodeには、3つのモードがある。
agent-modes - Owner’s Manual - Amp
https://ampcode.com/manual#agent-modes

今回はsmartモードとrushモードで「1日($10)でどこまで作れるのか」っていうのが気になって検証してしまった。深夜2時に。
続きを読む2025年末くらいにXのポストで AmpCode というサービスを知った。 このサービスは、比較的珍しい「広告付き無料プラン(Amp Freeと呼ばれてます)」があるAIコーディングエージェントで、無料でも最新のAIモデルを使える。
私は普段そんなにがっつりAIを使うことはなく、寝る前の1-2時間でちょっと思いついたことを試す、くらいの用途でAIを使っていたので、これだと最新のモデルも使えるしめっちゃええやん!ということで早速登録してみました。
ただし、登録したものの、すぐ使えずに結局一ヶ月近く待つことになったので、その話をまとめます。
続きを読むBetterTouchTool: キーシーケンスによるスニペット入力機能が突然動作しなくなったが、OSアップデートで解決した話 | xshoji’s blog
https://blog.xshoji.com/posts/20260117_btt-key-sequence-snippet-issue/
こちらで意気揚々と書いたブログの内容に関して、
と散々書いてたんですが、数日後に、macOS 26 でもガッツリ再発して頭を抱える事態が発生しました…
続きを読む普段、 VSCode でテキスト編集しているんですが、本当に若干ですが “もっさり” するんですよね。 私は普段 memo.txt と言うファイルにあらゆるメモを保存しているんですが、ちょっとしたメモを保存するのに VSCode を起動しようとすると、ほんの一瞬待たされるのでそこがストレスになっています。
そこで、最近 Zed エディタを試しているんですが、 Zed は非常に軽量で起動も一瞬ですしサクサク動きます。 今回は、そんな Zed エディタでキーボードのみで矩形選択(カラム選択)できるようにする設定方法を紹介します。
続きを読む以前
OpenCode の GitHub Copilot 連携機能の仕組みを読み解く(注意点あり) | xshoji’s blog
https://blog.xshoji.com/posts/20260106_opencode-github-copilot-integration-spec/
こちらで記事にした OpenCode の GitHub Copilot 連携機能ですが、2026年1月16日に公式にサポートされたと発表がありました。
OpenCode can now officially be used with your Github Copilot subscription
— OpenCode (@opencode) January 15, 2026
with the $39 pro+ subscription you get access to the best coding models
wonderful to see them support open source and user choice of tooling in this way pic.twitter.com/BUH1JtBF32
Your @GitHub Copilot subscription can now officially be used with @OpenCode pic.twitter.com/f5aJtVWhG6
— Jared Palmer (@jaredpalmer) January 15, 2026
ということで、改めて OpenCode の GitHub Copilot 連携機能が以前とどう変わったのか再確認してみました。
続きを読む[ ! ] 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 パッケージのテクニック集その1: Usageを綺麗に整形して見やすくする | xshoji’s blog
の続きです。前回は、Go 標準の flag パッケージで Usage を綺麗に整形する方法を紹介しました。 Usage は見やすくなったのですが、次の要件として、ロングオプションを扱いたい、というのがあります。
Unix系のコマンドラインツールでは、一般的にショートオプション( -f のような1文字のオプション)とロングオプション( --file のような複数文字のオプション)の両方をサポートしていることが多いです。
Go 標準の flag パッケージは、 任意の文字列をフラグ名として定義できるので、ショートオプションとロングオプションの両方を実装上定義することは可能ですが、それらが同じ意味のオプションであることが Usage からは伝わりづらいので、そのままではとても使えません。
前回紹介した有名な spf13/cobra や urfave/cli といったフレームワークを使えば簡単に実現できるのですが、 今回はあえて main.go のみで実装することにこだわりたかったため、Go 標準の flag パッケージだけでロングオプションを扱えるようにする方法を試行錯誤してみました。
多少複雑ですが、実用的な実装ができたので、今回はその実装方法について紹介したいと思います。
続きを読む注意: この記事で紹介するスニペットは Go 1.18以上(Genericsを使用するため) が必要です
VSCodeの Copilot Chat のペインでAIへ指示する際、イラっとする動きをすることが2点ほどありました。具体的には
という点です。今回はこれらの解消方法を見つけたので紹介します。
続きを読む[ ! ] 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 を公開してない認識だったので、どのように連携してるんだろう?という点でした。 この部分について調べてみたところ、興味深い点と少し注意が必要な状況であることがわかったので、 今回はその内容について共有したいと思います。
続きを読む業務でちょっとした検証用のツールや、調査用のコマンドラインアプリケーションを Go 言語で作成することがよくあります。
基本自分しか使わないのですが、何かきっかけでスクリプトを他の人に配ることもあり、このとき main.go のみで完結するようにしておくと、人に配るときや何らかの証跡と一緒に残しておく際もテキストファイル一つ渡せば済むので大変便利です。
また、配布先の人がビルドする時もトラブルが少ないです。
このため、外部のライブラリが必ず必要という状況でない限りは、できるだけ Go 標準ライブラリだけでツールを作成するようにしています。
ただ、Go 標準の flag パッケージはコマンドライン引数のパースを簡単に実装できる反面、 Usage の出力があまり綺麗ではなかったり、ロングオプションを扱うのが難しいなど色々使い勝手が悪い部分があります。
先ほど説明した通り、 main.go のみで実装することにこだわりたかったため、これまで、 spf13/cobra や urfave/cli のような外部ライブラリを使わずに、どうにかして Usage を綺麗にしたり ロングオプションを扱えるようにしたりできないか試行錯誤したので、その実装方法について何回かに分けて紹介したいと思います。
今回は「 Usage を綺麗に整形して見やすくする 」方法について紹介します。 ここで紹介する方法(以降、呼びやすさのために「 Custom Usage 」と表現します)を使うと、標準の flag パッケージだけで以下のような綺麗な Usage を出力できるようになります。
$ go run main.go -h
Usage: main [OPTIONS]
Description:
A sample command demonstrating simple template usage in Go CLI applications.
Options:
-f <string> (required) File path
-d Debug mode
-l <int> Index of line (default 10)
-u <string> URL (default "https://httpbin.org/get")
-w <duration> Duration of wait seconds (e.g., 1s, 500ms, 2m) (default 1s)
Go 標準の flag パッケージだけにしては結構見やすくなっているのではないでしょうか?
興味があれば、ぜひ詳細を読んでみてください。