Agent Zero v2.13
Highlights
This release brings a significantly improved file browser, sidebar project folders, slash commands for messaging integrations, native commentary streaming, broad performance optimizations, and numerous quality-of-life and stability fixes across the WebUI, LLM transport, plugin system, and desktop environment.
File Browser & Editor
- Redesigned file browser navigation — configurable path bar with breadcrumb and text modes, folder autocomplete with keyboard navigation, and fully clickable file rows without a loading overlay
- Consolidated create-new dropdown replaces separate New File and New Folder buttons
- Inline rename and new-folder creation in the shared footer input row, with modal rename preserved for external callers
- Preserved file tree ancestors — parent folders stay clickable during nested navigation; starting folder is now configurable and defaults to
/a0 - Canvas and picker lifecycle fixes — opening a file picker no longer blanks a live canvas listing, and live browsers navigate in place for path links instead of stacking windows
- File permissions and ownership preserved when applying editor patches — executable bits and host-user ownership are no longer replaced with root-owned 0600 files
- Skip hidden Markdown previews when opening source files, reducing median open time for large files from ~22.5 s to ~0.37 s
- Text editor line edits explicitly supported — removed the legacy label and documented all three patch forms
- LibreOffice saves follow renamed documents — desktop rename now uses native Save As so Writer retains the correct save target
Sidebar & Chat Organization
- Project folders for chats and tasks — collapsible sidebar folders grouped by project, with flat-view option, creation-time sorting, drag-and-drop reordering, and whole-family project moves
- Pin to Top improvements — project folder pins including a default "No project" pin, reactive pin indicators beside chat/task titles, and scoped indicator rendering
- Deep worker rendering — subordinate workers beyond the first child level now render correctly with recursive expansion and tapered indentation
- Drag performance — median hover-handler time in a 240-chat sidebar dropped from ~10 ms to ~0.1 ms
- Clearer status filters — consistent All / Working / Idle labels; "Recent activity" shortened to "Last active"
Messaging Integrations
- Slash commands for Telegram — built-in, plugin, global, and project commands with paginated menus, compaction confirmation, transcript export, and fresh-chat session binding
- Slash commands for WhatsApp — reuses the shared context-aware command catalog with text menus, tool permissions, plugin settings, and persistent chat selection
- Shared slash command documentation added to the plugin creation skill
- Improved settings experience for Telegram, Email, and WhatsApp — project and agent-profile scoped configuration, token-native status pages, and shared settings accordions
- Telegram bot management — stable names for unnamed bots, duplicate name rejection, and automatic restart on connection changes
LLM & Model Handling
- Native commentary streaming — public commentary from native tool calls now displays as streamed thoughts in generation logs
- Commentary preserved in Responses history replay so eligible native turns retain their original message items
- Stabilized Chat Completions cache boundaries — cache breakpoints no longer shift on every tool turn; marks the last leading context and last two nonempty assistant messages
- Provider refusals surfaced — content-filter and refusal finish reasons now reach the visible error handler instead of being silently retried
- Anthropic-specific thoughts instructions — scoped prompt adjustments for Anthropic models (including via OpenRouter and Bedrock) requesting public action summaries
- Scoped subagent model presets preserved — parent chat model overrides only copy when a new subordinate resolves to Default
- Chat naming refreshes as topics change by default, and subordinate delegation labels are no longer overwritten by automatic naming
- Subordinate names honored when continuing with an existing context ID
- Local provider dummy keys removed — static API-key defaults for LM Studio, llama.cpp, oMLX, and vLLM no longer override saved credentials
Performance
- Settings save ~6.5× faster by reusing the resolved Git version across active agents (10.1 s → 1.6 s median on 214 contexts)
- Cached global model presets —
get_effective_configdropped from 36.2 ms to 0.5 ms per call - Native tools built only for Responses turns — eliminates 400–450 ms of unused tool building on Chat Completions calls
- Rate-limiter skips token counting when no limits are configured (~70 ms saved per call on large prompts)
- Pooled HTTP connections for Codex — reuses TCP/TLS connections, saving 50–80 ms per request
- Empty plugin lookup results cached — Responses tool builds dropped from 112 ms to 58 ms
Browser Tool
- Browser context moved out of the system prompt into loop extras for cache-stable system prompts across turns
- Evaluate timeout — new
evaluate_timeout_secondssetting (default 30 s) with recoverable JavaScript cancellation and explicit recovery reporting - Empty evaluate calls rejected — missing scripts now return an actionable error instead of evaluating undefined
- Minified browser tool JSON in agent history with beautified display in the WebUI
- Startup state and stale URL fixes — cleared state when no active tab remains; pending results invalidated on chat switch; busy state released on subscription failure
- SOCKS proxy support —
socksioincluded in framework requirements; Browser install hook repairs missing support in existing environments
WebUI & Mobile
- Reusable overflow menus for chat composer controls with browser-zoom tolerance
- Context usage refreshes during tool-only runs after four root-agent tool calls
- Mobile composer and welcome sizing fixed — natural editor growth, proper viewport height, and enlarged touch targets
- Mobile settings Save fixed — optional store loading no longer silently disables the button; section navigation simplified with a native picker
- Text-size inflation prevented in terminal output on mobile
- Tooltips suppressed on touch devices — no more lingering tooltips from touch-generated hover events
- Notification modal actions fixed — action buttons work correctly when rendered inside the notifications modal
- Preset editor selection fixed — the editor now opens showing the actual preset
- Process group rendering fixed — no more flashing groups during memory search; correct group IDs and standalone message boundaries
- Bootstrap favicon restored on splash and safe-mode pages
Settings & Secrets
- API-key pools preserved when saving settings — comma-separated key lists retained correctly
- Secret values preserved through masked edits, including multiline text, Unicode, and special characters
- Masked secrets matched case-insensitively so mixed-case entries retain their values on save
Plugins & Updates
- Repository thumbnails preserved during plugin installation — no longer overwrites tracked images
- Local plugin commits rebased during updates with conflict detection, rollback, and persistent error toasts
- Nested secret substitution fixed in parallel tool calls
Infrastructure & Packaging
- Codex client updated to 0.155.1 with proper upstream SSE stream cleanup
- Orchestrator runtime data excluded from default backups
- Desktop dependency installation fixed for v2.13 with Python 3.13-compatible package pins from signed Debian archives
- Launcher README updated with v1.8 download links
Breaking Changes
runtime=inputremoved from remote execution — useinput_remoteinstead; no compatibility alias is provided- Local provider dummy API keys removed — LM Studio, llama.cpp, oMLX, and vLLM configurations that relied on the built-in default key must now have a key explicitly saved (or use keyless mode, which LiteLLM supports)