0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PR: アディクシィ株式会社
ADiXiのコーポレートサイト

プログラム未経験のNWエンジニアがAIと挑んだOSS開発!眠っていた古いスマホを卓上デスクペット×遠隔承認リモコンに転生させた話

0
Last updated at Posted at 2026-09-15

ネオ秘書くん メインバナー

こんにちは!インフラ・NW(ネットワーク)エンジニアとして約10年、PMとして約2年ほどITの世界で働いている者です。

これまで業務で本格的なプログラミング(PythonやWeb開発など)を書いた経験はほとんどありませんでした。しかし、昨今のAIコーディング技術の急速な進化に背中を押され、「自分自身の日常の課題を解決する本物のツールを作ってみたい!」と一念発起。

約8ヶ月の紆余曲折を経て、引き出しで眠っていた古いスマートフォンを活用するデスクトップ&モバイル相棒ツール**『ネオ秘書くん』**を完成させ、先日GitHubでオープンソース(OSS)として公開しました!🎉

👉 GitHubリポジトリ: https://github.com/Siitake-man/hisho-kun (MITライセンス)

この記事では、なぜ開発未経験のNW屋が「つくる側」へ踏み出したのか挫折しかけた構想がどうやって「スマホ連携の相棒」として蘇ったのか、そしてAIコーディングの最大の悩みである「承認待ちでPC前に縛られる問題」をどうやって解決したのか、そのリアルな試行錯誤と技術の裏側(自作MCPサーバー連携など)をすべて書きたいと思います!


1. はじまり:Google Antigravityとの出会いと「つくる側」への一歩

私がAIコーディングの世界に本格的に足を踏み入れたのは、2025年12月のことでした。

もともとGoogle AI Proプランを契約していたのですが、Google製のAI統合開発環境**「Antigravity」**が発表されたことがすべてのきっかけでした。

それまでにもAIのオンライン講座を受けたりはしていたものの、「で、具体的に自分は何を作るの?」という最初の一歩が踏み出せずにいました。そんな中、Antigravityの圧倒的な体験に触れ、**「これなら自分でも、アイデアを具現化できるかもしれない!」**と、長年憧れていた「つくる側」へ踏み出す勇気をもらいました。

まずは自社内で利用する社内システムを作るところからスタートし(これはこれで大変だったので別の機会に…笑)、基礎的な開発知識を身につけながら、「プライベートでも自分のためのツールを作りたい!」と考えるようになりました。

そこで2026年2月頭にふんわり構想したのが、以下のアイデアでした。

「PCのデスクトップに常駐するペットアプリのような秘書。AIも入っていて、カレンダーを見たり、雑談したり、いろいろ触れたら楽しそうだなあ」
(※この時は、PC画面の隅っこで動くだけの、すごくふんわりしたデスクトップアプリの構想でしたw)


2. 挫折と放置…そしてお盆明けの「電撃的なひらめき」

ところが、現実はそう甘くありませんでした。
自社システムの構築タスクと本業(現場)の負荷に圧され、開発はまったく進まず……。次第にモチベーションも失い、春先から初夏にかけて作業は完全にストップしてしまっていました。

転機:AIコーディング特有の「時間浪費感」

事態が急展開したのは、2026年7月〜8月のことです。
再び多数のアイデアが湧き、AIエージェントを使ってガシガシ開発を再開していたある日、ふと強い違和感を覚えました。

「AIエージェントってめちゃくちゃ便利だけど……結局ずっとIDEの画面とにらめっこしてないか?」
「AIが考えてコードを書いてる数分間、画面を見てても何もできないし、時間を浪費してる感があるな……。目を離せたらいいのに!」

そう、AIエージェント(Claude CodeやClineなど)は優秀で以前よりも目を離せるようになってきていますが、ファイル変更やコマンド実行のたびに**「承認ダイアログ(Y/n)」**を出して人間の許可を待ちます。(出さないようにもできますが、私はしていません)
**「画面を見ていても意味はないけれど、承認待ちで止まるから席を離れられない」**という、猛烈なジレンマに縛られていたのです。

AI承認待ちに縛られるBeforeとスマホワンタップ承認のAfter

💡 点と点が繋がった瞬間

「PC画面から目を離せたら便利なのになあ、、、」と考えたとき、脳内でパズルのピースが音を立てて噛み合いました。

「あれ? 通知させるアプリを作ればいいのかな?」
「でもそれWindows の標準機能にあるよな、、、。それにPC画面に通知が出ても、席を外してたら見えないし……スマホに転送する?」
「……あ!!」
「秘書くんだ!!!」
「2月に放置した『秘書くん』をスマホの中にも住まわせて、スマホで通知を受け取って、コマンドの承認・拒否もスマホ画面からワンタップでポチッとできたら……これ、めちゃくちゃ凄くないか!?」

デスクの引き出しを開けると、使わなくなって眠っていた古いスマートフォンが転がっていました。

「これだ。あの古いスマホを、AIコーディングの卓上専用コックピットに転生させよう!」

これがお盆明けのことでした。そこから取り憑かれたように開発を進め、わずか約2週間で原型がほぼ完成。微修正とセキュリティ強化を重ね、今回のv1.0.0リリースに漕ぎ着けました。


3. 『ネオ秘書くん』に込めた5つの要件

開発にあたり、自分自身のリアルな課題から以下の5つの要件を定義しました。

  1. 有料タスク管理「TickTick」の代替ができること:
    • 自分が長年課金していたTickTickの機能(タスク、手帳風カレンダー、ポモドーロタイマー、習慣トラッカー)を内蔵し、サブスク代を節約する!w
  2. MCP経由で各種コーディングエージェントと連携できること:
    • Anthropic標準のMCP(Model Context Protocol)を採用し、Claude CodeやClineから通知や承認を飛ばせるようにする。
  3. スマホ側へリアルタイム連携し、スマホで承認・拒否できること:
    • PCから離れてベッドにいても、キッチンでお茶を淹れていても、スマホワンタップでAIの作業を継続させる。
  4. レトロなドット絵キャラクターが生活すること:
    • 無機質なツールではなく、机の上でピコピコ動いて癒やしてくれる「相棒(Desk Pet)」にする。
  5. ローカルLLMを内蔵し、APIキーがない人でも無料で動くこと:
    • 有料のClaude/OpenAIキーがなくても、軽量GGUFモデルをローカルCPUで動かせるようにする。

4. 完成した姿とアーキテクチャの裏側

完成したシステムがこちらです。

古いスマホを卓上Desk Petへ転生

古いスマホでブラウザ(PWA)を開くだけで、机の隅にかわいいドット絵ペット(秘書くん/イルカのカイル君)が現れ、PC上のAI開発とリアルタイムに同期します。

技術的なキモ:自作MCPサーバー & ゼロトラスト & 3段階スマート承認

「PC内のAI」と「机の上のスマホ」をどう繋いでいるのか? 全体のデータフローは以下の通りです。

[ 各種AIエージェント ] (Claude Code / Cline / Cursor / Codex 等)
       │
       ▼ (stdio / JSON-RPC: MCPプロトコル)
[ 自作 MCPサーバー ] (neo_hisho_bridge)
       │
       ▼ (ローカル HTTP / SSE: 共通DTO AgentApprovalRequest)
[ ネオ秘書くん同期サーバー ] (Python / asyncio)
       │ ├─ 🟢 Auto-Allow (安全な閲覧・テストは即時0秒自動通過)
       │ ├─ 🟡 Prompt (通常編集・コミットはスマホへ通知)
       │ ├─ 🔴 Strict (破壊的変更は警告バナー+確認強制)
       │ └─ 📝 Audit Log (全承認履歴をSQLiteに監査証跡として保存)
       ▼ (自宅Wi-Fi / PWA: Bearer認証 & 自己承認RCE遮断)
[ 卓上スマホ (Desk Pet) ] 📱「ベッドやキッチンからワンタップでポチッ!」

4ステップ MCPリモートスマート承認フロー

  1. 自作MCPサーバー (neo_hisho_bridge) と共通アダプター:
    • エージェント側に ask_human_approval ツールを持たせ、AIが実行許可を求めた瞬間にPythonサーバーへ中継。Claude CodeやClineなどフォーマットが異なるエージェントも共通DTOで一元吸収。
  2. 3段階 Approval Policy エンジン(認知負荷の激減):
    • すべてのコマンドで人間を止めるのは非効率。git statuspytest などの安全な操作は**「Auto-Allow(即時許可)」でAIをノンストップ疾走させ、rm -rfgit reset --hard などの危険操作のみ「Strict(赤色警告)」**としてスマホに強烈なパルスバナーを発火させます。
  3. NW屋としてのこだわり(ゼロトラスト & 自己承認防止):
    • 「自宅Wi-Fiだから安全」という考えはやめてみました。
    • 端末ごとにBearerトークンを発行し、DB側はSHA-256ハッシュ照合。
    • 自己承認(Self-Approval)の構造遮断: 承認要請元のIPと承認実行元のIPが一致する場合は「攻撃者が自作した承認を自分で通すRCE」とみなして即時遮断。スマホからの承認のみを有効とします。
    • 全承認アクションはSQLiteの監査ログ(Audit Log)にタイムスタンプとクライアントIP付きで完全記録。

完全ローカルLLM&プライバシー保護


5. 個人開発最大の学び:「あれもこれも」の無間地獄と引き算の美学

今回の開発で一番苦しみ、そして一番学んだのは**「やらないことを決める(引き算)」**でした。

開発が進んで動くようになってくると、ものすごく楽しくなって、

  • 「ミニゲームも5種類入れちゃおう!」
  • 「音声認識で声で会話させよう!」
  • 「Googleカレンダーとも双方向完全同期させよう!」
  • 「英語対応も海外向けにしなきゃ!」
    と、次から次へとアイデアが溢れ出てきました。

しかし、それを全部やろうとした結果、**終わりの見えない「機能追加の無間地獄」**に突入してしまいました……(笑)。

「このままではいつまで経ってもリリースできない」「2月の二の舞になる」と気づき、**『まずは一番届けたいコア価値(Desk Pet × リモート承認)に集中し、他は思い切って削る!』**という決断を下しました。

  • 英語対応 ➔ まずは日本語でMVPをローンチし、基盤を固めてから次期ステップへ!
  • 音声対話 ➔ 将来アップデートへ回す!
  • キャラもまずは「秘書くん」と「カイル君」の2大看板に絞る!

この「MVP(実用最小限の製品)を出すために引き算をする」という経験は、PMやエンジニアとして一生モノの財産になりました。
(※ちなみに、コアが綺麗に固まったおかげで、リリース直後の英語Showcase・チートシート化はわずか半日で爆速完了できました!)


6. おわりに:インフラ知識 × AIコーディングの可能性

プログラム未経験だったNWエンジニアが、AIと二人三脚で挑んだ初めてのOSS開発。

実際にやってみて確信したのは、**「インフラやNWの知識は、AIコーディング時代に最強のアドバンテージになる」**ということです。

コードの細かい構文はAIが教えてくれます。しかし、「システム全体の通信経路はどうあるべきか」「セキュリティ境界をどこに置くか」「セッションやタイムアウト、パケット再送の冪等性をどう制御するか」というアーキテクチャの骨格を決める力は、インフラエンジニアの経験がそのまま100%活きました。

もし「自分はコードが書けないから」と躊躇しているインフラエンジニアの方がいたら、ぜひ一歩踏み出してみてほしいです。世界がガラッと変わります!

そして自分のために作ったこのツールですが今では欠かせない開発の相棒となりました!!
せっかくなので画面を置いておきますので、触ってみてもらえると嬉しいです!

Screenshot_20260912-145432.png

スクリーンショット 2026-09-12 131808.png
Screenshot_20260830-210559.png

image.png


📦 GitHubで全コードを公開しています

完成したコードは、**404件の単体テスト(100%全緑パス)**を含め、すべてMITライセンスでGitHubに公開しています。ブラウザでそのまま動くShowcaseや公式チートシートも用意しています。

もしご自宅に使っていない古いスマートフォンがあったら、ぜひ机の上の「相棒」として蘇らせてみてください!

気に入っていただけたら、記事のいいね(LGTM)や、GitHubの**Star(⭐)**を押していただけると飛び跳ねて喜びます!✨

最後までお読みいただき、本当にありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?