Skip to content

Releases: gptme/gptme

v0.31.0

15 Dec 10:16

Choose a tag to compare

v0.30.0-101-ga2f2c305a

These are the release notes for gptme version v0.30.0-101-ga2f2c305a.

Contributors

Thanks to everyone who contributed to this release:

@0xbrayo, @ErikBjare, @nikongo, @TimeToBuildBob

Changelog

Changes since v0.29.0:

📦 gptme

✨ Features (51)

  • feat(lessons): auto-discover lessons from plugins (#944) (ab531ad20)
  • feat(message): add MessageMetadata TypedDict for token/cost tracking (#943) (684bbb6ff)
  • feat(cost): implement cost_awareness hook for session cost tracking (#939) (ed409cb26)
  • feat(telemetry): improve trace quality with context propagation and rich metrics (#942) (5be5a39d4)
  • feat(shell): add background job support for long-running commands (#902) (c48bf9bd7)
  • feat(setup): validate API keys before saving (Issue #930) (#931) (bf1bc716b)
  • feat(lessons): add caching and deduplication to lesson index (#928) (3fdbf4186)
  • feat(hooks): add form auto-detection hook (Issue #591) (#919) (40dc68f45)
  • feat(logmanager): add content-addressable file storage (Issue #150) (#913) (86febf7de)
  • feat(tools): add form tool for structured user input (Issue #591) (#911) (92c475a47)
  • feat: add Docker container for GitHub bot (Issue #305) (#905) (ec1204fa9)
  • feat(tmux): add wait command to monitor long-running commands (#901) (0ee75e544)
  • feat(prompt): add multi-line input support (#899) (558ee3b5f)
  • feat(autocompact): add Phase 3 extractive compression for long messages (#886) (cca057c63)
  • feat: add diagnostic logging to shell tool for Issue #408 (#890) (750009193)
  • feat: support GPTME_TTS_SPEED and set exclude-newer for tts_server.py script to fix issues (eed3a987c)
  • feat(llm): add constrained decoding support (#776) (94621288d)
  • feat: add Cursor .mdc rules support (Issue #686 Phase 5) (#882) (59723c493)
  • feat: Enhanced plugin management with smart src/ layout discovery (#873) (0ccdfbe44)
  • feat: add compression analysis utilities and script (#864) (fd3d8edc2)
  • feat(eval): GEPA Week 3 - HybridOptimizer with adaptive multi-stage optimization (#859) (58cce70f8)
  • feat(context): implement hooks-based context compression architecture (#844) (20435f324)
  • feat(context): implement Phase 3.1.1 core infrastructure (#860) (b898c8550)
  • feat: implement active context discovery (#856) (990fdca36)
  • feat: add restart tool (#853) (418532ea8)
  • feat(context): Phase 1 - Core Context Selector Infrastructure (#831) (71416f6ca)
  • feat: convert default model and hook registry to ContextVar for thread safety (#848) (5a1ac7b95)
  • feat(plugins): implement Phase 3 command integration (#846) (c7304c43b)
  • feat(plugins): implement Phase 2 hook integration (#845) (e86fe8e08)
  • feat(plugins): implement Phase 1 plugin infrastructure (#843) (fe8b355cc)
  • feat(server): add API v2 client for programmatic interaction (#841) (dfd9f74f1)
  • feat: auto-enable complete tool in non-interactive mode and support multiple -t flags (#836) (a5ccb6cd0)
  • feat(gepa): Phase 2 test set expansion - 7 more tasks (#833) (7bbce0671)
  • feat(gepa): implement Phase 1 test set expansion (12 new tasks) (#832) (68bd60cfc)
  • feat: support OPENROUTER_API_KEY for perplexity (#828) (658c4450a)
  • feat(validation): add MESSAGE_POST_PROCESS hook for markdown codeblock cut-off detection (#824) (ed01e1cb4)
  • feat: add support for gptme.local.toml configuration layering (#617) (3dfcc9e5c)
  • feat(gepa): add PromptImprovementModule to fix InputField architecture issue (#823) (825d71aa7)
  • feat(lessons): Phase 5.5 - Dynamic top-K selection (#820) (7d7fcc455)
  • feat(lessons): Add ACE-inspired hybrid lesson matching (#817) (1bdd9de5c)
  • feat: add hook support to server API v2 (#769) (104aacff7)
  • feat(llm): add custom OpenAI-compatible providers support (#800) (cdf548ee4)
  • feat(subagent): add planner mode for task delegation (#753) (71b72b9bf)
  • feat(server): auto-generate auth token and document security risks (#803) (f652e752e)
  • feat(hooks): improve typing for hook registration with Protocol overloads (#801) (7bb17df7c)
  • feat(eval): implement Docker-based execution environment (#791) (7c6761684)
  • feat(dspy): implement multi-stage reasoning program for GEPA (#786) (a7f87c58d)
  • feat: log a warning when context command output is large (#787) (cf741f841)
  • feat(server): implement token-based authentication for dev environment (#782) (65507d7b8)
  • feat(lessons): add Cursor rules integration and project-local lessons support (#779) (2ddc0e004)
  • feat(tools/shell): store truncated output before discarding (#775) (b7c44982f)

🐛 Fixes (80)

Click to expand

Read more

v0.30.0

18 Nov 11:25
0361c26

Choose a tag to compare

v0.30.0

These are the release notes for gptme version v0.30.0.

Contributors

Thanks to everyone who contributed to this release:

@0xbrayo, @ErikBjare, @TimeToBuildBob

Changelog

Changes since v0.29.0:

📦 gptme

✨ Features (26)

  • feat(context): Phase 1 - Core Context Selector Infrastructure (#831) (71416f6c)
  • feat: convert default model and hook registry to ContextVar for thread safety (#848) (5a1ac7b9)
  • feat(plugins): implement Phase 3 command integration (#846) (c7304c43)
  • feat(plugins): implement Phase 2 hook integration (#845) (e86fe8e0)
  • feat(plugins): implement Phase 1 plugin infrastructure (#843) (fe8b355c)
  • feat(server): add API v2 client for programmatic interaction (#841) (dfd9f74f)
  • feat: auto-enable complete tool in non-interactive mode and support multiple -t flags (#836) (a5ccb6cd)
  • feat(gepa): Phase 2 test set expansion - 7 more tasks (#833) (7bbce067)
  • feat(gepa): implement Phase 1 test set expansion (12 new tasks) (#832) (68bd60cf)
  • feat: support OPENROUTER_API_KEY for perplexity (#828) (658c4450)
  • feat(validation): add MESSAGE_POST_PROCESS hook for markdown codeblock cut-off detection (#824) (ed01e1cb)
  • feat: add support for gptme.local.toml configuration layering (#617) (3dfcc9e5)
  • feat(gepa): add PromptImprovementModule to fix InputField architecture issue (#823) (825d71aa)
  • feat(lessons): Phase 5.5 - Dynamic top-K selection (#820) (7d7fcc45)
  • feat(lessons): Add ACE-inspired hybrid lesson matching (#817) (1bdd9de5)
  • feat: add hook support to server API v2 (#769) (104aacff)
  • feat(llm): add custom OpenAI-compatible providers support (#800) (cdf548ee)
  • feat(subagent): add planner mode for task delegation (#753) (71b72b9b)
  • feat(server): auto-generate auth token and document security risks (#803) (f652e752)
  • feat(hooks): improve typing for hook registration with Protocol overloads (#801) (7bb17df7)
  • feat(eval): implement Docker-based execution environment (#791) (7c676168)
  • feat(dspy): implement multi-stage reasoning program for GEPA (#786) (a7f87c58)
  • feat: log a warning when context command output is large (#787) (cf741f84)
  • feat(server): implement token-based authentication for dev environment (#782) (65507d7b)
  • feat(lessons): add Cursor rules integration and project-local lessons support (#779) (2ddc0e00)
  • feat(tools/shell): store truncated output before discarding (#775) (b7c44982)

🐛 Fixes (30)

Click to expand

  • fix: added SC2016 as excluded shellcheck code (436b335d)
  • fix: fix broken favicon in the root path (#847) (421194a1)
  • fix: remove xfail markers from previously flaky server tests (#849) (1645926d)
  • fix(gepa): Phase 3.3 - Fix task source and auto parameter conflicts (#837) (dbbbc849)
  • fix(security): block command injection via pipe-to-shell patterns (#840) (87cd354d)
  • fix(gepa): remove auto parameter conflict in MIPROv2 (#835) (7e51e0ac)
  • fix: fixed Kimi K2 thinking toolcall support via OpenRouter (#830) (5a758dbc)
  • fix: resolve MCP tool loading issues and connection errors (#825) (72a4d85b)
  • fix(subagent): add missing tool_format parameter to chat() calls (3167b336)
  • fix(gepa): export ANTHROPIC_API_KEY and suppress verbose logs (#821) (aeefe9b4)
  • fix(gepa): collect and save trajectory feedback in optimization results (#819) (603ccfef)
  • fix(eval): fix reflection model used in GEPA optimizer (#814) (6345f0c2)
  • fix(eval): add defensive check for eval_result in task_success_metric (#813) (644eadd9)
  • fix(server): add GPTME_DISABLE_AUTH env var for k8s deployments (#811) (dd491017)
  • fix(tmux): use dashes instead of underscores for tmux tool function (#810) (e1119abe)
  • fix(shell): added SC2002 to default shellcheck excludes (3c088d37)
  • fix: improve shell error handling and add Anthropic debug logging (cdd90afb)
  • fix: fix session start hook msgs not being persisted (#808) (43a8c55d)
  • fix(eval): run gptme agent inside Docker when --use-docker is used (#805) (84f18eb3)
  • fix(shell): handle bashlex parsing errors for bash builtins like 'time' (#799) (0e18bf53)
  • fix(shell): added rg, ag, ast-grep, hyperfine to mentioned installed shell commands (3c2b3f8e)
  • fix(tests): update test_auto_compact.py for timestamp-based naming (#797) (8142f895)
  • fix(autocompact): restore manager state after fork to prevent name mutation (#794) (ce25affc)
  • fix(autocompact): resolve NameError and naming bug (#792) (16032e48)
  • fix: dont mistake absolute path for command when given as prompt (55c5a92d)
  • fix(server): support query param token for SSE authentication (#785) (66b418a5)
  • fix: convert GEPA output_dir to absolute path to prevent FileNotFoundError (#784) (ad5f47a1)
  • fix(shell): handle logical OR operators (||) in pipe detection (#777) (d52a1729)
  • fix(anthropic): retry on RemoteProtocolError's (#773) (9c7b4874)
  • fix(shell): denylist pkill and killall (fixes [#768](https://githu...
Read more

v0.29.0

21 Oct 12:47
5fc3a26

Choose a tag to compare

v0.29.0

These are the release notes for gptme version v0.29.0.

Contributors

Thanks to everyone who contributed to this release:

@ErikBjare, @TimeToBuildBob

Changelog

Changes since v0.28.3:

📦 gptme

✨ Features (39)

  • feat: improve token awareness to show warnings at meaningful thresholds (fce2382a)
  • feat: make hook parameters consistent across all hook types (2e71dcc9)
  • feat: expose MCP tool commands as slash commands (#760) (2a89022f)
  • feat(mcp): add MCP discovery and dynamic loading support (#685) (e8af7604)
  • feat: add token & time awareness tools/hooks (#665) (c0391ddd)
  • feat: show conversation ID in goodbye message (ad5bc4d0)
  • feat: add gptme-util prompts expand command (fb543142)
  • feat: add --profile flag for performance profiling (9ce6e3e8)
  • feat(shell): add configurable shellcheck exclude codes (#747) (46a54148)
  • feat(shell): add simple shellcheck validation (#740) (20f28f6b)
  • feat(lessons): add message pattern-based mode detection for Phase 3 (#722) (fc131775)
  • feat: switch CI from claude-3-5-haiku to claude-haiku-4-5 (#712) (64e04708)
  • feat(llm): add support for Claude Haiku 4.5 (#705) (e48fcd2f)
  • feat(lessons): implement status filtering for lesson lifecycle management (#702) (be25b397)
  • feat: support @log workspace magic value in API (#695) (9fc71ad1)
  • feat: save removed tool outputs during auto-compacting (186ac031)
  • feat(gh): add optional commit_sha parameter to check specific commits (3df3c44f)
  • feat(lessons): add configurable lesson directories via gptme.toml (0a05ec61)
  • feat(gh): add quick status check command (76c67881)
  • feat(gh): show run IDs for failed checks and add --log-failed example (c3f131c3)
  • feat: enhance lesson matching with tools and history-based deduplication (5aefbe37)
  • feat(llm): add configurable API timeout for OpenAI-compatible providers (#681) (6a2d532f)
  • feat: enhance GitHub PR reading with code context and suggestions (#689) (4c1cef43)
  • feat: implement basic lesson system with metadata and auto-inclusion (#687) (3e81a0d2)
  • feat: add tool_format to telemetry and remove redundant log (d59332ab)
  • feat(browser): add Accept header to prefer markdown/plaintext over HTML (#680) (f92ab671)
  • feat: improve conversation history context (#679) (35c303d3)
  • feat(shell): add 20-minute default timeout to prevent stuck commands (#678) (526da1cb)
  • feat(telemetry): add hostname to resource attributes (#676) (0d77253f)
  • feat(telemetry): add agent name and interactive mode metadata (#675) (206ff1fb)
  • feat: reintroduce OpenAI and Anthropic telemetry instrumentation (d4b031f0)
  • feat: add GENERATION_PRE hook trigger before LLM generation (f69c3d37)
  • feat: add concise repr to Log class (b9485b98)
  • feat: implement auto-reply mechanism as LOOP_CONTINUE hook (de79d5ba)
  • feat: implement /compact and auto-compacting (#645) (61392fc0)
  • feat: implement comprehensive hook system and command registration (#156) (#660) (32d39817)
  • feat: auto-restore todo state when resuming conversations (#659) (debcb096)
  • feat: implement complete tool and auto-reply mechanism for autonomous operation (14952de1)
  • feat: emit hint when save tool barely changes file (1601f5e8)

🐛 Fixes (77)

Click to expand

  • fix: fix issue with hook args (4fa95612)
  • fix: correct complete_hook signature to match GENERATION_PRE calling convention (90a12f9c)
  • fix: handle pipe operators inside quoted strings in shell commands (#764) (5f80b533)
  • fix: skip generating initial messages when resuming conversations (#763) (2898e79d)
  • fix: add special haiku-adapted to_xml (for testing) (cc868960)
  • fix(tools): add support for Haiku 4.5 XML format (#752) (96f87e43)
  • fix: run auto-naming in background thread to avoid blocking CLI (1d17674f)
  • fix: fix anthropic non-streaming requests being denied during auto renames (#759) (397634ab)
  • fix: disable time and token awareness hooks by default (until issues are fixed) (6b6ad577)
  • fix: skip tests when missing extras (#754) (d4095036)
  • fix(mcp): add resilience with auto-restart and retry on connection failures (#719) (d30fd6ca)
  • fix: improve tool instructions, add pyyaml dependency (#755) (696f1430)
  • fix: lower ding log message level from info to debug (41d604d9)
  • fix(shell): fix pipe handling and add telemetry error filter (#750) (3bb57151)
  • fix: improve handling of keyboard interrupts in precommit and autocommit hooks and commands (8ea8db89)
  • fix: include tool-registered commands in autocomplete (25c9772a)
  • fix: fixed log formatting of included lessons (a95ac3f7)
  • fix(llm): extend Anthropic retry logic to handle all transient 5xx errors (#746) (418b4669)
  • fix(llm): use client defaults for timeout instead of explicit value (#735) (0e3dcbcc)
  • fix(llm): update deepseek models context window to 128k (#742) (dca014fe)
  • fix: some telemetry fixes (#737) (8b10eef6)
  • fix(shell): handle file descriptor redirects and complex tool syntax (#736) (5207e421)
  • fix: include duration in tool call telemetry (d7dfb9c9)
  • fix: ensure MCP tools reload with updated config (#731) ([a46e6799](https:...
Read more

v0.28.3

02 Oct 07:27

Choose a tag to compare

These are the release notes for gptme version v0.28.3.

Contributors

Thanks to everyone who contributed to this release:

@ErikBjare, @TimeToBuildBob

Changelog

Changes since v0.28.2:

📦 gptme

✨ Features (2)

  • feat: improve save tool feedback with detailed status (d920ae5e)
  • feat: add git safety guards to shell tool (fc78a042)

🐛 Fixes (7)

Click to expand

  • fix: update CI anthropic model to claude-3-5-haiku (28d9367c)
  • fix(shell): denylist should not trigger on content in quoted strings or heredocs (0ce788a2)
  • fix(shell): improve denylist patterns for git commands (5e6bdc97)
  • fix: prevent premature code block closure during streaming with nested blocks (#657) (55fedb76)
  • fix: change default/recommended model to Sonnet 4.5 (21de08ce)
  • fix: use dateutil.parser.isoparse for all datetime parsing (f6f3de5e)
  • fix: use dateutil.parser.isoparse instead of datetime.fromisoformat (934384dc)

🔨 Misc (5)

  • chore: bump version to 0.28.3 (d22ff504)
  • docs: fixed v0.1.1 release notes (00ed0ece)
  • docs: included all past changelogs (6d407047)
  • docs: improve chat history prompt format (6fbd9db8)
  • docs: added release notes for v0.28.2 (481a07ff)

(excluded 2 less relevant commits)

Full Changelog: v0.28.2...v0.28.3

v0.28.2

29 Sep 17:44
v0.28.2

Choose a tag to compare

v0.28.2

These are the release notes for gptme version v0.28.2.

Contributors

Thanks to everyone who contributed to this release:

@ErikBjare

Changelog

Changes since v0.28.1:

📦 gptme

✨ Features (3)

  • feat: add dry-run mode for DSPy optimization commands (bd8861c5)
  • feat: add dedicated gptme-dspy command entry point (4c400d9f)
  • feat: GEPA in DSPy (#651) (014121ce)

🐛 Fixes (5)

  • fix: add support for sonnet 4.5 (991e8ac0)
  • fix: fixes to proxy openrouter support (7f4e7bf7)
  • fix(llm): respect LLM_PROXY_URL for OpenRouter models endpoint (17b903c9)
  • fix: make num_trials parameter actually control DSPy optimizers and add CLI options for dataset sizes (c447ed5c)
  • fix: improvements to evals/dspy/gepa (#652) (a1a17ea5)

🔨 Misc (5)

  • chore: bump version to 0.28.2 (3b7d5fc5)
  • refactor: split GEPA into separate optimize-gepa subcommand with proper budget configuration (67588b16)
  • docs: added release notes to index (4229c49a)
  • docs: added release notes for v0.28.1 (9836de12)
  • chore: updated changelog_contributors.csv cache (41f40093)

Full Changelog: v0.28.1...v0.28.2

v0.28.1

23 Sep 16:51
v0.28.1

Choose a tag to compare

These are the release notes for gptme version v0.28.1.

Contributors

Thanks to everyone who contributed to this release:

@delorenj, @ErikBjare

Changelog

Changes since v0.28.0:

📦 gptme

✨ Features (14)

  • feat: add denylist for dangerous shell commands with specific deny reasons (#648) (5b977846)
  • feat: implement get_model TODO and fix critical telemetry bug (#647) (9c05ac26)
  • feat: add trajectory-rich tasks for GEPA optimization (#640) (962bdf3c)
  • feat: add user-level files support in config (#639) (fb3bbfb7)
  • feat: add HTTP MCP Server Support + CLI Management Tools (#635) (0a4ef349)
  • feat: added cross-conversation context (#636) (54f289ec)
  • feat: add cache-aware cost calculation, use in telemetry (#631) (b3cd6e07)
  • feat: dspy experiment (#627) (fb61ddda)
  • feat: filter out resolved comments from GitHub PR content (d612a355)
  • feat: add GitHub Actions status to PR content fetching (947700de)
  • feat: add auto-naming for conversations in server API (#621) (cfce2bc8)
  • feat: add todo tools for conversation-scoped task management (#622) (ce3bfe72)
  • feat: include pwd and agent workspace path in system prompt (b38e06d0)
  • feat: add GitHub issue/PR link handling in context (#619) (f79e2428)

🐛 Fixes (25)

Click to expand

  • fix(api): support auto-generating agent path from name (#646) (62534a95)
  • fix: propagate agent logdir from subprocess in DSPy evaluations (#643) (d6c9fc69)
  • fix(eval): fix DSPy integration to use real evaluation specs (#630) (fa48bb34)
  • fix: added qwen3-max metadata (a471d1de)
  • fix: add initial support for magistral models (59dce119)
  • fix: fixes on top of HTTP MCP server support (#637) (21dc660a)
  • fix: switch to sonar-pro by default for perplexity (d9e99aef)
  • fix: extract env vars to constants (0eb0c9b0)
  • fix: improve todo tool, support writing multiple tasks in one tool call (61727b43)
  • fix: correct optimizers parameter format in workflow (9c565269)
  • fix: handle models that dont support vision, stricter openrouter provider selection, fixes to deepseek & kimi-k2 (1c18c3fa)
  • fix: added chime to generate_sounds script (fe24000f)
  • fix: misc fixes (#626) (ff0b6c74)
  • fix: catch exception if image file cannot be read (8165857c)
  • fix: update provider examples (faf56f60)
  • fix: move GitHub Actions status to end of PR content (174cc409)
  • fix: make morph tool work with all tool formats (fixes #603) (181a5fca)
  • fix: better tree output (#624) (6782d81a)
  • fix: fixed todo tools (daf128aa)
  • fix: add browser resilience with auto-restart and retry mechanism (26c93942)
  • fix: include starting working directory and use absolute paths in system prompt (204d09d2)
  • fix(server): fix setting initial working directory from workspace (03aa619e)
  • fix: use "Initial Working Directory" instead of "Current Directory" (c6cbc272)
  • fix: exclude untracked files from autocommit status check (da5fb7f5)
  • fix: resolve audio blocking and ALSA/PulseAudio timeout issues (#620) (d6703e85)

🔨 Misc (13)

Click to expand

  • chore: bump version to 0.28.1 (dae71fc5)
  • test: fix todo tool test expectations to match implementation (e9ff2efc)
  • docs: fixed incorrect example (1aaad3d0)
  • chore: comment out excessive debug logging (65f68e23)
  • refactor: improve ask_execute variable naming and imports (471ad1b5)
  • docs: clarify gptme description and improve usage examples (f606ccd2)
  • docs: fix outdated model reference (d7a06264)
  • chore: fix gitignore (8e262818)
  • docs: fix docs for changelog/release notes (#623) (8c6caf5f)
  • docs: create changelogs for tagged versions in ./docs/changelog using make target (4f69ef2e)
  • docs: update project description to emphasize modern agent capabilities (37a179a1)
  • Improve tree output and autocommit functionality (a6008fc2)
  • chore: updated changelog_contributors.csv cache (f045f329)

(excluded 8 less relevant commits)

Full Changelog: v0.28.0...v0.28.1

v0.28.0

13 Aug 11:05
v0.28.0
41d31f1

Choose a tag to compare

These are the release notes for gptme v0.28.0.

Usage

To get started, see the Getting Started guide in the documentation.

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
  • MCP Integration 🔌 - Support for Model Context Protocol servers, expanding tool ecosystem

🤖 Agent & Automation Enhancements:

  • Auto-commit - Automatically tell agent to git commit, or do it manually with /commit
  • Custom Agent Improvements - Even better support for agents based on the gptme-agent-template
  • Agent Workspace Auto-detection - Smarter handling of agent environments

🛠 Tool Improvements:

  • Shell Timeouts ⏱️ - Configurable command timeouts (set GPTME_SHELL_TIMEOUT)
  • Morph Tool ✨ - Alternative fast patching tool for precise code edits
  • Perplexity Search 🔍 - Enhanced web search capabilities through the browser tool
  • 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:

  • Setup Command ⚙️ - Easy configuration with /setup
  • 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
  • Bell and Tool Sounds 🔊 - Pleasant notification sounds for user input requested and different operations (enable via /setup or GPTME_DING/GPTME_TOOL_SOUNDS env vars)

📦 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: added /api/v2/models endpoint (#612) (b08f64e0)
  • feat: add tool sounds for different operations (#597) (ce6f50a2)
  • feat: add Perplexity search support to browser tool (#566) (c91c9d18)
  • feat: implemented choice tool (#598) (07b602ee)
  • 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: implement auto-commit (#441) (cf0ed1c5)
  • 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 chatterbox tts support (#541) (84151f97)
  • feat: openapi spec for server (#563) (62bd55d6)
  • 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 generate command, rework gptme-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: add api_conversation_delete (#519) (4fb3561b)
  • 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: added support for MCP server tools (#486) (c43f10a6)
  • feat: redesigned server API (#469) (d8f4fc4a)
  • 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)
    ...
Read more

v0.27.0

11 Mar 23:27
v0.27.0
96a5b54

Choose a tag to compare

These are the release notes for gptme version v0.27.0.

Contributors

Thanks to everyone who contributed to this release:

@0xbrayo, @ErikBjare, @jrmi, @Miyou

✨ Summary

This release brings a wealth of exciting improvements and new capabilities to gptme:

🚀 Major Enhancements

  • 🔧 Pre-commit Integration: Automatically run pre-commit hooks when tool use is exhausted, keeping your code clean and consistent!
  • 🍎 macOS Computer Use Tool: Extended our powerful computer use tool to macOS users, allowing the assistant to interact with GUI applications
  • 🧠 Reasoning Models Better Supported:
    • Claude 3.7 Sonnet support
    • DeepSeek R1 support
  • 🔈 Improved TTS: Enhanced Text-to-Speech with Kokoro 1.0, better sentence chunking and device handling

🛠️ Developer Experience

  • 🌳 Context Tree: Added GPTME_CONTEXT_TREE flag to include repository structure in prompts
  • ⚙️ Feature Flags: New environment variables like GPTME_BREAK_ON_TOOLUSE and GPTME_FRESH for advanced users
  • 🔍 Enhanced RAG: Much improved document retrieval with LLM post-processing
  • 📊 Terminal Status: Real-time status updates in terminal title
  • 🔄 Auto-rename: Added script to intelligently rename past conversations

🔧 Under the Hood

  • 🐛 Bug Fixes: Fixed 65+ issues to ensure smooth, reliable operation
  • 📷 Better Image Handling: Improved vision tool with automatic rescaling
  • 📋 Model Switching: Added /model command to list and switch models in conversation
  • 🔄 Patch Recovery: New GPTME_PATCH_RECOVERY option to recover from non-matching patches

We apologize for the delay in this release. For those eager to try the latest features before the next release, we recommend running directly from the master branch:

pipx install git+https://github.com/gptme/gptme.git

Changelog

Changes since v0.26.0:

📦 gptme

✨ Features (19)

  • feat: added GPTME_CONTEXT_TREE which includes tree --gitignore . output in initial prompt (#461) (593ee900)
  • feat(style): print <think>/<thinking> in dimmed text (dfab1e05)
  • feat: added basic files support to server API (#440) (24b9dc95)
  • feat: added script to auto-rename past conversations (#439) (9a9f0114)
  • feat: added terminal title status output (#438) (37c877f3)
  • feat: much improved RAG, added LLM post-processing of results (#435) (f4b6f02e)
  • feat: use gnome-screenshot in wayland (#436) (6d1d47a4)
  • feat: add status emojis to system messages (#429) (69c5f011)
  • feat: added support for nvidia provider (7f387d33)
  • feat: auto-enable pre-commit checks when config exists (#430) (5cd9b1e8)
  • feat: enhance vision tool with better image processing (6a982987)
  • feat: add option to override base prompt (#426) (78e92091)
  • feat(computer): add macOS support for computer tool (#324) (7a08e341)
  • feat: added support for GPTME_BREAK_ON_TOOLUSE flag to not stop generation when tooluse occurs in stream (e7021b9c)
  • feat: auto-run precommit checks when tooluse exhausted (#415) (254d1b61)
  • feat: added support for deepseek-reasoner (#410) (ac3b8258)
  • feat: added /model command to list/switch models, support mixing providers (#409) (a2bc4e00)
  • feat: add env var feature flag for llm prompt suggestions (978b1c4b)
  • feat: added gptme-wut (#402) (91bdce67)

🐛 Fixes (65)

Click to expand

  • fix: fixed reduce_context script (2f8246c6)
  • fix: added reduce_context.py script (f0edadde)
  • fix: added gh-pr-view-with-pr-comments.sh script (3e0dd23d)
  • fix: add gemini-2.0-flash-thinking-exp-01-21 to models (#465) (489f73e6)
  • fix: fix /export command (#460) (0ce55149)
  • fix: fix missing dependency warning (#455) (ced1b9ac)
  • fix: fixed incorrect reference to GPTME_FRESH_CONTEXT (now just GPTME_FRESH) (ce626ed1)
  • fix: fix circular import (417613c1)
  • fix: correctly handle too long path names (ec1118c6)
  • fix: dont expand paths in user commands for tools, like /shell (#453) (96304695)
  • fix: fixed a bunch of get_default_model uses, return None instead of exception if unset (a3626c82)
  • fix: make model fully optional in prompts.py, no fallback to possibly unset default (29a0cb19)
  • fix: correct content block processing in Anthropic LLM module (b4d2d962)
  • fix(anthropic): use model_meta.supports_reasoning to determine wether to use thinking (91af56c1)
  • fix: add supports_reasoning to model_meta, disabling <thinking> prompting for such models (b15fb6a5)
  • fix(anthropic): set max_tokens from model metadata (a89ca157)
  • fix: refactor only-once warning of unknown model metadata (5d5f0e95)
  • fix: disabled tool tooluse format for Sonnet 3.7 with thinking, for now (4354f3e7)
  • fix: only log missing model metadata warning once (ffb83789)
  • fix: added model metadata for sonnet 3.7 (1df392ac)
  • fix: add support for sonnet 3.7 (cb83725c)
  • fix: add model parameter to step function (dont rely on global) (ebc076bb)
  • fix: refactored get_project_dir helper function (d231311e)
  • fix: prompt to prefer absolute paths (ba11552a)
  • fix: fixes after RAG improvement PR (486d9858)
  • fix: refactor workspace initialization (6936a4e1)
  • fix: fix support for explicitly disabling pre-commit checks (603ecaae)
  • fix: added basic gptme-util chats search command, fixes to gptme-util chats overall (#434) (b9a64578)
  • fix: adjust tts speed to 1.0 by default after tts_server.py updated to kokoro 1.0 which seems faster by default (6e3af447)
  • fix: upgrade tts_server.py to use kokoro 1.0, fix audio output device on linux (#432) (007a0750)
  • fix: improved status emojis in formatted messages (964b5280)
  • fix: automatically clone Kokoro-82M repo in tts_server.py script (a6109c71)
  • fix: fixed support for o3 (3a810109)
  • fix: log reasoning_content when available (i.e. Deepseek R1) (e13af3f3)
  • fix: added support for GPTME_PATCH_RECOVERY where file is returned in error for non-matching patches ([96ceec24](http...
Read more

v0.26.0

14 Jan 13:04
v0.26.0
3fef994

Choose a tag to compare

These are the release notes for gptme version v0.26.0.

Summary

This release includes:

  • Support for local TTS using Kokoro (experimental, #401, announcement tweet)
  • Ability to load tools from external modules (#336)
  • Many fixes and improvements to reliability.

Contributors

Thanks to everyone who contributed to this release:

@0xbrayo, @chenrui333, @ErikBjare, @jrmi

Changelog

Changes since v0.25.0:

📦 gptme

✨ Features (4)

  • feat: added local TTS support using Kokoro (#401) (3e8e8698)
  • feat: allow to load tools from external modules (#336) (dd99731c)
  • feat: add support for different tool formats in eval system (#380) (5fbc0acb)
  • feat: improve tool use response format (#306) (1934fcf1)

🐛 Fixes (16)

Click to expand

  • fix: fixed sending whitespace-only messages to tts server (51ce6aea)
  • fix: more precise version when installed in editable mode, with git info (#400) (9cbaa5da)
  • fix: allow overriding logs folder via GPTME_LOGS_HOME (a34276c7)
  • fix: dont store invalid commands in log (aaf2e9e9)
  • fix: fix /summarize command (#390) (c41df98e)
  • fix(server): init tools in server api (#389) (b6f337ac)
  • fix: tool api call broken when user answer no to when asked for confirmation (#371) (72fb003d)
  • fix: several fixes to tmux tool, incl support for multiple commands per tooluse (#382) (8dbed8eb)
  • fix: rename python tool to ipython for better tooluse format adherence (#361) (d4407e30)
  • fix: improve smaller model response on user refusals (#374) (11708dd1)
  • fix: create workspace symlink in log folder, load on resume (#368) (03475102)
  • fix: shorten command descriptions (0d642c22)
  • fix: remove conflicting -n alias for --name, keep as --non-interactive alias (fixes #360) (dd26dc23)
  • fix: prettier /command completions (f2e01f3b)
  • fix: retry on anthropic overloaded (#356) (50763762)
  • fix: fixed auto n option on ask_execute, added log message with remaining skips (cc1af13a)

🔨 Misc (10)

Click to expand

  • chore: bump version to 0.26.0 (3fef9941)
  • chore: fixed venv docker/gitignore (a32fc3bc)
  • docs: improve custom tools docs, mentioning simple script tools (#391) (d33ff353)
  • test: simplified tool format test, dont skip cli url test if lynx available (cdbfae8b)
  • chore: added .aider and .env to gitignore (54253a5d)
  • test: fix reset_default_model fixture if no default set (a5687952)
  • test: reset default model in openai tests to fix flaky test (7ff84922)
  • test: fix typo in model name (dec7a60f)
  • chore: update brayo-pip -> 0xbrayo (871cf63c)
  • chore: updated changelog_contributors.csv cache (7abeb1eb)

(excluded 11 less relevant commits)

Full Changelog: v0.25.0...v0.26.0

v0.25.0

20 Dec 12:08
v0.25.0

Choose a tag to compare

These are the release notes for gptme version v0.25.0.

Summary

This release brings major improvements to the user experience with a new prompt_toolkit-based interface (better completion and highlighting), support for OpenAI/Anthropic tools APIs, and significant cost & performance improvements for Anthropic through better prompt caching. The release also includes improved path handling, workspace context, heredoc support, and numerous UX improvements and bug fixes.

Contributors

Thanks to everyone who contributed to this release:

@jrmi, @bjsi, @0xbrayo, @ErikBjare

Changelog

Changes since v0.24.1:

📦 gptme

✨ Features (8)

  • feat: support auto n to skip n confirmations (#346) (7d2e9e7b)
  • feat: migrate readline to prompt_toolkit, with many features and fixes (#244) (61ca0a24)
  • feat(llm): add model metadata for Deepseek, Groq, and XAI (d2109fef)
  • feat: simplify rag tool by simply calling gptme-rag via subprocess (#316) (87571086)
  • feat(anthropic): improve prompt caching and type safety (#317) (a2f06df8)
  • feat: started working on always-fresh context message (#281) (01d80524)
  • feat: support for OpenAI/Anthropic tools APIs (#300) (d83f7238)
  • feat: output costs for request and session (#293) (063624fe)

🐛 Fixes (34)

Click to expand

  • fix: return instructions to correctly playwright install if browser binaries unavailable (#358) (ebf56754)
  • fix: dont log costs by default (f65e75e6)
  • fix: stream and capture ipython output (#357) (ef424bed)
  • fix: removed spammy debug-logging message (99912f3c)
  • fix: properly handle piped input in prompts (#354) (f8321834)
  • fix: support piping stdin into gptme -r (resume) (#344) (621ffd80)
  • fix: move playwright to thread to avoid event loop conflicts (#353) (803d6e51)
  • fix: migrated to latest anthropic version v0.42 (prompt caching now stable) (#352) (0ecf0459)
  • fix: fix reading stdin after prompt-toolkit migration (#337) (b3974c15)
  • fix: fix log output during input, fix directory completion (#338) (e3874aa4)
  • fix: remove prompting to avoid the now-supported EOF/HereDoc (3950a6e7)
  • fix: support heredoc/EOF syntax in shell tool (#335) (6a1246f5)
  • fix: improved path detection in prompts, now works with more adjacent punctuation types (#333) (8e8f28ea)
  • fix: use full paths to files in workspace context prompt (#330) (a61aa284)
  • fix: fixed incorrectly always using gpt-4 model metadata when reducing (2343ab67)
  • fix: when patch failed due to bad path, include pwd in message for fast recovery (202869e6)
  • fix(llm): transform message content for Groq provider (84c83166)
  • fix: better prompt caching & less debug logging (#323) (fae65ca4)
  • fix: better anthropic cost logging (#321) (283e8b0f)
  • fix: better error output when loading locked conversation (#319) (2264cf10)
  • fix: further anthropic caching improvements (#318) (65efc3e0)
  • fix: fixed regression in syntax highlighting for saves after refactor (a40f5387)
  • fix: added conversation lock file management in LogManager (#295) (7255f255)
  • fix: improvements after execute_with_confirmation refactor (#311) (23f81cf8)
  • fix: set TOKENIZERS_PARALLELISM env var to false to get rid of warning (75b298be)
  • fix: clarify return prompt for subagent tool (29bcc473)
  • fix: skip loading subagent tool by default (37ae9c19)
  • fix(prompts): minor fixes and improvements to prompts (10108a10)
  • fix: fixed Dockerfile for computer use (9bf733a5)
  • fix: include mention of user-edited save/patch/command in system response (93e126ac)
  • fix: make the --help text for --model always use recommended models (2c872f36)
  • fix: handle exceptions if readline history fails to write (c60eb883)
  • fix: prevent command execution from triggering unnecessary response generation (7f66dbff)
  • fix: incorrect response_preference key in config (748be0b6)

🔨 Misc (26)

Click to expand

  • chore: bump version to 0.25.0 (c3edcbf9)
  • refactor: make /tokens command use log_costs function (1fd407c1)
  • docs: improved docs for playwright install, added instructions for lynx browser backend (a9bd44fa)
  • docs: list api key env variables uniformly for all providers (d598ff36)
  • perf: optimize token counting with caching and explicit model param (#325) (c05f9c69)
  • docs(providers): simplify provider docs and update API key config (c86b47cf)
  • refactor: refactored how tools are loaded, to enable loading external tools (#313) (c0eb21fa)
  • refactor: moved more core files to util module (#312) (0ee07cf6)
  • docs: moved usage rubrics from example.rst to usage.rst (4ff383aa)
  • test: disable generate primes test for gpt-4o-mini (unreliable) (696e722c)
  • test: disable subagent test for gpt-4o-mini (unreliable) (b34cee08)
  • docs: added alternatives.rst to docs index (83736d6e)
  • docs: renamed comparison.rst to alternatives.rst, reorganized it (9744d36b)
  • docs: added basic comparison docs page (fb148333)
  • refactor(tools): introduce execute_with_confirmation helper (df5c9d6e)
  • refactor: Move utility functions into dedicated modules, make tool content editable (d01b943d)
  • docs(gh-bot): fix uses: for example workflow in non-gptme repos (4d4c2b44)
  • docs: add quotes for [extras] in pi...
Read more