序
昨年の夏から育休中でプログラミングどころではなかったのですが、復帰の時期が近づいている中で、さすがに触っとかないとまずいかなという気がしたので、Claude Codeを使ってAIエージェントファーストの(でも人間も使いやすい)PKMツールを作れないかなと思って作ってみた体験記です。
ちょっと恥ずかしいですが、最後に実際のセッションへのリンクもあります。参考になるかは不明ですが、よかったら見ていってください。
作ったもの
paperの紙📃です。神ではないです。
Claudeと相談して幾つか候補を挙げてもらったんですが、日本語話者として、AIに「kamiに書いておいて」と指示するのはなかなか愉快じゃないか、と思ってこの名前になりました。
自分でドッグフーディングしてまずまず満足していますが、まだ詰め切れてない感があるので、kamiの細かい紹介はまた別に記事を書きたいと思っています。
とはいえ、最低限使える状態にはなってると思うので、もし興味があれば使ってみてください。
使い方
# インストール(現在Bunのみ対応)
bun install -g @kami-pkm/kami
# プロジェクトレベルの初期化
kami init
# Agent Skillのインストール(各社コーディングエージェント用)
kami install -t claude-code -l project
kami install -t codex -l project
kami install -t gemini -l project
# WebUIの表示
kami serve
セットアップしたら、「今の手順をkamiにまとめておいて」とか「インストール手順はkamiに書いてあるから参照して」とか言えば使ってくれると思います。
ちなみに、Claude Codeとほぼ同じスキーマでhooksを書けるようにしてあります。
私は、グローバルスコープのディレクトリをgit管理しておいて、グローバルの記事をいじるたびにGitHubにpushされるようにフックを設定しています。
フックのスキーマもスキルに書いてあるので、お手元のエージェントに頼めば書いてくれると思います。
記事が溜まってきたら、kami serveすると、ローカルとグローバルの両方の記事をまとめて表示するWebUIがlocalhost:3000で立ち上がります。WebUIから記事を追加したり、修正することもできます。
開発の経緯
ClaudeをProプランで使っているのですが、Opus4.6が出た頃にお試しで私用のツール開発にClaude Codeを使ってみて、「職業ソフトウェアエンジニアがまともに使うには、かなりリミットが厳しいだろう」ということはわかっていました。セッションあたりのリミットもさることながら、週あたりのリミットが特に厳しい。
ただ、Claude Maxに月100ドルも200ドルも突っ込むのは、子どもが生まれたばかりの身としては厳しい…。ケチケチされど快適なAIコーディングをなるべく低予算で実現するために、Codex、Geminiと協業させて、トークンを分散させたいと考えていました。
Gemini CLIは(今のところ)無料枠がかなりあるのでWebリサーチ担当、Codex CLIをコーディングと設計レビュー担当、Claude CodeはOpusで人間とのインターフェイスになってもらい、要件定義や設計、他社エージェントのオーケストレーションを担当してもらう、という座組にしたくて、これならClaude20ドルとChatGPTに3,000円、現在の為替で大体6,000円ちょっと/月で済みます。
で、これをやろうと思った時に、エージェント間でコンテキストをシェアするためのナレッジベースがあったらいいんじゃないかと、そしてあわよくば、それを人間も使えるようにしたら便利なんじゃないかということで、エージェントコーディングの題材として開発してみることにしました。
さらなる動機
経験ある方もいらっしゃると思いますが、ちょっと前まで(もしかしたら今も)コーディングエージェントにTailwindCSSをセットアップさせようとすると、v4ではなくv3の手順でセットアップしてしまい、tailwind.config.jsを書き始めてました。
でも、「TailwindCSSはv4からインストール方法が変わってるから最新の情報を調べてセットアップして」とかいちいち指示するのも面倒だし、ましてやこんなのをCLAUDE.mdに書きたくないので、必要な時に検索できるナレッジベースが欲しかった、というわけです。
開発環境
育休中ということもあり、「スマホでどこまでできるのか」という興味もあったので、原則iOS版Claudeアプリの「コード」からの指示でやってみました。デフォルトクラウド環境で、モデルはOpusのみ使用です。
使用量とコード量
2/15(日)から開発を始めて、翌日2/16(月)の深夜には大体予定していた機能の実装が終わりました。
/fastを試す用にくれた$50分の追加使用量もちょっと使いました。
書いたコードの量はこんな感じ。
セッション数は10回ですが、これはもう少し分割すべきでした。最初なんとなく一つのセッションで長く作業していた結果、5時間リミット明け直後に初手で一気に30%ぐらい消費してしまい、出力の精度も落ちてしまいました。
要件定義セッション→仕様書&実装計画セッション→実装計画をいい塩梅のところで分割して指示、という流れで指示するのが良さそうです。
開発体験
そもそもiOS版Claudeアプリの体験がなんかあんまりよくないというのは差し引いておくとして、ほぼスマホだけでこの規模の、自分の欲しいツールができてしまうんだなぁという感動がありました。
ただ今回に関して言えば、結局成果物のレビューは実際に動かしたりしたいため、スマホだけで開発を完結させるのはさすがに厳しかったです。プルリクのdiffも、個人的には2000行ぐらいなら全然許容範囲なんですが、それをスマホで見ろと言われるとしんどいです…。
5時間のセッションを最短で回すために、なんとなくコードみて「いいんじゃね?1」ぐらいでマージしてしまっていたのが実情です。ただ、Opusで作業してたこともあり、それで大した問題は起こりませんでした。これをCodexあたりにレビューしてもらえば、人間の負荷はかなり減るはずです。
Proプランだとプルリク1〜3回分の作業で5時間のリミットにヒットしてしまうため、30分ぐらい稼働して4時間半待つ、みたいになってしまったのがしんどかったです。2026年の今、伝わる例えかわかりませんが、2012年のパズドラやってるような気分になりました。
終わりに
技術的に作れることはわかっていても、本当に自分の望む体験が得られるかわからないし、実際かかる工数を考えると手を動かすのが億劫になり、結果実装に至らない。そういうアイデアは誰しも一つや二つ持っていると思うんですが、それを実現するハードルがAIコーディングでなくなりました。
一人の職業ソフトウェアエンジニアとして、この先が怖くもあり楽しみでもある、そんな気持ちです。
Appendix: セッション公開
人間の指示がフラフラしていて恥ずかしいですが、セッションの履歴を公開します。この程度の指示でもそこそこ動くものができるいうことです。怖いですね。
セッション履歴
1: 要件定義、CLI設計、CLIの実装
https://claude.ai/code/session_016cdStDpj2jJkm2kA6JZFj8
これは1セッションでやりすぎです。要件定義、CLI設計、実装の3セッションに分けるべきです。
あと、人間がブレブレですね。なぜ俺はCloudFlareにホストしたかったのか、これがわからない。
2: SKILL.mdを書かせる
https://claude.ai/code/session_015sSVPpwN1Bs2KsM7sxcQgZ
トークンを節約したい、と書けば英語になるかなと思ったけどならなかった。
手元に正確な数字が残ってないですが、SKILL.mdのトークン数が1300ちょっとから1200ちょっとに減ったはずです。
3: CLAUDE.mdを書かせる
https://claude.ai/code/session_01JWDgXGS8TwuaFvuXhy986x
4: WebUIの仕様書作成
https://claude.ai/code/session_01KT7butSA9U1aXSZFGa25cA
スタイリングにはTailwindCSSのv4とDaisyUIv5を使ってほしいです。TailwindCSSはv4でインストール方法が変わっているので、最新の情報を注意深く参照してください。
俺はもうこれを書きたくなかった。ただそれだけなんだ
5: WebUIの実装
https://claude.ai/code/session_01HcoF8LpJMPwmaUDVShbZV5
仕様さえできていればほとんど指示することはありません。
「やっといて」でできてしまいます。こわ。
6: npm publishの準備
https://claude.ai/code/session_01HcoF8LpJMPwmaUDVShbZV5
これ毎回忘れちゃうんですよねぇ
7: kami installコマンドの実装
https://claude.ai/code/session_01Wm9txwopTi561Lex3QFpXU
私は育休でニュースを追えてなかったので、3社エージェントともこの形式に対応しているという現在の知識しかなかったのですが、Opusは違ったようです。
CodexとGeminiはAgent Skillsに後から対応したので、二度手間になってしまいました。
これもkamiに書いておく必要がありそうです。
8: WebUIをレビューしての修正依頼
https://claude.ai/code/session_01UQVZ5m2QHEGy74xvLfwnX8
スマホで雰囲気レビューしかしてなかった恥ずべき事実が白日の元に晒されるセッション
9: WebUIの記事編集画面の修正依頼
https://claude.ai/code/session_01WDPTQectFtcyJS2oCCA668
スマホで雰囲気レビューしかしてなかった恥ずべき事実が白日の元に晒されるセッションその2
10: グローバルにインストールした時にWebUIのアセットが配布されない問題の修正
https://claude.ai/code/session_01QzGTo3L5PrDLsA61Ed2CoS
私がnpm publishすると、だいたい2つ3つ問題が発生します。
@kami-pkm/kamiのバージョンなぜ0.1.3なのか、その答えのうちの1つがここにあります。
-
正しいバイブコーディングかもしれない ↩


