CHANGELOG.md 53 KB

@kilocode/cli

0.26.0

Minor Changes

Patch Changes

0.25.1

Patch Changes

  • #5250 96c2b39 Thanks @marius-kilocode! - Fix intermittent issue where list_files and search_files tools show "Total: 0 items" or "Found: 0 matches"

  • #5227 12d96fa Thanks @marius-kilocode! - Replace verbose "(git worktree)" indicator with compact "⎇" symbol in CLI status bar and terminal title

0.25.0

Minor Changes

  • #5237 a65f7aa Thanks @eshurakov! - Add --append-system-prompt-file option to read custom instructions from a file

Patch Changes

  • #5230 3d21b02 Thanks @eshurakov! - Add async condense context handling with completion and error feedback in auto mode

  • #5212 66f2f22 Thanks @marius-kilocode! - Fix CLI context drops caused by stale partial updates overwriting completed messages

    When delayed IPC messages with partial=true arrived after a message had already been completed (partial=false), the stale update would overwrite the completed message, causing context loss. This fix adds a check to prevent partial updates from reverting completed messages back to partial state.

0.24.0

Minor Changes

  • #5176 6765832 Thanks @Drilmo! - Add image support to Agent Manager

    • Paste images from clipboard (Ctrl/Cmd+V) or select via file browser button
    • Works in new agent prompts, follow-up messages, and resumed sessions
    • Support for PNG, JPEG, WebP, and GIF formats (up to 4 images per message)
    • Click thumbnails to preview, hover to remove
    • New newTask stdin message type for initial prompts with images
    • Temp image files are automatically cleaned up when extension deactivates
  • #5183 1194a6e Thanks @alexandrevilain! - add custom commands support

Patch Changes

  • #5141 37a489c Thanks @PeterDaveHello! - Improve --continue flag reliability by replacing fixed 2-second timeout with Promise-based response handling

  • #5171 49b82ea Thanks @Drilmo! - Fix missing visual feedback and input blocking during paste operations

    • Display "Pasting image..." loader when pasting images via Cmd+V/Ctrl+V
    • Display "Pasting text..." loader when pasting large text (10+ lines)
    • Block keyboard input during paste operations to prevent concurrent writes
    • Support multiple concurrent paste operations with counter-based tracking
  • #5185 809251d Thanks @pandemicsyn! - fix session restore race that triggered premature exit

  • #5199 2881689 Thanks @marius-kilocode! - Fix CLI diff display showing partial SEARCH/REPLACE markers and git merge conflict markers during streaming

  • #5198 ae997e2 Thanks @kiloconnect! - Simplify CLI README development instructions to use 4-step process

  • Updated dependencies [6765832, cdc3e2e]:

0.23.1

Patch Changes

0.23.0

Minor Changes

  • #5084 f0c79d2 Thanks @montanaflynn! - Improved CLI welcome flow: added interactive model selection list using @inquirer/prompts, updated provider selection to display a scrollable list, and refactored model fetching logic into a reusable service.

Patch Changes

  • #5116 cf00ed8 Thanks @PeterDaveHello! - Make .env file optional in CLI - users can configure via KILO_* environment variables instead

0.22.2

Patch Changes

0.22.1

Patch Changes

  • #5098 e811ebe Thanks @marius-kilocode! - Show total session cost in status bar instead of per-request costs. Remove "API Request in progress" messages for cleaner UI.

  • #5100 a49868e Thanks @marius-kilocode! - Fix CLI context indicator showing incorrect values by skipping placeholder api_req_started messages

  • #5104 15a8d77 Thanks @marius-kilocode! - Fix CLI interactive prompts (arrow key navigation) not working on Windows

    The inquirer v13+ upgrade introduced stricter TTY raw mode requirements. This fix ensures raw mode is properly enabled before inquirer prompts, restoring arrow key navigation in list selections like provider choice during kilocode auth.

  • #5092 42cdb11 Thanks @Drilmo! - Fix Cmd+V image paste regression in VSCode terminal

    Restores the ability to paste images using Cmd+V in VSCode terminal, which was broken in #4916. VSCode sends empty bracketed paste sequences for Cmd+V (unlike regular terminals that send key events), so we need to check the clipboard for images when receiving an empty paste.

  • Updated dependencies [b2e2630]:

0.22.0

Minor Changes

  • #5046 fd2029c Thanks @marius-kilocode! - Add --on-task-completed <prompt> flag to send a custom prompt to the agent when the task completes. This flag requires --auto mode and allows users to define any follow-up action (e.g., creating a PR, running tests, generating documentation). The prompt is sent to the agent after the main task completes, enabling flexible post-task automation.

  • #5022 2fc244c Thanks @marius-kilocode! - Add syntax highlighting to code edit diffs in the CLI. Diffs now display with language-aware syntax coloring using Shiki, making code changes easier to read. Includes support for 60+ languages, automatic language detection from file extensions, and theme-aware highlighting that works with both light and dark themes. Also increased the diff display limit from 20 to 50 lines with smart context collapsing around changes.

Patch Changes

  • #4988 7253ac0 Thanks @marius-kilocode! - Fix Bedrock provider validation to support API key authentication without requiring access keys

  • #5064 2713d06 Thanks @marius-kilocode! - Add default autocomplete suggestions for select commands (/model select, /provider select, /tasks select, /session select)

  • #5066 8055f15 Thanks @marius-kilocode! - Fix CLI dispose, randomUUID, and debug UX issues

  • #5011 9c8bb7b Thanks @marius-kilocode! - Fix multiline paste regression where pasting text with newlines would submit after the first line

  • #5000 1c88a66 Thanks @marius-kilocode! - Fix empty files being created when project path contains non-Latin characters (e.g., Cyrillic, Chinese)

    The CLI's write_to_file command was creating empty files when the project directory path contained non-Latin characters. This was caused by improper handling of Uint8Array content in the FileSystemAPI.writeFile method. The fix ensures proper Buffer.from() conversion before writing to the filesystem.

  • #5058 c9f1f6a Thanks @marius-kilocode! - Fix autocomplete for /teams select and other multi-argument commands

  • #4985 69a541a Thanks @marius-kilocode! - Fix Windows cmd.exe display bug with escape sequences

    On Windows cmd.exe, the \x1b[3J (clear scrollback buffer) escape sequence is not properly supported and causes display artifacts like raw escape sequences appearing in the output (e.g., [\r\n\t...]).

0.21.0

Minor Changes

  • #4916 f02364c Thanks @marius-kilocode! - Abbreviate large pasted text in CLI input as [Pasted text #N +X lines] to prevent input field overflow when pasting logs or large code blocks

  • #4997 2a663be Thanks @marius-kilocode! - Add kilocode models --json command to expose available models as JSON for programmatic use

  • #4936 bfcd1d5 Thanks @idreesmuhammadqazi-create! - Add colorblind theme support to CLI

    • Colorblind-friendly theme with high contrast colors for accessibility

Patch Changes

0.20.0

Minor Changes

Patch Changes

  • #4941 b7052cc Thanks @Drilmo! - Add extension path resolution for F5 debug workflow

    • CLI resolves extension from src/dist/ when KILOCODE_DEV_CLI_PATH is set
    • Add watch:cli:setup and watch:cli:deps tasks for reliable CLI builds
  • #4967 99029a5 Thanks @marius-kilocode! - Improved file update display in CLI with compact format and colored diffs

  • #4949 f56d88a Thanks @eshurakov! - Add --attach flag for file attachments in CLI

  • #4959 2dce098 Thanks @marius-kilocode! - feat(cli): add word-by-word cursor navigation

    Adds support for word-by-word cursor navigation in the CLI text input:

    • Meta+b / Meta+Left to move to the beginning of the previous word
    • Meta+f / Meta+Right to move to the beginning of the next word

    This enhances the editing experience with Emacs-style keybindings and standard Meta+Arrow key navigation.

0.19.3

Patch Changes

  • #4827 2a66afb Thanks @marius-kilocode! - Fix slash commands being intercepted by followup suggestions during ask_followup_question prompts.

  • #4940 9809864 Thanks @Drilmo! - Add KILOCODE_DEV_CLI_PATH support for easier extension + CLI development workflow

0.19.2

Patch Changes

0.19.1

Patch Changes

  • #4810 2d8f5b4 Thanks @kiloconnect! - Add --append-system-prompt CLI option to append custom instructions to the system prompt

0.19.0

Minor Changes

  • #4730 695f68f Thanks @marius-kilocode! - Add autocomplete for /mode command in CLI, similar to model autocomplete. When typing /mode and pressing tab, users now see suggestions for all available modes including default and custom modes with their names, descriptions, and source labels.

Patch Changes

  • #4792 25b7efe Thanks @marius-kilocode! - Fix API request cost updates in the CLI when using static message rendering

  • #4735 ffabf05 Thanks @marius-kilocode! - Add CLI /condense command for manual context condensation

  • #4732 2f16482 Thanks @marius-kilocode! - Add instant ESC/Ctrl+X cancellation feedback with optimistic UI and reduced readline escape timeout

  • #4740 f291417 Thanks @kiloconnect! - Fix CLI formatting for unknown message types, JSON content, and codebase search results

    • Improved JSON parsing in CI mode with proper error handling
    • Enhanced unknown message type handling with JSON formatting
    • Fixed codebase search results parsing to match extension payload format
    • Fixed operator precedence bug in SayMessageRouter.tsx
  • #4797 ae3701b Thanks @marius-kilocode! - Fix slash command suggestions to select first entry by default when typing /

  • #4778 ea212ca Thanks @kiloconnect! - Fix CLI auto-update regression caused by inverted conditional logic with --nosplash flag. The version check now runs for all users by default, regardless of the nosplash flag state.

  • #4780 0cfe8b0 Thanks @Drilmo! - Add log file rotation to prevent unbounded disk usage

    The CLI log file at ~/.kilocode/cli/logs/cli.txt now automatically rotates at startup when it exceeds 10 MB, keeping only the most recent ~5 MB of logs. This prevents the log file from growing indefinitely and consuming excessive disk space for heavy CLI users or long-running sessions.

0.18.1

Patch Changes

  • #4728 8ecb081 Thanks @marius-kilocode! - Clear input field when Ctrl+C is pressed

  • #4244 f32adee Thanks @marius-kilocode! - Add image paste support to CLI

    • Allow Ctrl+V in the CLI to paste clipboard images, attach them as [Image #N], and send them with messages (macOS only, with status feedback and cleanup)
    • Add image mention parsing (@path and [Image #N]) so pasted or referenced images are included when sending messages
    • Split media code into a dedicated module with platform-specific clipboard handlers and image utilities

0.18.0

Minor Changes

Patch Changes

0.17.1

Patch Changes

  • #4186 6078a9c Thanks @lambertjosh! - Default read permissions now require approval for read operations outside the workspace

0.17.0

Minor Changes

Patch Changes

0.16.0

Minor Changes

0.15.0

Minor Changes

Patch Changes

0.14.0

Minor Changes

0.13.1

Patch Changes

0.13.0

Minor Changes

Patch Changes

  • #4211 489b366 Thanks @iscekic! - refactor session manager to better handle asynchronicity of file save events

0.12.1

Patch Changes

0.12.0

Minor Changes

0.11.0

Minor Changes

Patch Changes

0.10.2

Patch Changes

0.10.1

Patch Changes

0.10.0

Minor Changes

0.9.0

Minor Changes

0.8.0

Minor Changes

Patch Changes

0.7.0

Minor Changes

0.6.0

Minor Changes

0.5.1

Patch Changes

0.5.0

Minor Changes

Patch Changes

0.4.2

Patch Changes

0.4.1

Patch Changes

0.4.0

Minor Changes

Patch Changes

0.3.0

Minor Changes

  • #3623 ef6bcac Thanks @Sureshkumars! - # Checkpoint Restore

    Allows users to restore their conversation to a previous point in time.

    What do we have here?

    View your checkpoints

    /checkpoint list

    This shows all available restore points with: Hash for the checkpoint When it was created

    Restore to a checkpoint

    /checkpoint restore abc123...

    You'll see a confirmation showing: Which checkpoint you're going back to How many messages will be removed What will happen to your current work

    Choose Restore to go back, or Cancel to keep working.

    Example

    Let's say you asked Kilo CLI to refactor some code, but you don't like the result:

    Run /checkpoint list to see earlier save points

    Find the checkpoint from before the refactoring

    Run /checkpoint restore <hash> with that checkpoint's hash

    Confirm the restore Your conversation is now back to before the refactoring happened

    Why use checkpoints?

    1. Undo mistakes - Go back if something went wrong
    2. Try different approaches - Restore and try a different solution
    3. Keep working states - Return to a point where everything was working

Patch Changes

  • #3500 2e1a536 Thanks @iscekic! - improves windows support

  • #3641 94bc43a Thanks @KrtinShet! - Fix workspace path resolution when using relative paths with --workspace flag. Bash commands now execute in the correct directory.

0.2.0

Minor Changes

0.1.2

Patch Changes

0.1.1

Patch Changes

0.1.0

Minor Changes

  • #3452 127a255 Thanks @Sureshkumars! - This PR improves the display of MCP tool requests and responses in the CLI, addressing issues with truncated payloads, poor formatting, and lack of metadata.

    • MCP request arguments were difficult to read (no formatting, no preview mode)
    • MCP response payloads were displayed as raw text dumps, overwhelming the terminal
    • No JSON detection or pretty-printing
    • No metadata about content size or type
    • Missing error handling for malformed data
    • No indication when content is truncated/previewed

    Created new SayMcpServerResponseMessage component for MCP responses and refactored AskUseMcpServerMessage to share formatting logic. Both will make use of newly added utility functions for JSON detection, formatting, and metadata display. formatContentWithMetadata() - Detects JSON, formats it, handles preview logic (>20 lines → show 5) formatJson() - Pretty-prints JSON with configurable indentation approximateByteSize() - Estimates byte size using str.length * 3 formatByteSize(), buildMetadataString() - Display helpers

    before after
    before after

    Run the KiloCode CLI and let it automatically use any configured MCP server.

Patch Changes

0.0.16

Patch Changes

0.0.15

Patch Changes

0.0.14

Patch Changes

  • #3371 e0e01b2 Thanks @RSO! - Add a --json flag to render a stream of JSON objects while in --auto mode

0.0.13

Patch Changes

0.0.12

Patch Changes

  • #3352 c89bd23 Thanks @Sureshkumars! - MCP operations were being auto-rejected in CI mode (autonomous mode) even when autoApproval.mcp.enabled: true, breaking GitHub Actions workflows and other autonomous operations that rely on MCP servers.

    Root Cause: The extension sends MCP requests with the ask type set to the operation name (e.g., "use_mcp_server", "access_mcp_resource"), but the approval decision logic only handled these as tool names within the "tool" ask type. This caused MCP requests to fall through to the default case and get auto-rejected.

    The approval decision service uses a switch statement on askType to determine whether to auto-approve, auto-reject, or require manual approval:

    switch (askType) {
        case "tool": // handles tool names like "readFile", "writeFile"
        case "command": // handles command execution
        case "followup": // handles followup questions
        case "api_req_failed": // handles retry requests
        default: // ❌ MCP ask types fell here → auto-reject
    }
    

    Added explicit cases for MCP ask types to the switch statement:

    case "use_mcp_server":
    case "access_mcp_resource":
        if (config.mcp?.enabled) {
            return { action: "auto-approve" }
        }
        return isCIMode ? { action: "auto-reject", ... } : { action: "manual" }
    

    Also enhanced the tool handler to catch MCP operations sent as tool names (in case the extension changes format):

    if (tool === "use_mcp_tool" || tool === "use_mcp_server" || tool === "access_mcp_resource") {
        if (config.mcp?.enabled) {
            return { action: "auto-approve" }
        }
        // ... rejection logic
    }
    
    • Chose explicit ask type handling over mapping ask types to tool names (cleaner, respects extension's message format)
    • Kept both ask type and tool name handlers for defense-in-depth (minimal overhead, prevents future breakage)
    • Removed verbose logging to reduce noise while maintaining troubleshooting capability
    before after
    MCP operations auto-rejected in CI mode with error "Auto-rejected in CI mode" MCP operations auto-approved when autoApproval.mcp.enabled: true
    before-the-fix after-the-fix
    1. Just kilocode --auto "Review the PR #2 in X/X repo, use github mcp servers if needed"
    2. Configure MCP settings with GitHub MCP server
    3. Set autoApproval.mcp.enabled: true in config

      cat > ~/.kilocode/cli/config.json <<EOF
      {
      "version": "1.0.0",
      "autoApproval": {
      "mcp": {
        "enabled": true
      }
      }
      }
      EOF
      
      `kilocode --auto "Review the PR #2 in X/X repo, use github mcp servers if needed"`
      
      

0.0.11

Patch Changes

  • #3278 cba3d00 Thanks @catrielmuller! - Improved stability of the approval menu, preventing it from showing when you don't expect it

0.0.10

Patch Changes

0.0.9

Patch Changes

0.0.8

Patch Changes

0.0.7

Patch Changes

0.0.6

Patch Changes

0.0.5

Patch Changes

0.0.4

Patch Changes

  • #3066 263741a Thanks @RSO! - Made Logo responsive so that it better fits smaller screens

0.0.3

Patch Changes