Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
0.28.0 - 2026-07-10¶
Added¶
- Global and project memory with managed updates, secret detection, and
/memorycommands. - Historical tool activity annotations in Turn Memory to preserve execution context across long-running sessions.
Changed¶
- Anthropic debug logging now shows the ordered provider-facing conversation content.
0.27.0 - 2026-07-10¶
Added¶
- GPT-5.6 model entries in the provider registry.
- Debug logging for unhandled LLM tool tokens and malformed tool JSON in Anthropic and OpenAI clients.
0.26.1 - 2026-07-08¶
Changed¶
- Tightened tool-memory guidance in the system prompt to prevent hallucinated findings from stale memory, requiring a fresh tool call before relying on external evidence.
0.26.0 - 2026-07-07¶
Added¶
- Claude Fable 5 and Sonnet 5 model entries in the provider registry.
0.25.3 - 2026-07-03¶
Fixed¶
- Clear REPL input on
Escinstead of quitting the application.
0.25.2 - 2026-07-02¶
Fixed¶
- Require follow-through in tool-use claims to prevent unsupported completion summaries.
0.25.1 - 2026-07-02¶
Added¶
- Batched REPL stream viewport redraws to reduce render churn while preserving immediate diff and permission updates.
0.25.0 - 2026-06-29¶
Added¶
- Distinct input styles for
/btwand/adversarycommands in the REPL. - Spill large MCP tool results to artifact files.
Fixed¶
- Send required metadata in OAuth dynamic client registration for MCP servers.
0.24.12 - 2026-06-29¶
Fixed¶
- Clear turn elapsed display on
/clearcommand. - Remove
delegate_taskfrom adversary tool registry.
0.24.11 - 2025-07-22¶
Added¶
- Turn elapsed time display after agent completes in the REPL.
Changed¶
- Use dim faint style for turn elapsed display in the REPL.
0.24.10 - 2025-07-21¶
Fixed¶
- Remove false-positive dangerous classification for
2>&1and2>/dev/nullredirects in bash classifier.
0.24.9 - 2026-06-27¶
Added¶
- Automatic dangerous bash command classification in the
bashtool, gating risky commands even when the LLM omitsisDangerous. - File tagging (
@) suggestions inside slash commands and skill invocations.
0.24.8 - 2026-07-18¶
Added¶
api_key_helpercredential refresh on 401 responses.- REPL loading step shown while fetching credentials for
api_key_helperproviders.
0.24.7 - 2026-06-24¶
Added¶
api_key_helperfor shell-based API key resolution.- Block-level prompt caching for Anthropic.
0.24.6 - 2026-06-23¶
Added¶
--resumeflag to restore previous REPL sessions.
0.24.5 - 2026-06-23¶
Fixed¶
- Ignore whitespace-only input submissions in the REPL.
Changed¶
- Document
KEEN_LOG_LEVELdebugging instructions in CONTRIBUTING.md.
0.24.4 - 2026-06-22¶
Added¶
- Surface MCP startup errors in the REPL UI.
- Per-provider custom HTTP headers configuration.
Fixed¶
- Unblock bang (
!) output readers when context is cancelled.
0.24.3 - 2026-06-21¶
Fixed¶
- Prefer native clipboard writes before OSC52 fallback in the REPL and log native clipboard failures in debug mode.
0.24.2 - 2026-06-21¶
Fixed¶
- Adjusted viewport height to account for notifications and queued inputs in the REPL.
0.24.1 - 2026-07-18¶
Changed¶
- Removed vim-style
j/kkeybindings from permission prompts, session picker, and model selection, keeping only arrow keys for navigation. - Applied faint styling to loading and queue item text in the REPL.
0.24.0 - 2026-07-17¶
Added¶
- Queue user inputs while the agent is streaming, preventing input loss during active LLM turns.
- Loading spinner for bash and bang (
!) shell commands, providing visual feedback during shell execution.
Changed¶
- Reduced hallucinated MCP tool names with exact-name guidance in the system prompt.
0.23.7 - 2026-06-20¶
Added¶
- OpenAI-compatible and Responses clients now reuse prompt cache context per session to improve cache hits across turns.
0.23.6 - 2026-06-18¶
Fixed¶
- Append a config fix hint pointing to
~/.keen/configs.jsonto LLM config errors raised during resolve, load, and client construction. - Clear
pendingStateon context overflow after tool-result reduction so stale tool traces and thinking tokens are not re-injected on the next call.
0.23.5 - 2026-06-18¶
Added¶
- Atom One Dark color theme for markdown code highlighting in the REPL.
- First Ctrl+C now interrupts active REPL work before a second Ctrl+C exits.
Removed¶
- Bundled cleanup and plan skills.
0.23.4 - 2026-06-18¶
Added¶
- Asynchronous
!shell command execution with streaming output and cancellation support. - Bash tool now writes truncated output artifacts to
~/.keen/bashand grants read access to them.
Changed¶
- Refreshed GLM model entries in the provider registry.
Fixed¶
- Corrected spacing in the REPL input meta display.
- Skip context-reducer targets smaller than the placeholder threshold.
0.23.3 - 2026-06-17¶
Changed¶
- Relocated provider registry and loader from
providers/tointernal/providers/to keep the provider API internal.
0.23.2 - 2026-06-15¶
Added¶
- Spinner animations for REPL loading states.
- Qwen3.7 Plus model entry in the provider registry.
Changed¶
- Shell output now renders with a distinct muted background style in the REPL.
- Refined input meta display in the REPL.
- Pruned superseded models from the provider registry.
Fixed¶
- Updated test expectations for context status rendering and model count.
0.23.1 - 2026-06-15¶
Added¶
- Kimi K2.7 Code model entry in the provider registry.
Changed¶
- Extracted REPL input selection into a dedicated type.
0.23.0 - 2026-06-14¶
Added¶
- Read-only subagent delegation via
delegate_taskwith the bundledexplorersubagent for scoped codebase investigations.
Changed¶
- Simplified REPL tool invocation display.
- Simplified displayed tool input fields in the REPL output.
0.22.3 - 2026-06-14¶
Added¶
- Google Analytics tracking for the documentation site.
- Automatic clipboard copy when mouse text selection is released in the REPL, with a transient copy notification.
Changed¶
- Reduced tool context sent to the LLM before requests.
- Removed
Ctrl+CandCmd+Cas REPL selection copy shortcuts in favor of copy-on-release.
0.22.2 - 2026-06-15¶
Added¶
- Input/output token accumulation and display in the REPL status bar.
- Session-level token totals that reset on
/clear,/new, and/resume. - Compact token formatting (e.g.
1.2k,3.4M) in the meta status view.
0.22.1 - 2026-06-14¶
Added¶
- Optional API key support for the Amazon Bedrock provider, enabling usage with temporary credentials or cross-account authentication.
- Bearer token authentication for Bedrock models.
- Config helpers to detect optional vs required API key configuration.
Changed¶
- Updated model selection UI to show hints for optional vs required API keys.
0.22.0 - 2026-06-13¶
Added¶
- Amazon Bedrock provider with Claude models (Opus, Sonnet, Haiku) via the AWS SDK, supporting streaming, tool use, and reasoning.
- AWS credential-based authentication with automatic region resolution and optional base URL override.
- MCP tool call validation: reject missing required arguments and normalize server/tool names before invoking the server.
- Debug logging for token usage (prompt, completion, cached, reasoning) in OpenAI-compatible, Codex, and Responses clients.
Changed¶
- Updated Amazon Bedrock documentation and MCP tool description in README and docs.
0.21.2 - 2026-06-11¶
Added¶
- Clickable URLs in REPL output: bare URLs render as underlined OSC 8 hyperlinks and open on Alt/Option or Ctrl+click.
0.21.1 - 2026-06-09¶
Changed¶
- Refreshed status bar glyphs and layout.
- Moved mode chip to input border with plan mode styling.
- Consolidated demo GIF and removed unused assets.
- Added cast to GIF conversion command to the agent release skill.
0.21.0 - 2026-06-08¶
Added¶
!prefix in the REPL input for direct shell command execution, bypassing the LLM.- Shell mode input styling: accent-colored rules with a
shellchip and recolored prompt when!is typed. - Syntax-highlighted command output via the built-in markdown renderer with automatic language detection.
0.20.5 - 2026-06-07¶
Changed¶
- Enabled prompt caching for all providers using the Anthropic client, no longer restricted to the Anthropic provider.
- Cached the last system block to improve hit rates on multi-turn conversations.
0.20.4 - 2026-06-05¶
Added¶
- Product Hunt badge and launch highlight to documentation homepage.
Changed¶
- Reduce long tool contexts in LLM calls.
Fixed¶
- Tighten Product Hunt badge spacing on documentation homepage.
0.20.3 - 2026-06-03¶
Added¶
- Styled inline code spans in REPL startup tips.
Changed¶
- Updated demo assets.
0.20.2 - 2026-06-02¶
Added¶
- Shimmer loading effect and did-you-know tips replacing the previous loading spells in the REPL.
0.20.1 - 2026-06-02¶
Added¶
- REPL startup screen hints showing the last session and rotating usage tips.
- Support for the MiniMax
m3model in the provider registry.
Changed¶
- Polished REPL input UX with dynamic textarea height and up-arrow history navigation.
- Renamed MiniMax model identifiers to lowercase in the provider registry.
0.20.0 - 2026-06-01¶
Added¶
/adversaryREPL command to trigger an adversarial review of the current conversation for gaps, risks, and missed alternatives.
0.19.4 - 2026-05-31¶
0.19.3 - 2026-05-26¶
Added¶
- Inline
/btwside-question rendering with full conversation context instead of an overlay popup. - Styled chip mode indicators in the REPL status bar (plan/build) replacing glyph+text labels.
0.19.2 - 2026-05-25¶
Added¶
- Support Claude skill directories in skill discovery and filesystem permissions.
- Expanded tool reference documentation and roadmap updates.
Changed¶
- Updated demo assets in the README and documentation site.
0.19.1 - 2026-05-23¶
Changed¶
- Preserved MCP skill enablement preferences during server sync while removing stale generated skills for deleted servers.
- Simplified MCP tool display and capped skill descriptions in REPL list output.
- Used MCP server instructions for generated skill descriptions.
- Store logs in
~/.keen/logsinstead of~/.keen-code/logs. - Refreshed documentation landing page styling and clarified skill activation persistence.
0.19.0 - 2026-05-21¶
Added¶
web_fetchtool to fetch URL content and convert HTML pages to Markdown for LLM consumption.- MCP server support with configurable transports, authentication, connection management, and tool discovery.
- MCP tool-calling support through generated MCP skills and the
call_mcp_tooltool. - Documentation for MCP servers, skill-driven MCP integration, and OAuth-authenticated MCP servers.
- GitHub Pages documentation site powered by MkDocs Material.
- Suggested subcommands for
/mcp connect,/mcp status,/skills list,/skills enable, and/skills disable.
Changed¶
- Streamlined README intro section.
- Updated REPL mode glyphs and removed mode-change confirmation messages.
- MCP skills now enable or disable based on connection status while preserving generated skill files.
- Improved docs site styling, navigation, badges, fonts, and local preview support.
Fixed¶
- Render markdown table row rules safely.
- Fixed broken or misleading documentation links and labels.
0.18.0 - 2026-05-16¶
Added¶
- Plan and build modes for structured REPL interaction workflows.
0.17.0 - 2026-05-15¶
Added¶
- Project-level tool allow lists for pre-approved permission checks.
- Anthropic prompt caching support and improved token usage tracking.
- Benchmark runner with updated benchmark documentation and demo assets.
Changed¶
- Improved REPL markdown rendering with width-aware horizontal rules, wrapped tables, connected table borders, and outer table frames.
- Refined assistant formatting guidance to prefer semantic GitHub-flavored markdown.
- Updated CLI usage and permission system documentation.
0.16.3 - 2026-05-13¶
Added¶
- Paginate
read_fileoutput and add line number prefixes. - OpenCode usage scripts and restructured benchmark output with usage timestamp filtering.
- Refined system prompt exploration guidance for efficient tool use.
Changed¶
- Restructured benchmark layout.
0.16.2 - 2026-05-12¶
Added¶
- Toggle focus between input and viewport via Tab and mouse clicks.
- Route up/down keys based on focused region.
- Dim input chrome and prompt glyph when focus is in the viewport.
Changed¶
- Merged PR #41: add basic benchmark.
0.16.1 - 2026-05-12¶
Added¶
keen runheadless command for non-interactive task execution.--providerand--modelflags to override LLM configuration inkeen run.
0.16.0 - 2026-05-11¶
Added¶
- Bundled workflow skills for common agent tasks.
/btwside questions for asking context-aware questions without interrupting the main conversation.- Documentation for
/btwside questions.
Changed¶
- Constrained REPL suggestion list height to fit the available viewport.
0.15.3 - 2026-05-08¶
Changed¶
- Moved release guide from README into a local skill at
.agents/skills/release/.
Added¶
- Documentation for turn memory KV cache and token cost analysis.
0.15.2 - 2026-05-08¶
Changed¶
- Avoid repeated file suggestion cache rebuilds in large repositories.
0.15.1 - 2026-05-07¶
Added¶
- Horizontal padding for submitted user input blocks.
Changed¶
- Use
git ls-filesfor faster cached file suggestions. - Improved REPL status display and usage documentation.
Fixed¶
- REPL submitted input wrapping test expectation.
0.15.0 - 2026-05-07¶
Added¶
- MiniMax provider support for M2.7 and M2.5 via the Anthropic-compatible API.
0.14.0 - 2026-05-06¶
Added¶
- OpenCode Go provider support routed through OpenAI-compatible or Anthropic clients, including provider registry entries and thinking parameter handling
- REPL session IDs propagated through LLM stream calls and attached as hyphenless OpenCode Go request headers (Anthropic and OpenAI-compatible)
- Architecture and system documentation covering AI providers, permission system, session management, skills system, tools, and turn memory
Changed¶
- Preserve Anthropic thinking blocks across tool continuations
- Simplified LLM test coverage by removing redundant provider, thinking effort, and system prompt tests
0.13.0 - 2026-05-06¶
Added¶
- Agent skills discovery, slash-command invocation, frontmatter validation, and argument substitution
- Bundled commit skill embedded in the binary and extracted to the user skills directory at runtime
- Additional model registry entries
Changed¶
- Reset LLM provider state when starting new REPL sessions
0.12.2 - 2026-05-03¶
Added¶
- Permission option to ask what the agent should do instead, interrupting the current stream while preserving partial state
0.12.1 - 2026-05-02¶
Changed¶
- Improved REPL loading status display with elapsed time
Fixed¶
- Indent wrapped submitted user input lines in the REPL transcript
0.12.0 - 2026-05-01¶
Added¶
- In-app text selection for REPL output and input, with copy support for active selections via
Ctrl+Cor forwardedCmd+C
0.11.2 - 2026-04-30¶
Changed¶
- Split REPL command handling into dedicated command handler components
0.11.1 - 2026-04-30¶
Added¶
- Shaded background block for the echoed user input that grows with line count and resizes responsively with the viewport
Changed¶
- Refreshed the prompt glyph from
>to▶across the textarea, echoed input, model selection inputs, session picker, and permission card cursor
0.11.0 - 2026-04-30¶
Added¶
- Retry support across streaming clients for improved LLM reliability
- Pending tool state preservation across turns
- Pending state recovery for all LLM clients
0.10.0 - 2026-04-27¶
Added¶
- ChatGPT OAuth support for the Codex provider
0.9.0 - 2026-04-27¶
0.8.0 - 2026-04-25¶
Added¶
- Retry transient LLM stream errors with backoff for OpenAI-compatible clients
0.7.0 - 2026-04-25¶
Added¶
- Startup update checker that notifies REPL users when a newer version is available
0.6.1 - 2026-04-25¶
Fixed¶
- Improved assistant markdown colors on light terminals while preserving inline code color and syntax highlighting
0.6.0 - 2025-07-18¶
Added¶
- Z.ai (GLM) as an OpenAI-compatible provider (#3)
- File suggestion with
@prefix in the input textarea filesearchpackage with gitignore-aware file indexing and glob-escaped query matching
Fixed¶
- Materialize partial message and TurnMemory on LLM error
Changed¶
- Bumped Anthropic max output tokens
0.5.0 - 2026-04-23¶
Added¶
- Configurable base URL per provider
- CONTRIBUTING.md for contributors
- Public-facing ROADMAP.md
- Turn-memory documentation
- Project tour, issue templates, and pull request template
- Demo GIF in README
Changed¶
- Wrapped REPL diff output in a viewport
- Updated LLM configuration
- Refreshed the demo GIF rendering with Monaspace Argon NF
0.4.1 - 2026-04-22¶
Fixed¶
- Retain tool memory on stream interrupt
0.4.0 - 2026-04-22¶
Added¶
- Provider-backed context status replacing the local word-count heuristic
- Token usage events emitted from all provider clients (OpenAI Responses, Anthropic, Genkit/Google AI, DeepSeek/Moonshot)
- Cache-aware token accounting for Anthropic (includes cache creation and read tokens)
- Anthropic adaptive effort display in the status bar
N/Adisplay when context window is unknown instead of a misleading percentage
Changed¶
- Context status now reports actual provider-counted token usage against the model context window
- Compaction suggestions are grounded in real tokenization rather than local estimates
/clearand/newreset context metrics for new sessions- Updated provider registry with new models and context windows
Removed¶
- Local word-count token estimation helpers (
estimateTokensFromWordCount,countWords,estimateToolDefinitionTokens,buildConversationForEstimation)
0.3.0 - 2026-04-21¶
Added¶
- Configurable thinking effort selection in model setup and via the
/thinkingruntime command - Direct Anthropic SDK client with expanded Anthropic streaming and tool-loop test coverage
- Refactored REPL helper packages for app state, output, permissions, theme, tooling, widgets, and streaming
Changed¶
- Thread thinking effort configuration through OpenAI Responses, Anthropic, and Genkit clients
- Added Anthropic prompt caching support in the REPL streaming path
- Refreshed phase-5 design notes and removed stale scratch artifacts
0.2.3 - 2026-04-19¶
Added¶
- Structured
TurnMemorysystem to replace in-band XML tags for tracking durable tool outcomes turnMemoryAccumulatorin REPL to automatically capture file changes and failed bash commands
Changed¶
- Refactored LLM provider interface to deterministically append tool memory metadata
- Simplified system and compaction prompts by removing manual memory tag instructions
- Improved session persistence to support structured tool outcomes
Removed¶
- Legacy
<keen_memory>tag parsing and stripping logic
0.2.2 - 2026-04-17¶
Added¶
- Hidden
keen_memoryblocks to preserve durable tool outcomes across turns without showing them in the REPL transcript
Changed¶
- Session picker now constrains its visible list to the current viewport height
Fixed¶
- Only extract trailing dedicated
keen_memoryblocks for logging and compaction-aware handling
0.2.1 - 2026-04-16¶
Changed¶
- Simplified REPL context status display and metadata emphasis
0.2.0 - 2026-04-16¶
Added¶
- Conversation session management with transcript persistence
/sessionscommand to list recent sessions with metadata/resumecommand with interactive picker to restore conversations/compactcommand to summarize conversation history via LLM- Event-sourced storage (session_started, user_message, assistant_turn, compaction_applied)
- Store tool outputs, bash results, and file diffs in transcript for full replay
0.1.7 - 2026-03-24¶
Added¶
- REPL context status indicator with progress bar and percentage based on model context window
- Slash command autosuggestion dropdown for
/help,/model, and/exit
Changed¶
- Consolidated REPL styling for context status and suggestion UI
0.1.6 - 2026-03-22¶
Changed¶
- Improved spinner UX with smoother feedback during LLM streaming
- Refined tool descriptions for better LLM tool selection
- Improved Genkit streaming reliability
0.1.5 - 2026-03-22¶
Added¶
- Install script for easier local setup
- npm wrapper package documentation
0.1.4 - 2026-03-22¶
Changed¶
- Switched npm publishing to trusted publishing (removes need for legacy token)
0.1.3 - 2026-03-22¶
Fixed¶
- Release pipeline corrections from v0.1.2
0.1.2 - 2026-03-22¶
Fixed¶
- Improved release flow and startup behavior
0.1.1 - 2026-03-22¶
Fixed¶
- npm wrapper publish and install flow
0.1.0 - 2026-03-22¶
Added¶
- Interactive REPL powered by Bubble Tea with streaming LLM responses
- Multi-turn tool calling with Genkit integration
read_filetool with interactive permission systemwrite_filetool with inline diff renderingedit_filetool with inline diff renderingbashtool with permission gatingglobtool for file pattern searchinggreptool for content search- File guard with
.gitignoreawareness and permission levels (granted/pending/denied) - Inline permission card UI (replaces full-screen modal)
- Dynamic system prompt generation with project context
- OpenAI-compatible client supporting DeepSeek (including reasoning/chain-of-thought)
- MoonshotAI provider via OpenAI-compatible client
- Dedicated OpenAI Responses API client
- GoReleaser config for cross-platform binary distribution
- npm wrapper package for installation via
npm install -g keen-code