Skip to content

Releases: Lexus2016/claude-code-studio

Claude Code Studio v5.39.2

23 Mar 16:03

Choose a tag to compare

What's Changed

  • chore: release v5.39.2
  • fix: forum mode cross-project context leak and keyboard button handling

Installation

# Run latest version directly
npx github:Lexus2016/claude-code-studio

# Or install globally
npm install -g github:Lexus2016/claude-code-studio
claude-code-studio

Open http://localhost:3000 in your browser

v5.39.1

23 Mar 15:29

Choose a tag to compare

Fix

  • Telegram bot crash on startupBOT_I18N.en locale used this._t() for 3 keys (fm_btn_last5, fm_btn_full, fm_btn_open_chat) in an object literal where this is not a class instance, causing TypeError: this._t is not a function at module load. Replaced with literal English strings.

Claude Code Studio v5.39.0

23 Mar 14:38

Choose a tag to compare

What's Changed

  • chore: release v5.39.0
  • feat: Telegram Write button, localized forum buttons, file attachments, UI race fixes

Installation

# Run latest version directly
npx github:Lexus2016/claude-code-studio

# Or install globally
npm install -g github:Lexus2016/claude-code-studio
claude-code-studio

Open http://localhost:3000 in your browser

v5.38.1 — Toast Notification Polish

21 Mar 18:45

Choose a tag to compare

Toast Notification Polish

Minor UI fix for toast notifications.

What changed

  • Repositioned from bottom: 22px to 96px — no longer hidden behind the bottom action bar
  • Slide-up animation — toasts now smoothly slide in from below instead of a simple fade
  • Higher z-index (10000) — guaranteed to render above all overlays and modals
  • Enhanced visuals — accent border color, deeper shadow (0 4px 24px), slightly bolder text

Full Changelog: v5.38.0...v5.38.1

v5.38.0 — Telegram Rich Actions & Deep-Link Navigation

21 Mar 17:34

Choose a tag to compare

Telegram Rich Actions & Deep-Link Navigation

A major Telegram UX overhaul that turns every message into an interactive control panel. No more typing commands — just tap buttons.

Rich Inline Action Buttons

Every completion, error, full-message view, and history display now shows context-aware action buttons:

Forum Mode (2 rows):

Row Buttons
Primary 💬 Continue · 📄 Full · 📋 Diff
Navigation 📁 Files · 📜 History · 🆕 New

Private Chat:

Row Buttons
Actions 💬 Continue · 📄 Full · 🏠 Menu

Error messages now include Continue + History buttons alongside Retry, so you're never stranded after a failure.

Deep-Link Topic Navigation

Forum topics now use Telegram URL buttons (t.me/c/ID/THREAD_ID) for cross-topic navigation. Click "Go to project" in the Activity topic → Telegram instantly navigates you to the project thread. No more manual scrolling through topics.

New Forum Actions

Action What it does
fm:compose Opens compose prompt in current topic
fm:diff Shows git diff for the project
fm:files Lists project directory
fm:stop Stops running task
fm:info Shows project info

Auto-Create Project Topics

Switching to a session whose project topic doesn't exist? It's automatically created instead of showing an error. Seamless experience for new projects.

WebSocket Queue Race Fix

Fixed a race condition where page refresh could lose the message queue. When a WebSocket closes, non-empty queues now get a 30-second grace period before cleanup. If the browser reconnects within that window, the queue is preserved intact.

HTML Parse Error Resilience

If Telegram rejects HTML formatting, messages are automatically retried with tags stripped — ensuring delivery even with malformed markup.

Full Changelog: v5.37.0...v5.38.0

v5.37.0 — Internal Cleanup & Attachment Optimization

21 Mar 11:05

Choose a tag to compare

Internal Cleanup & Attachment Optimization

A housekeeping release that simplifies the codebase, removes unused dependencies, and optimizes how file attachments are processed.

What changed

Text attachment optimization — Text files attached to messages are now passed as file blocks (same pipeline as images) instead of being base64-decoded and inlined into the prompt. Claude CLI saves them to temp files and reads via its Read tool. This keeps prompts compact and avoids command-line length limits on Windows.

Removed engine column — The engine parameter was removed from session creation across all call sites (~10 locations in server.js). The column was no longer used since the CLI is the only execution engine.

Dropped @anthropic-ai/claude-code SDK — Removed from package.json dependencies. The project spawns the Claude CLI directly and doesn't use the SDK. This eliminates ~350 lines from package-lock.json and speeds up npm install.

Generic attachment label — "Attached images" renamed to "Attached files" in claude-cli.js since attachments can be any file type, not just images.

Details

File Change
server.js Remove engine param from createSession INSERT + all 10 call sites; refactor buildAttachmentContentBlocks for text files
claude-cli.js "Attached images" → "Attached files"
package.json Remove @anthropic-ai/claude-code dependency
package-lock.json −355 lines (SDK tree removed)

Full Changelog: v5.36.0...v5.37.0

v5.36.0 — LLM Proxy, Docker Security & Project UX

21 Mar 10:02

Choose a tag to compare

LLM Proxy/Gateway, Docker Security & Project UX

Three improvements that make Claude Code Studio more enterprise-friendly and easier to use.

LLM Proxy/Gateway Support

Route all API traffic through your corporate LLM gateway — LiteLLM, Bifrost, OpenRouter, or any OpenAI-compatible proxy. Set ANTHROPIC_BASE_URL and the SDK engine will use your proxy while preserving authentication.

ANTHROPIC_BASE_URL=https://llm-proxy.company.com
ANTHROPIC_API_KEY=your-proxy-key

Perfect for teams that need centralized billing, rate limiting, model routing, or audit logging across all LLM usage.

Docker Non-Root Container (fixes #14)

The container now runs as node (uid 1000) instead of root. Claude CLI rejects --dangerously-skip-permissions under root, which previously broke Docker deployments. Now works out of the box with proper file ownership.

Add Project — Direct Path Input & Folder Filter

The "Add Project" modal now includes:

  • Editable path input — type or paste a path directly, hit Enter or click "Go" to navigate
  • Real-time folder filter — instantly find folders by name substring, no more scrolling through long directory listings

What changed

File Change
claude-cli.js Preserve ANTHROPIC_API_KEY when ANTHROPIC_BASE_URL is set
Dockerfile Switch to node user (uid 1000), chown writable dirs
docker-compose.yml Pass ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN, CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS
.env.example Document proxy env vars
public/index.html Path input field, folder filter, Go button, i18n
READMEs Updated env vars + feature tables (EN/UA/RU)

Full Changelog: v5.35.0...v5.36.0

v5.35.0 — Docker Registry Mirror

20 Mar 15:03

Choose a tag to compare

Docker Registry Mirror Support

Enterprise teams can now pull the base Docker image from private registries — Artifactory, Nexus, Harbor, or any OCI-compliant mirror — by setting a single environment variable.

Usage

# Standard (Docker Hub)
docker compose up -d --build

# Private registry
MIRROR=my-registry.company.com docker compose up -d --build

Why it matters

Corporate networks often block Docker Hub or require all images to flow through an approved registry. Previously, users had to manually edit the Dockerfile. Now it's a one-liner — no file modifications needed, fully backward-compatible.

What changed

  • Dockerfile: parameterized FROM via ARG BASE_IMAGE=node:20-bookworm
  • docker-compose.yml: BASE_IMAGE build arg with ${MIRROR:+${MIRROR}/} prefix expansion
  • README docs updated across all 3 languages (EN/UA/RU)

Closes #13

Full Changelog: v5.34.0...v5.35.0

v5.34.0 — Session Compact

20 Mar 13:16

Choose a tag to compare

Session Compact — Summarize & Continue

Hit Compact & New in the session bar to compress the current conversation via Haiku and continue in a fresh session — all context preserved, zero token waste.

What's new

  • Session Compact — new API endpoint POST /api/sessions/:id/compact uses Haiku to summarize the entire conversation into a structured context block, then creates a new session with that summary as the first message. Perfect for long-running sessions that hit context limits.
  • Compact & New button — appears in the session bar alongside existing controls. One click: summarize → open new tab with fresh session containing full context.
  • Queue editor UX — expanded editing mode with larger editor area, improved button styling, and better visual hierarchy when editing task descriptions on the Kanban board.

Technical details

  • Haiku summarization with ~80K character transcript cap
  • New session inherits project directory, MCP servers, skills, model, and engine settings
  • i18n support for compact feature across all 3 languages (EN/UA/RU)
  • 171 lines added across server.js and public/index.html

Full Changelog: v5.33.0...v5.34.0

v5.33.0 — Zero Compilation: node:sqlite on Node 22.5+

18 Mar 07:28

Choose a tag to compare

Zero Native Compilation on Node.js 22.5+

The single biggest installation friction — native C++ compilation of better-sqlite3 — is now eliminated for Node.js 22.5+ users.

How it works

New db-adapter.js detects your Node.js version at startup:

Node.js version SQLite backend Build tools needed?
22.5+ Built-in node:sqlite (DatabaseSync) No — just npm install
18.0 – 22.4 better-sqlite3 (unchanged) Yes — Python, make, g++/MSVC

Why this matters:

  • Windows users: no more Visual Studio Build Tools headaches
  • Docker: smaller images, faster builds — no python3, make, g++ layer
  • CI/CD: cleaner pipelines with no native addon compilation
  • npx: npx github:Lexus2016/claude-code-studio just works on Node 22.5+ — zero setup

better-sqlite3 moved from dependencies to optionalDependencies — it's only installed and compiled when Node.js < 22.5.

The adapter provides a unified API with shims for db.pragma() and db.transaction() so the rest of the codebase is unchanged.

Clipboard Image Copy Fix

Fixed NotAllowedError when copying images to clipboard in the web UI.

Root cause: fetch() to load the image introduced an async delay, causing the clipboard.write() call to happen outside the browser's user gesture window.

Fix: Pass Promise<Blob> directly to ClipboardItem — the browser resolves it lazily while the clipboard.write() call itself stays synchronous within the gesture. Also auto-converts all image formats (JPEG, WebP, GIF, SVG) to PNG via offscreen canvas for cross-browser compatibility.

Stats

  • New file: db-adapter.js (121 lines)
  • server.js: 10 lines removed (pragma setup moved to adapter)
  • public/index.html: clipboard copy rewritten (34 lines)
  • package.json: better-sqlite3optionalDependencies
  • README updated (en/ua/ru) with Node.js 22.5+ note

Upgrade

npx github:Lexus2016/claude-code-studio@latest