What's New in v5.25.4
SSH Now Works End-to-End
The # SSH picker introduced in v5.25.3 is now fully functional:
- When you attach an SSH host via
#, the server enriches the attachment with stored credentials (SSH key path or decrypted password) before passing it to Claude CLI - Claude CLI now processes text content blocks (SSH host details) and prepends them to the prompt — Claude knows exactly where and how to connect
- Credentials never leave the server — the frontend sends only metadata (hostId, label, host, port), sensitive auth is injected server-side
Multi-Select File & SSH Pickers
Both @ (file) and # (SSH) pickers now stay open after you make a selection:
- Pick multiple files or SSH hosts without retyping the trigger character
- The popup resets its search and index after each selection, ready for the next pick
- Close with Escape or click outside when done
Faster Session Loading
- Lightweight queries — new
getMsgsLitestrips tool content when loading sessions (frontend only needstool_name+agent_idfor badge counts, not full tool input) - Pre-compiled statements —
hasRunningTaskandgetChainTasksare now prepared once at startup instead ofdb.prepare()on every session load - Reduced DB size — tool input stored in database reduced from 10,000 to 500 characters across all code paths (chat, tasks, multi-agent, SSH)
Other Improvements
- Session ID tracking —
_detectedSidtracked on handler object for robustness across process event callbacks - Keyboard navigation — Enter key in
@and#popups no longer swallows the keystroke when no item is selected
Install / Update:
npx github:Lexus2016/claude-code-studio@latest