You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extension system — Install and manage extensions that add new pane types, CLI integrations, and server-side services. Extensions declare themselves via manifest files, appear in the pane picker, run in sandboxed iframes with WebSocket support, and can be enabled or disabled from the new Extensions management page. Built-in CLI agents (Claude Code, Codex, OpenCode) are now extensions under the hood.
OpenCode CLI support — Run OpenCode sessions alongside Claude Code and Codex. Sessions are indexed, appear in the sidebar, and support resume just like other coding CLIs.
AI-powered session titles — Right-click any session and choose "Generate title" to get a Gemini-generated name based on the conversation content. Configure your Gemini API key and a custom title prompt in Settings > AI.
Progressive sidebar search — Search now runs in two phases: a fast pass over already-loaded sessions, then a deep server-side search that scans session content on disk. A "deep search" indicator shows when the server pass is running.
Keyboard shortcuts dialog and new hotkeys — Press Alt+T to open a new tab, Alt+W to close the current tab, and Ctrl+Shift+Left/Right to reorder tabs. A keyboard shortcuts reference dialog lists all available shortcuts.
Terminal file links open in editor panes — Click a file path in terminal output to open it in a Monaco editor pane in the same tab, instead of needing a separate editor.
Pane refresh from context menu — Right-click any pane and choose "Refresh" to restart its content without closing and recreating it.
Collapsible tool strip in agent chat — Tool use/result blocks in Freshclaude conversations collapse into a single-line animated strip showing tool names as they run, settling to "N tools used" when done. Click to expand and see full details. Preference is remembered per browser.
Token budget display — Freshclaude pane headers show the current token budget usage so you can see how much context window remains.
Pane rename from CLI — Agents and CLI scripts can rename panes programmatically via the orchestration API, enabling automated workspace organization.
Electron desktop app foundation — Early support for running Freshell as a native desktop application with a setup wizard, system tray, auto-updater, and platform-native daemon management (launchd/systemd/Windows service).
One-command launcher script — Run scripts/launch.sh to pull updates, build, and start the server in one step, with the access URL saved to ~/.freshell/url.
Things that got better
Personalized sidebar — The sidebar now filters sessions to the current device by default, so shared servers show each user only their own sessions instead of everyone's.
Pane activity indicators — Sidebar and tab icons use three states: blue when a terminal is busy, green when idle and ready, and muted when inactive. Works across all CLI types including Codex.
Tab bar navigation — The tab bar replaces gradient fade with arrow-jump buttons when tabs overflow. Click an arrow to jump one tab; hold to scroll continuously. The + button stays fixed outside the scrollable area.
Tab tooltip — Hovering over a tab shows the full untruncated name, useful when many tabs are open and names get clipped.
Non-interactive session filtering — Sessions started via piped mode (claude -p) are automatically detected and hidden from the sidebar by default, reducing clutter from automated workflows.
Session pagination — The sidebar loads sessions in pages of 100 with infinite scroll, instead of fetching the entire list at startup. Combined with WebSocket compression (~85% smaller payloads), this significantly speeds up initial load on servers with large session histories.
Visible-first terminal rendering — The active terminal paints its viewport before background tabs replay their scrollback, making tab switches feel instant even with large buffers.
Browser pane localhost proxying — Browser panes targeting localhost URLs are proxied through Freshell's HTTP server, so they work reliably in Docker and WSL2 environments where the browser can't reach the host's localhost directly.
Settings page redesign — Settings are reorganized into a Chrome-style sidebar layout with dedicated sections for Workspace, AI, Extensions, Network, and Safety. Extension and CLI provider management is unified into the Extensions tab.
Per-browser preferences — UI preferences like tool strip state, sidebar width, and tab ranges are now stored per-browser instead of per-server, so different devices using the same server keep their own layout preferences.
Context menu improvements — Right-click menus stay open when you right-click again (instead of closing and reopening), copy/paste actions are in the top section for faster access, and Mac Ctrl+click works correctly for context menus.
Editor panes follow app theme — Monaco editor panes now switch between light and dark themes to match your Freshell theme setting.
Agent chat draft preservation — Typed text in the Freshclaude composer survives pane splits and tab restructuring instead of getting lost.
Sidebar stability — Eliminated flickering and re-rendering on session updates, pagination boundaries, and refresh cycles. Timestamps update every 15 seconds instead of 60.
Windows security hardening — Windows firewall changes and WSL port forwarding now require explicit user confirmation before any elevation occurs, with proper least-privilege daemon execution.
WebSocket reliability — Fixed crashes from backpressure on large session stores, hardened reconnect flows for split panes, and prevented duplicate terminal creation across reconnects.
Stale client refresh — After a server update, stale browser tabs automatically refresh instead of silently running old code.
Subagent session hygiene — Codex subagent sessions no longer auto-bind to panes, and Freshclaude SDK subprocesses no longer inherit stale API keys from the parent environment.