v0.28.0#
These are the release notes for gptme version v0.28.0.
Contributors#
Thanks to everyone who contributed to this release:
@0xbrayo, @erikbjare, @Miyou, @RickardCarlsson4
Changelog#
Changes since v0.27.0:
Summary#
This is a major feature release packed with exciting improvements! 🎉
🚀 Major New Capabilities:
GPT-5 Support - Works with OpenAI’s latest model
Claude 4 Support - Works with Anthropic’s latest model
Bell and Tool Sounds 🔊 - Pleasant notification sounds for user input requested and different operations (enable via
/setuporGPTME_DING/GPTME_TOOL_SOUNDSenv vars)Perplexity Search 🔍 - Enhanced web search capabilities through the browser tool
MCP Integration 🔌 - Support for Model Context Protocol servers, expanding tool ecosystem
🤖 Agent & Automation Enhancements:
Setup Command ⚙️ - Easy configuration with
/setupAuto-commit - Automatically tell agent to git commit, or do it manually with
/commitAgent Workspace Auto-detection - Smarter handling of agent environments
Choice Tool - Interactive decision-making capabilities
🛠 Developer Experience:
Shell Timeouts ⏱️ - Configurable command timeouts (set
GPTME_SHELL_TIMEOUT)Morph Tool ✨ - Alternative fast patching tool for precise code edits
Computer Tool Improvements 💻 - Better key sequence chaining for GUI automation
Enhanced TTS 🗣️ - Improved text-to-speech with Chatterbox support
🌐 Server & API:
Redesigned Server API - Complete API overhaul for better web UI integration
Tasks API - New task management capabilities
OpenAPI Specification - Comprehensive API documentation
🔧 Quality of Life:
90+ Bug Fixes - Significantly improved stability and reliability
Better Configuration - Enhanced config system with user-, project-, and chat-specific settings
Improved Error Handling - More user-friendly error messages and recovery
📦 gptme#
✨ Features (39)#
feat: enhance telemetry with Prometheus metrics and comprehensive instrumentation (#592) (
a73f60b0)feat: improve eval system and fix tool format content extraction (#618) (
099c80b4)feat: add GPT-5 support (
4ff6d5c9)feat: add timeout support to shell tool (
06d85f94)feat: add last/all option to /replay command (
ec4bec77)feat: add tool sounds for different operations (#597) (
ce6f50a2)feat: add Perplexity search support to browser tool (#566) (
c91c9d18)feat: add /setup command for user and project configuration (#596) (
2379e665)feat: add ding sound notification with bell audio (#588) (
6096474b)feat: add OpenTelemetry integration for performance monitoring (#587) (
41ab4283)feat: add support for custom agent names in CLI/TUI interface (
658fd3d6)feat: auto-detect agent workspaces (
420d3072)feat: added support for –agent-path in CLI, include agent context in addition to workspace context (
c40477e0)feat: support the openrouter /v1/models api to list all models with metadata (#575) (
88df6238)feat: added alternate patch tool using morph fast apply v2 via openro… (#574) (
23258e0b)feat: add support for a GPTME_REASONING flag to explicitly enable/disable reasoning (#568) (
df0e0ca7)feat: add automatic inclusion of default project files (#565) (
ac05da57)feat: add tasks API for new tasks UI in gptme-webui (#562) (
6807d484)feat: added ‘worked for
<time>’ output behind feature flag (due to issues) (ce78dda1)feat: added read_logs function to browser tool (playwright backend) (#553) (
9291e000)feat: add gptme-util models list/info commands with fish completion (
82c551f7)feat: add support for setting chat name in chat config (#549) (
5c30f5df)feat: added
gptme-util llm generatecommand, reworkgptme-util context(#535) (87832050)feat: added basic workspace file browsing api (#530) (
0ab8abf9)feat: set enable_suspend (Ctrl+Z) and enable_open_in_editor (Ctrl-X Ctrl-E) for prompt (fixes #525) (#526) (
ef33c190)feat: support ChatConfig in server and CLI (#504) (
0266e350)feat: added support for context_cmd project config (#511) (
8805aa28)feat: added ChatConfig, refactored config, support overriding values (#500) (
fc6497c9)feat: enhance computer tool with key sequence chaining for both macOS and Linux (#479) (
9f05e048)feat: support entering newlines with Ctrl+J (#464) (
9204f1ab)feat: support LLM_PROXY_URL and LLM_PROXY_API_KEY (fixes #470) (#471) (
1f2bd182)
🐛 Fixes (90)#
Click to expand
fix: use correct max_tokens for Anthropic models (
b78bd34e)fix: unify thinking budget configuration in Anthropic LLM (
f96f610f)fix: updated metadata for gpt-5-mini and gpt-5-nano (
72527978)fix: updated metadata for opus 4/4.1 and sonnet 4 (
0a5bd991)fix: add permissions to GitHub Actions eval workflow (
92b6818d)fix: add system dependencies for PyInstaller builds on Ubuntu (
5a91a44d)fix: resolve _struct module error in PyInstaller build (
dc4743db)fix: support quoted heredoc delimiters with spaces and consolidate shell tests (
9d2ff5e1)fix: switch to morph-v3-fast (morph-v2 deprecated) (
051cdfcb)fix: fix /fork incorrectly recursively copying workspace directory (
2db544f5)fix: fixed bad syntax in dockerfile (
52aacddd)fix: add tree to gptme Dockerfile (
5fcd296e)fix: set git config for gptme container so it can make commits (
9f4cdcc7)fix: pass provider prefix when using LLM proxy (
833a236d)fix: remove outdated print message (
06dd8b53)fix: minor improvement to instructions for RAG tool (
61853abf)fix: fixed running nested gptme sessions with shell tool waiting for piped stdin by redirecting stdin to /dev/null (#604) (
97110820)fix: moved sound media (
31f54127)fix: validate CLI tool arguments and provide clear error messages (#600) (
e7df4f5c)fix: respect saved conversation config when resuming (#595) (
1d78ca30)fix: minor formatting fix in shell tool response to removing excessive newline (
b03ec16b)fix: resolve OpenAPI validation errors with undefined dict schema (
dcd05f9e)fix: fix failing eval tests by correctly looking up agent name (
6210bba6)fix: complete tuple return type refactoring for precommit checks (
8c98f140)fix: fix rich console log formatting (
be666183)fix: workaround for incorrect pwd in new chats (
daae7754)fix: disambiguate agent path and workspace (
e4698c09)fix: use shlex.split() for proper shell command parsing in agent creation (
04931116)fix: bad rebase (
1e92afa5)fix: separate agent path and workspace (
f21077f0)fix: strip thinking when checking markdown for codeblocks (#579) (
b1c22f1f)fix: morph should fail to apply if file changed since patch generated (edits before confirmation) (#578) (
2faa01f8)fix: improved mcp tool confirmation preview (#577) (
28c17214)fix: improvements to morph tool, better checks for valid results and output diff in response (
c899e789)fix: update default models and add more gemini models (
4835fdbf)fix: improve support for nested markdown codeblocks in markdown tool format (#571) (
d5b82d71)fix: add AGENTS.md to default context files (
2a2a3ee0)fix: fix default
servecommand for gptme-server using click-default-group (ca5578a9)fix: improve id naming convention for new task conversations (
0652c7e6)fix: support heredocs with quoted delimiters in shell tool (#558) (
df09d8a1)fix: made assistant prompt name and color settable via env vars (
315cec9d)fix: improve shell command interrupt handling with partial output capture (#556) (
d5e89b6d)fix: streamline gptme-util subcommands to all use list instead of ls (
d6ef0b5e)fix: improve how tildes are handled in workspace paths (store/expose with tildes, process without) (
bde855f2)fix: resolve workspace path before saving config (
63c00411)fix: include conversation workspace metadata in api (#551) (
ae7013c6)fix: fixed server tests (
aaf80fdf)fix: fix config loading from cli params and env (#545) (
0d5a46d0)fix: delay tts availability checks to tool init (#543) (
40ca7475)fix: check if pre-commit executable exists before enabling checks (
239c1a83)fix: better support for reasoning via openrouter (#538) (
f8f1de95)fix: added support for TEMPERATURE and TOP_P environment variables (
9c944e62)fix: added shell example to use single quotes for complex content (
e5f5d0f2)fix: fixed –workspace=@log behavior after config refactor (#537) (
b1824077)fix: disable pre-commit checks running before first user message, misc fixes (
87781b6b)fix: improve browser init logging, made ToolSpec.available optionally a Callable with new is_available property (
01a8616e)fix: change misleading config warning to debug level (
23799d34)fix: output cwd changes in shell responses, error on extra ======= for patch (#534) (
7c4fbbb5)fix: use quadruple backticks in markdown codeblocks to avoid conflicts (#533) (
2abf6025)fix: add metadata for Claude 4 models (
c54ef4a2)fix: improved text file detection in workspace API (
350d8532)fix: dont fail pre-commit check if config file not found (
76b55482)fix: updated with more Gemini models (
e9c4cf3d)fix: reverted accidentally commited changes (
7d9d0d92)fix: added check for placeholder lines in save tool (and tests) (#522) (
b8d32b6b)fix: added convert_convo.py script (
344a1539)fix: better support for interrupting pre-commit checks (
d50af6af)fix: fix streaming files support in server (#518) (
543e2ee3)fix: fix use of workspace paths in server by syncing workspace set in chat config (new) with workspace symlink (old) (#517) (
984d6412)fix: use absolute paths for files in view_image messages, improve markdown markup for paths (
f2f57c6e)fix(server): don’t store chat config obj in session, load mcp server from user/project config (#515) (
a6504e0e)fix: change mcp tool format to mcp_tool.mcp_func (instead of mcp_tool_mcp_func) (
385901a3)fix: fixed prompt not showing when prompt text overflows (#510) (
e7657223)fix: remove default BASE ARG from Dockerfile.server to remove the need for skaffold workarounds (#512) (
a0b507ef)fix: improved the gh-pr-view script and rewrote in Python (#483) (
ba032393)fix: change default gptme-server port to 5700 (#491) (
33c2ba7f)fix: add screenshot example (
d9be0727)fix: fix weird needed {!r} in typecheck (https://github.com/gptme/gptme/pull/486#issuecomment-2763345203) (
f5c58db0)fix: dont run
treeoutside git repositories (likely to timeout) (2fb0210d)fix: support credentials in CORS (
958bcb89)fix(server): support non-streaming LLM requests (#481) (
085b726b)fix: refactored tooluse detection in server to save a call (
64888eb9)fix(server): fixes interruptions during generation (
adad1144)fix: fixed ‘f-string expression part cannot include a backslash’ (
cbc69653)fix: fix missing MODELS entry for azure (fixes #472) (
67cad0ac)fix(tts): correctly strip
<think>tags and leading hashes for ‘# Headers’ (7fecf09f)
🔨 Misc (57)#
Click to expand
chore: bump version to 0.28.0 (
41d31f10)docs: updated README usage, CLI help strings, and set gpt-5 as default OpenAI model (
b5a1abd7)docs: clarify max_tokens calculation rationale for thinking feature (
3395bf23)docs: improved prometheus config and docs (
037e51d4)docs: improve setup instructions for agents (include uv) (
4ac4a45f)docs: add bench of startup time using hyperfine (
a0c3ed39)refactor: refactor to eliminate duplicate lines (#608) (
309ae85f)docs: mention lessons system (
1e8d62f3)docs: fixed ref and improved note about agents in web ui (
85680cf5)docs: added mermaid diagrams to agents docs (
63f2345e)refactor: change how extra_headers and extra_data is set in openai client (
860f1e89)docs: link to llms.txt and llms-full.txt in docs index (
e5b4fb97)docs: improve github bot doc (
d65c1ee4)docs: minor formatting fix (
2e9cf77b)docs: add telemetry setup guide and simplify telemetry init (
87cb53d4)docs: more updates to docs to recommend Claude Sonnet 4 (
9cf99057)docs: update docs to recommend Claude Sonnet 4 (
2740eca5)refactor: split api_v2.py into focused modules (
c2b67525)refactor: break down complex functions into smaller focused units (
2207190c)refactor: reduce code duplication with CommandContext (
c884d8d1)refactor: convert command handling to decorator-based registry (
04a6af0d)refactor: simplify chat function signatures and improve autocommit prompting (
a37ddf7c)refactor: simplify chat loop and fix interruption handling (#582) (
a012815e)feat: add create agent endpoint in v2 api (
c2759a5a)refactor: improve error handling and message formatting in morph/patch tools (#581) (
5b19708b)chore: improve gitignore and dockerignore (
ab9627a0)docs: added sphinx_llms_txt extension to generate llms.txt and llms-full.txt (#561) (
8181e276)tests: fixed test (
a78c0561)docs: fix duplicate autosectionlabel warnings by limiting maxdepth (
5ca5e83b)docs: added back missing file from last PR (
d5507b7e)docs: mention Ctrl+X Ctrl+E support in –help output (
ae3d2857)docs: improve alternatives, config and usage documentation (
4d310b83)docs: changed MCP example to use mcp-server-sqlite (
d7d9470a)docs: moved environment variables section to bottom of config doc, add link to it from lead (
f83568a4)docs: improved docs for config, including context_cmd description and Chat Config section (
46a4628c)refactor: thread-local globals for _config and _loaded_tools (#506) (
ad888d38)docs: improved docs, added docstrings and minor improvements to config code (#505) (
c0c5c739)refactor: improve config and tools architecture (#503) (
dc7be5fa)docs: add a copiable markdown for powerd by gptme badge (#490) (
0b3a3967)docs: mention mcp in custom_tool doc (
b24c0f95)tests: mark tests failing in ci with xfail (
ed0e8ada)docs: strip ansi color codes from jscpd output (
5396094e)docs: improved MPC docs (
150a35b5)tests: improved mcp tests, replaced weather mcp server test with memory server (
c7f7014b)docs: fix crazy wrong MCP explanation in docs (
ff52d7ba)docs: fixed title underline too short (
15c3f403)docs: moved MCP guide into documentation (
078e667f)tests: add xfail to flaky tests (
6ddf8a3b)refactor: reorder Message attributes (
22f590ab)chore: add dev/ to .gitignore for dev branch worktrees (
c19893b3)docs: add jscpd output to
make metricsand arewetiny doc (50bcae47)docs: improved timeline further (
2665a9e3)docs: fixed rst list formatting, added
check_rst_formatting.pyscript and added to pre-commit hooks (e88bd567)docs: updated timeline (
34bddb2b)docs: improved tts usage docs (
598e1b29)
(excluded 19 less relevant commits)
Full Changelog: https://github.com/gptme/gptme/compare/v0.27.0…v0.28.0