Releases: docker/docker-agent
v1.30.0
This release introduces file drag-and-drop support, background agent tasks, and completes the transition from "cagent" to "docker-agent" branding throughout the codebase.
What's New
- Adds file drag-and-drop support for images and PDFs with visual file type indicators and 5MB size limit per file
- Adds background agent task tools (
run_background_agent,list_background_agents,view_background_agent,stop_background_agent) for concurrent sub-agent dispatch - Adds
--sandboxflag to run command for Docker sandbox isolation - Adds model_picker toolset for dynamic model switching between LLM models mid-conversation
- Adds search, update, categories, and default path functionality to memory tool
- Adds MiniMax as a built-in provider alias with
MINIMAX_API_KEYsupport - Adds top-level
mcpssection for reusable MCP server definitions in agent configs - Adds support for OCI/catalog and URL references as sub-agents and handoffs
Improvements
- Auto-continues max iterations in
--yolomode instead of prompting - Improves toolset error reporting to show specific toolset information
- Improves user_prompt TUI dialog with title, free-form input, and navigation
- Auto-pulls DMR models in non-interactive mode
- Animates window title while working for tmux activity detection
- Supports comma-separated string format for allowed-tools in skills
Bug Fixes
- Fixes thread blocking when attachment file is deleted
- Fixes max iterations handling in JSON output mode
- Fixes text to speech on macOS
- Fixes context window overflow with auto-recovery and proactive compaction
- Fixes data races in Session Messages slice and test functions
- Fixes SSE streaming by disabling automatic gzip compression
- Applies ModifiedInput from pre-tool hooks to tool call arguments
Technical Changes
- Completes rename from "cagent" to "docker-agent" throughout codebase, documentation, and repository URLs
- Supports both
DOCKER_AGENT_*and legacyCAGENT_*environment variables - Removes
--exit-on-stdin-eofflag and ConnectRPC code - Adds timeouts to shutdown contexts to prevent goroutine leaks
- Extracts TodoStorage interface with in-memory implementation
- Refactors listener lifecycle to return cleanup functions
- Updates Dockerfile to use docker-agent binary with cagent as compatible symlink
What's Changed
- docs: update CHANGELOG.md for v1.29.0 by @docker-read-write[bot] in #1909
- Bump Go dependencies by @dgageot in #1913
- update taskfile to build both images docker/cagent and docker/docker-agent by @gtardif in #1916
- Remove --exit-on-stdin-eof by @dgageot in #1918
- Rename env vars CAGENT_ to DOCKER_AGENT_ (keep support for old env vars) by @gtardif in #1917
- agent: Improve toolset error reporting by @vvoland in #1914
- Nightly scanner should be less nit-picky about docs by @derekmisler in #1921
- Update docs and samples to rename docker-agent, change usage samples to
docker agentby @gtardif in #1915 - Simplify the AGENTS.md a LOT by @dgageot in #1923
- Fix a few issues in the docs by @dgageot in #1924
- docs: remove generated pages/ from git tracking by @dgageot in #1927
- Fix speech to text on macOS by @dgageot in #1922
- More docs rename (in / docs), fix remaining
docker agent serve a2a/acp/mcpby @gtardif in #1928 - Fix test by @dgageot in #1929
- Fix #1911 by @dgageot in #1931
- Validate yaml in doc by @dgageot in #1932
- Fix a few race conditions seen in tests by @dgageot in #1930
- Fix broken links in docs pages, were not using relative urls by @gtardif in #1939
- Rename CAGENT_HIDE_TELEMETRY & CAGENT_EXP_DEBUG_LAYOUT. Still support old env vars by @gtardif in #1926
- Teach the agent to work with our config versions by @dgageot in #1938
- Improve pkg/js by @dgageot in #1933
- Improve README by @dgageot in #1936
- Add model_picker toolset for dynamic model switching by @dgageot in #1937
- cagent run --sandbox by @dgageot in #1904
- Support auto-downloading tools by @dgageot in #1925
- Leverage latest MCP spec features from go-sdk v1.4.0 by @dgageot in #1955
- bump google.golang.org/adk from v0.4.0 to v0.5.0 by @dgageot in #1954
- Animate window title while working for tmux activity detection by @dgageot in #1949
- Fix listener resource leaks in serve commands by @dgageot in #1945
- Show the new TUI by @dgageot in #1942
- Auto-pull DMR models in non-interactive mode by @dgageot in #1944
- Improve user_prompt TUI dialog: title, free-form input, and navigation by @dgageot in #1943
- Improve sub-sessions usage by @dgageot in #1941
- Add MiniMax as a built-in provider alias by @dgageot in #1948
- Bump go dependencies by @dgageot in #1953
- Rename repo URL and pages URL by @gtardif in #1957
- Support OCI/catalog and URL references as sub-agents and handoffs by @dgageot in #1946
- Improve docs search by @dgageot in #1959
- Use docker agent command by @dgageot in #1958
- todo: extract storage interface with in-memory implementation by @rumpl in #1960
- docker-agent is primary binary in taskfile by @gtardif in #1961
- Add top-level mcps section for reusable MCP server definitions by @dgageot in #1947
- A few more renames from cagent by @dgageot in #1962
- Some more cagent urls by @gtardif in #1964
- fix(cli): auto-continue max iterations in --yolo mode by @frntn in #1737
- fix(editor): prevent thread block when attachment file is deleted by @Pnkcaht in #1736
- Fix main branch by @dgageot in #1968
- feat: add file drag-and-drop support for images and PDFs by @ambigois in #1658
- Add background agent task tools for concurrent sub-agent dispatch (#863) by @jfrey in #1908
- fix(hooks): apply ModifiedInput from pre-tool hooks to tool call arguments by @aheritier in #1950
- Add timeouts to shutdown contexts to prevent goroutine leaks by @dgageot in #1965
- Update winget workflow to modify Docker.Agent package, with the new GH repo name by @gtardif in #1972
- updated GHA with new checks:write permission by @derekmisler in #1974
- Disable automatic gzip compression to fix SSE streaming by @dgageot in #1967
- Fix cobra command and rename more things from cagent to docker agent by @dgageot in #1979
- Support comma-separated string for allowed-tools in skills by @dgageot in #1984
- Fix documentation by @dgageot in #1983
- Fix model name by @dgageot in #1991
- Fix gopls versions by @dgageot in #1988
- Daily fixes by @dgageot in #1990
- auto-complete tests by @gtardif in #1989
- Dockerfile with docker-agent binary, keeping cagent only as compatible symlink by @gtardif in #1992
- Rename cagent in eval by @gtardif in #1993
- Fix documentation by @dgageot in #1995
- More renames from cagent to docker-agent by @dgageot in #1994
- Rename e2e test files by @dgageot in #1997
- Remove useless documentation by @dgageot in #1998
- Remove ConnectRPC code by @dgageot in #1996
- Add search, update, categories, and default path to memory tool by @nunocoracao in #1971
- More renames by @dgageot in #1999
- Fix context window overflow: auto-recovery and proactive compacti...
v1.29.0
This release adds automated issue triage capabilities and new CLI configuration options for directory overrides.
What's New
- Adds auto issue triage workflow that automatically evaluates bug reports and can create fix PRs
- Adds
--config-dir,--data-dir, and--cache-dirglobal CLI flags to override default paths
Bug Fixes
- Fixes result marker parsing in auto-issue-triage workflow to handle LLM output with trailing empty lines
- Fixes GitHub Pages deployment issues
Technical Changes
- Updates nightly scanner documentation and configuration
- Removes draft status from PR creation workflow steps
- Adds tip about the default agent in documentation
What's Changed
- docs: update CHANGELOG.md for v1.28.1 by @docker-read-write[bot] in #1902
- Fix the github pages? by @dgageot in #1903
- Fix GitHub pages deployment by @dgageot in #1901
- feat: add auto issue triage workflow by @derekmisler in #1888
- Replace the brittle tail -n 1 parsing with something that searches for the marker by @derekmisler in #1905
- Add tip about the default agent by @dgageot in #1906
- Add --config-dir and --data-dir global CLI flags to override default paths by @dgageot in #1907
Full Changelog: v1.28.1...v1.29.0
v1.28.1
This release adds image support for AI agents, improves cross-platform compatibility, and includes various stability fixes.
What's New
- Adds image support to read_file tool and MCP tool results, allowing agents to view and describe images
- Adds content-based MIME detection and automatic image resizing for vision capabilities
- Strips image content for text-only models using model capabilities detection
Improvements
- Reduces builtin tool prompt lengths while preserving key examples for better performance
- Skips hidden directories in recursive skill loading to avoid walking large trees like .git and .node_modules
- Only uses insecure TLS for localhost OTLP endpoints for better security
Bug Fixes
- Fixes Esc key not interrupting sub-agents in multi-agent sessions
- Fixes slice bounds out of range panic for short JWT tokens
- Fixes goroutine tight loop in LSP readNotifications
- Fixes race condition with elicitation events channel
- Avoids looping forever on symlinks during skill loading
- Handles json.Marshal errors for tool Parameters and OutputSchema
Technical Changes
- Replaces syscall.Rmdir with golang.org/x/sys for cross-platform directory removal
- Removes per-chunk UpdateMessage debug log from SQLite store to reduce log noise
- Stops tool sets for team loaded in GetAgentToolCount
- Migrates GitHub pages to markdown with Jekyll
What's Changed
- docs: update CHANGELOG.md for v1.28.0 by @docker-read-write[bot] in #1892
- Replace syscall.Rmdir with golang.org/x/sys for cross-platform directory removal by @rumpl in #1885
- Remove per-chunk UpdateMessage debug log by @trungutt in #1896
- Fixes to the documentation by @dgageot in #1893
- Pushes docker/docker-agent next to docker/cagent hub image by @gtardif in #1897
- Reduce builtin tool prompt lengths while preserving key examples by @dgageot in #1879
- Daily fixes of the bot-detected issues by @dgageot in #1895
- Skip hidden directories in recursive skill loading by @dgageot in #1875
- 👀 Vision 👀 by @rumpl in #1889
- Migrate our GitHub pages to markdown, with Jekyll by @dgageot in #1900
- fix: Esc key not interrupting sub-agents in multi-agent sessions by @dgageot in #1899
Full Changelog: v1.28.0...v1.28.1
v1.28.0
This release improves authentication debugging, session management, and MCP server reliability, along with UI enhancements to the command palette.
What's New
- Adds 'debug auth' command to inspect Docker Desktop JWT with optional JSON output
- Adds automatic retry functionality for all models, including those without fallbacks
Improvements
- Improves MCP server lifecycle with caching and auto-restart capabilities using exponential backoff
- Sorts command palette actions alphabetically within each group
- Uses tea.View.ProgressBar instead of raw escape codes for better display
Bug Fixes
- Fixes session derailment by preserving user messages during conversation trimming
- Fixes duplicate Session header in command palette on macOS
- Fixes mcp/notion not working with OpenAI models by properly walking additionalProperties in schemas
- Defaults to string type for script tool arguments when type is not specified
Technical Changes
- Updates tool filtering documentation
- Updates CHANGELOG.md for v1.27.1
- Updates Charm libraries to stable v2.0.0 releases (bubbletea, bubbles, lipgloss)
What's Changed
- docs: update CHANGELOG.md for v1.27.1 by @docker-read-write[bot] in #1862
- Fix
mcp/notionnot working with OpenAI models by @vvoland in #1871 - Fix script args with DMR by @dgageot in #1859
- Add 'debug auth' command to inspect Docker Desktop JWT by @dgageot in #1861
- Improve MCP server lifecycle: caching and auto-restart by @dgageot in #1872
- fix(#1863): preserve user messages in trimMessages to prevent session derailment by @aheritier in #1864
- Improve tool filtering doc by @dgageot in #1874
- Improve Commands dialog by @dgageot in #1877
- Bump dependencies by @dgageot in #1876
- Add retries even for models without fallbacks by @rumpl in #1886
Full Changelog: v1.27.1...v1.28.0
v1.27.1
This release improves the user interface experience with better message editing capabilities and fixes several issues with token usage tracking and session loading.
What's New
- Adds
on_user_inputhook that triggers when the agent is waiting for user input or tool confirmation
Improvements
- Improves multi-line editing of past user messages
- Adds clipboard paste support during inline message editing
- Makes loading past sessions faster
- Updates TUI display when the current agent changes
Bug Fixes
- Fixes token usage being recorded multiple times per stream, preventing inflated telemetry counts
- Fixes empty inline edit textarea expanding to full height
- Fixes docker ai shellout to cagent for standalone invocations
Technical Changes
- Updates schema tests to only run for latest version
- Fixes documentation issues
What's Changed
- docs: update CHANGELOG.md for v1.27.0 by @docker-read-write[bot] in #1846
- Repaint the TUI when the current agent changes by @dgageot in #1845
- fix: record token usage once per stream to prevent inflated telemetry by @dgageot in #1855
- Make loading past sessions faster by @dgageot in #1854
- Improve editing past user messages by @dgageot in #1850
- Schema tests should be only for latest version by @dgageot in #1857
- feat(hooks): add on_user_input by @doringeman in #1847
- Fix doc by @dgageot in #1858
- Fix docker ai shellout to cagent by @gtardif in #1860
New Contributors
- @doringeman made their first contribution in #1847
Full Changelog: v1.27.0...v1.27.1
v1.27.0
This release introduces dynamic agent color styling for multi-agent teams, adds new filesystem tools, and includes several bug fixes and security improvements.
What's New
- Adds dynamic agent color styling system that assigns unique, deterministic colors to each agent in multi-agent teams for visual distinction across the TUI
- Adds hue-based agent color generation with theme integration that adapts saturation and lightness based on theme background
- Adds mkdir and rmdir filesystem tools so agents can create and remove directories without using shell commands
- Allows .github and .gitlab directories in WalkFiles traversal for better CI workflow support
Bug Fixes
- Fixes race condition in agent color style lookups
- Fixes path traversal vulnerability in ACP filesystem operations
- Fixes YAML marshalling issues that could produce corrupted configuration files
- Handles case-insensitive filesystems properly
- Logs errors when persisting session title in TUI
Technical Changes
- Consolidates color utilities into styles/colorutil.go
- Unexports internal color helpers and deduplicates fallbacks
- Fixes cassettes functionality
What's Changed
- docs: update CHANGELOG.md for v1.26.0 by @docker-read-write[bot] in #1841
- Daily fixes by @dgageot in #1832
- tools/fs: Add mkdir and rmdir by @vvoland in #1781
- feat(#1756): Add dynamic agent color styling system by @aheritier in #1757
- allow .github and .gitlab directories in WalkFiles traversal by @maxcleme in #1833
- Fix yaml marshalling by @dgageot in #1844
Full Changelog: v1.26.0...v1.27.0
v1.26.0
This is a maintenance release with dependency updates and internal improvements.
Technical Changes
- Maintenance release with dependency updates
Full Changelog: v1.25.0...v1.26.0
v1.24.0
This release introduces remote skills discovery capabilities and improves file reading tools with pagination support.
What's New
- Adds remote skills discovery with disk cache and dedicated tools, supporting the well-known skills discovery specification
- Adds offset and line_count pagination parameters to read_file and read_multiple_files tools for incremental reading of large files
Improvements
- Limits output size for read_file and read_multiple_files tools to prevent excessive token usage
- Removes pagination instructions from tool descriptions for cleaner interface
Bug Fixes
- Fixes LineCount metadata on truncated read_multiple_files results
Technical Changes
- Freezes configuration version v5 and bumps to v6
- Updates test cassettes to match schema changes for file reading tools
What's Changed
- docs: update CHANGELOG.md for v1.23.6 by @docker-read-write[bot] in #1829
- builtin: add offset and line_count pagination to read_file and read_multiple_files by @trungutt in #1828
- Implement remote skills discovery with disk cache and dedicated tools by @rumpl in #1822
- Freeze v5 (and a few refactoring) by @dgageot in #1810
Full Changelog: v1.23.6...v1.24.0
v1.23.6
This release improves cost tracking accuracy, enhances session management, and fixes several UI and functionality issues.
What's New
- Adds tab completion for /commands dialog
- Adds mouse support for selecting and opening sessions in the sessions dialog
Improvements
- Computes session cost from messages instead of accumulating on session for better accuracy
- Includes compaction cost in /cost dialog
- Displays original YAML model names in sidebar instead of resolved aliases
- Improves emoji copying support by reversing clipboard copy order (OSC52 first, then pbcopy fallback)
Bug Fixes
- Fixes token usage percentage display during and after agent transfers
- Fixes session forking and costs calculation
- Fixes actual provider display for alloy models in sidebar (was showing wrong provider)
- Restores ctrl-1, ctrl-2... shortcuts for quick agent selection
- Fixes NewHandler panic on parameterless tool calls
Technical Changes
- Consolidates TokenUsage event constructors
- Removes dead UpdateLastAssistantMessageUsage method
- Emits TokenUsageEvent on session restore for context percentage display
- Emits TokenUsageEvent after compaction so sidebar cost updates
- Adds e2e tests on binaries for CLI plugin execution
- Creates ~/.docker/cli-plugins directory if it doesn't exist
What's Changed
- docs: update CHANGELOG.md for v1.23.5 by @docker-read-write[bot] in #1803
- Better support copying emojis by @dgageot in #1804
- Fix multiple cost/tokens related issues by @dgageot in #1795
- Tab completion for /commands dialog by @dgageot in #1806
- Update winget workflow by @lorenrh in #1808
- feat: use docker read write bot by @lorenrh in #1813
- Binary e2e tests by @gtardif in #1812
- fix: use actual provider for alloy models in sidebar by @Aliexe-code in #1807
- Improve sessions dialog by @dgageot in #1811
- Bump Go dependencies by @dgageot in #1817
- fix: restore ctrl-1, ctrl-2... shortcuts for quick agent selection by @dgageot in #1816
- Refactor winget workflow to use wingetcreate CLI by @gtardif in #1826
- get_memories errors on new memories by @derekmisler in #1827
New Contributors
- @Aliexe-code made their first contribution in #1807
Full Changelog: v1.23.5...v1.23.6
v1.23.5
This release improves the session browser interface and fixes several issues with the docker-agent standalone binary.
Improvements
- Shows message count in session browser dialog for better session overview
Bug Fixes
- Fixes recognition of cobra internal completion commands as subcommands
- Fixes help text display for docker-agent standalone binary exec
- Fixes version output for docker-agent CLI plugin and standalone exec
Technical Changes
- Renames internal schema structure
What's Changed
- docs: update CHANGELOG.md for v1.23.4 by @docker-read-write[bot] in #1792
- Rename schema by @dgageot in #1793
- Show message count in session browser dialog by @dgageot in #1791
- Fix bash/zsh/... completion by @dgageot in #1794
- Fix help for docker-agent standalone binary exec by @gtardif in #1796
- Fix docker-agent version for cli plugin & standalone exec by @gtardif in #1802
Full Changelog: v1.23.4...v1.23.5