Closed6
Discord bot を Cloudflare Workers (+AI) で作る

自分用の Discord bot が欲しくなったので開発する。
Discord bot のことはよく知らないので調べるところから。
motivation
ラバーダッキングの効果はとても良いと身に沁みているので、頻繁に利用したい。
しかし、作業に没頭すると長時間黙々と進めてしまい、ラバーダッキングしない。これが良くない。
→ 定期的(20分に一度くらい)に、今何の作業をしているのかを聞いてくる bot が欲しい
できれば bot は会話コンテキストを覚えていてほしい。
xxxの作業中でyyyという状態だったと思うけど、今の進捗はどうですか?みたいな聞き方をしてほしい
テキストまたは音声で bot に作業進捗を伝えると、良い感じに要約したりアドバイスして欲しい
作りたいもの
Discord bot
技術スタック(案)
- デプロイ先: Cloudflare Workers
- 使うAI: Cloudflare Workers AI
- ライブラリ:
- discord bot 開発用のフレームワーク TODO: 調べる
雑に作りたいので、 DDD やクリーンアーキテクチャみたいな設計にせず、トランザクションスクリプトで作る。ほとんど AI (Codex) に実装してくれって投げるかも。
完全に Vibe Coding せずに、事前にある程度調べてから Vibe Coding する。AI が提案する設計や実装の方が自分の当初の想定よりも優れていたら AI 案を採用する。

今日(2025/10/01)午後から作り始めて、今日中に実装完了したい

**off topic **
Gemini AI Pro プランに加入してるから LLM は Gemini の API を使おうかな、と思ってたけど、Gemini AI Pro プランはあくまで Gemini のアプリを利用するためのもので、API の無料枠が広がったりするわけではなかった。しょんぼり。

参考
- Hosting a Reddit API Discord app on Cloudflare Workers | Documentation | Discord Developer Portal
- discord/cloudflare-sample-app: Example discord bot using Cloudflare Workers
- cloudflare-workers で動く claude3 の discord-bot を作ってみた
- Cloudflare Workers + HonoでDiscord botを作る際のポイント | lacolaco's marginalia
- Discord Hono | Discord Hono
- Cloudflare Workers で Hono と一緒に Discord BOT を動かす

作業ログ
-
npm create cloudflare@latest
でプロジェクトを作る - biome や lefthook のいつもの設定をコピペで導入
- My Applications | Discord Developer Portal で Discord App を create
- Public Key, Application ID をコピーして .env に記録する
- Discord Developer Portal の Bot メニューで "Reset Token" をクリックして表示されたトークンを .env に記録する
- OAuth2 メニューで Scope を "bot"、 Permission を "Send Messages" と "Use Slash Commands" の 2 つにチェックを入れて招待リンクを作成し、 Bot 任意のサーバにインストール
- Discord で Bot を動作させる対象のサーバーIDをコピーして .env に追記する
DISCORD_TOKEN=zzzz DISCORD_PUBLIC_KEY=xxxx DISCORD_APPLICATION_ID=yyyy DISCORD_TEST_GUILD_ID=aaaaa
- General Information メニューでInteractions Endpoint URL
Endpoint に Cloudflare Workers のデプロイ先 (https://XXX.YYY.workers.dev
) を設定 - Discord Hono を使って
hello
コマンドを登録した - Discord Hono を使って
hello
コマンドの応答を実装してデプロイした

面倒になってあとは全部 AI に投げた
このスクラップは11日前にクローズされました