Releases: fredchu/discord-claude-code-bot
Releases · fredchu/discord-claude-code-bot
v0.8.0
Discord-friendly formatting
- System prompt now instructs Claude to avoid markdown tables (Discord cannot render them)
- Two alternative comparison formats: bold key-value lines (default) and code block aligned columns (data-dense)
- Applied to both
SYSTEM_PROMPTandRESUME_SYSTEM_PROMPT
Full changelog: https://github.com/fredchu/discord-claude-code-bot/blob/main/CHANGELOG.md
v0.7.0 — File Attachments
What's New
File attachment support
Send any file in Discord — images, code, PDFs, documents — and Claude Code will read it.
- Type-agnostic design: no per-format handling, Claude Code decides how to process each file via its Read tool
- 10 MB per-file size limit
- Temp files auto-cleaned after response
Full Changelog: v0.6.0...v0.7.0
v0.6.0 — Resume Local Sessions
What's New
/resume-local — Resume terminal CC sessions from Discord
Mobile use case: quit CC in terminal → pick up from Discord on your phone → /handback when you're back.
- Auto-discover sessions from
~/.claude/sessions/PID files +history.jsonl - Select menu shows last prompt + project path for easy identification
- Blocks resume of still-running sessions (must
/quitin terminal first) - Dedicated lighter system prompt for resumed sessions
isLocalResumeDB flag to distinguish bot-created vs resumed threads
/handback — Return session to terminal
Resets the Discord thread and prompts claude --continue to pick up in terminal.
Bug fix: stderr capture
Claude CLI errors now show in Discord instead of bare (no output).
Full Changelog: v0.5.0...v0.6.0
v0.5.0
Features
- Replace
thread-map.jsonwith SQLite (better-sqlite3+ WAL mode) for crash-safe session storage - Auto-migrate existing JSON data to SQLite on first startup (rename
.bakafter success) - Per-entry upsert via
saveEntry()instead of full-file overwrite - Graceful shutdown on both SIGINT and SIGTERM (closes DB properly)
v0.4.2
Fixes
- Rewrite
splitMessagewith segment-based approach — code blocks are never broken across Discord message chunks - Oversized code blocks (>2000 chars) are split and re-wrapped with proper fences on each chunk
- Long AskUserQuestion replies now use
sendChunkedinstead of truncating at 2000 chars
v0.4.1
v0.4.0
Features
- Interactive Discord buttons for AskUserQuestion permission prompts (replaces plain text)
- Button click resumes Claude session with user's choice
- Chained AskUserQuestion support (button → resume → another question → buttons again)
- "Other..." button option for free-text answers
Improvements
- Extract
sendAskButtonshelper to deduplicate button rendering logic - Extract
createToolUseHandlerhelper to deduplicate streaming callbacks - Add Discord customId length guard (
.slice(0, 100)) - Simplify redundant try/catch in button handler reply flow
v0.3.0
Features
- Increase task timeout from 10 to 30 minutes for long-running operations
- Return partial results on timeout instead of empty error
- Show elapsed time in streaming preview (e.g. "working... (2m34s)")
- Display recent tool names in preview (e.g. "🔧 Read → Grep → Edit")
v0.2.0
Features
- Streaming response with real-time Discord message updates (stream-json mode, 1.5s throttle, 40-char minimum delta)
- Long message auto-splitting for streaming output
Fixes
- Correct ACP repository link in README
Full Changelog: v0.1.0...v0.2.0
v0.1.0 — Initial Release
A lightweight Discord bot that bridges Discord threads to Claude Code CLI sessions.
Highlights
- Single-file TypeScript (~400 LOC) — fork and go
- Thread sessions with automatic
--resume - 6 slash commands (
/help,/new,/model,/cd,/stop,/sessions) - Thread context awareness, model switching, typing indicator
- Terminal Takeover — resume any bot session in your terminal for precise control
See README for setup instructions.