ブログ公開のフラストレーション¶
このブログ、実は面白い仕組みで書いています。
私が写真と記事の内容を渡すと、AIが記事を書いてウェブに公開してくれるんです。Claude Codeがゴーストライターみたいな感じですね。
でもずっと不便だったことがありました。
パソコンからしか動かなかったんです。
いろんなスクリプトを実行しないといけなくて、iPhoneでは動かない。外出先で思いついたことをサッと記事にできない。これがもどかしくて仕方ありませんでした。
まあClaudeCodeにはリモコン機能があるんですが、あんまり使わないというか、ちょっと信用できないなと思っていたんです。
それで、自分で作ることにしました。
開発の様子¶
iPhoneで開発ドキュメントを確認しながら作業を進めました。
アーキテクチャ構造、プロジェクト構成、ビルドコマンド群が整理されているのを見て、これなら作れそうだと思いました。
Claude Codeに手伝ってもらったおかげで、コアな機能が動くところまでは本当に20分くらいでできちゃったんです。
ほんとにすごいです。
そこから3時間位かけてブラッシュアップして、実用レベルまで持っていきました。
思ったより早く完成して、自分でも驚きました。
AgentNestの仕組み¶
AgentNestというこのアプリは、自宅のパソコンにVPNで接続することを前提にしています。
指定したポートで待ち受けて、Claude Codeを呼び出してブログエントリーを作るという仕組みです。
実際にこのエントリ自体も、iPhoneから投稿しています。
手順はシンプルです:
1. iPhoneでスクショを撮る
2. Google フォトにアップロード
3. リンクを取得
4. 文章をある程度書く
5. AgentNestで送信
その後はブログシステムが整形してブログにしてくれます。
自分専用リモコンの価値¶
カスタマイズできる自分で作ったリモコンがあるっていうのは、想像以上に便利ですね。
市販のツールと違って、いろんな機能をつけたいと思ったらすぐ作れます。
使いにくい部分があればすぐ修正。
必要な機能だけに絞って軽量化。
自分の作業スタイルに完全に合わせられるのが、何より快適です。
技術的な詳細¶
使用技術スタック¶
- フロントエンド: React 19 + Vite + Material-UI
- バックエンド: Express.js + TypeScript
- AIエンジン: Claude Code SDK (
@anthropic-ai/claude-code) - リアルタイム通信: Server-Sent Events (SSE)
- デスクトップアプリ: Tauri(Rust + WebView)
- テスト: Playwright(E2Eテスト)
アーキテクチャ¶
- サーバー: Express.jsがポート3000で待ち受け
- Claude Code統合: SDKラッパーで操作を抽象化
- 権限管理: ファイル操作前に承認ダイアログ表示
- セッション管理: 会話履歴の保存・復元機能
システム要件¶
- Node.js 18以上
- Claude Code Maxサブスクリプション
- VPN環境(Tailscale推奨)
20分でコア機能が動いたというのは本当です。
基本的なAPI通信とコマンド実行だけなら、そんなに複雑じゃないんですね。
残りの3時間は主にエラーハンドリングやUI周りの改善に使いました。
使い勝手って大事です。
オープンソース公開¶
AgentNestはMITライセンスでオープンソース公開しています。
GitHub: Junpeiwada/AgentNest
DMGファイルでのmacOS用アプリケーションも提供しているので、開発者の方はぜひ試してみてください。
iPhone最適化も済んでいるので、スマホからでも快適に操作できます。
README.mdに詳しいセットアップ方法も書いています。
これからの展望¶
次はもっと機能を追加したいと思っています。
画像の前処理とか、記事のプレビュー機能とか。
音声入力で記事の下書きができたら面白いかもしれません。
自分で作ったツールだから、思いついたらすぐ実装できるのがいいですね。
これが既製品との大きな違いです。バグってるけどねw