All notable changes to the @roo-code/cli package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
--api-key flag and ROO_API_KEY environment variable for the roo provider instead of requiring cloud auth token--exit-on-error flag to exit immediately on API request errors instead of retrying, useful for CI/CD pipelinestsx for running directly from source without building firstversion.ts, extension.ts, and extension-host.ts to work from both source and bundled locations~/.roo/cli-debug.log) is now disabled by default unless --debug flag is passed--output-format flag to control CLI output format for scripting and automation:
text (default) - Human-readable interactive outputjson - Single JSON object with all events and final result at task completionstream-json - NDJSON (newline-delimited JSON) for real-time streaming of eventsjson-events.ts for the complete event schemaJsonEventEmitter for structured output generation-w, --workspace <path> option to specify a custom workspace directory instead of using the current working directory--oneshot flag to exit upon task completion, useful for scripting and automation (can also be saved in settings via CliSettings.oneshot)--provider flag or saved in settingsMajor Refactor: Extracted ~1400 lines from App.tsx into reusable hooks and utilities for better maintainability:
useExtensionHost - Extension host connection and lifecycle managementuseMessageHandlers - Message processing and state updatesuseTaskSubmit - Task submission logicuseGlobalInput - Global keyboard shortcut handlinguseFollowupCountdown - Auto-approval countdown logicuseFocusManagement - Input focus state managementusePickerHandlers - Picker component event handlinguiStateStore - UI-specific state (showExitHint, countdown, etc.)extractToolData, formatToolOutput, etc.)HorizontalLine componentPerformance Optimizations:
useExtensionHost hook return values with useCallback/useMemoSimplified ModeTool layout to horizontal with mode suffix
Simplified logging by removing verbose debug output and adding first/last partial message logging pattern
Updated Nerd Font icon codepoints in Icon component
# shortcut in help trigger for quick access to task history autocompletealwaysAllowWriteProtected for non-interactive moderenderLogger.ts utility file[Tool Request] formatTool Renderer Components: Specialized renderers for displaying tool outputs with optimized formatting for each tool type. Each renderer provides a focused view of its data structure.
FileReadTool - Display file read operations with syntax highlightingFileWriteTool - Show file write/edit operations with diff viewsSearchTool - Render search results with contextCommandTool - Display command execution with outputBrowserTool - Show browser automation actionsModeTool - Display mode switching operationsCompletionTool - Show task completion statusGenericTool - Fallback renderer for other toolsHistory Trigger: New # trigger for task history autocomplete with fuzzy search support. Type # at the start of a line to browse and resume previous tasks.
HistoryTrigger.tsx - Trigger implementation with fuzzy filteringRelease Confirmation Prompt: The release script now prompts for confirmation before creating a release.
__tests__ directories for better project structureutils/ directoryToast Notification System: New toast notifications for user feedback with support for info, success, warning, and error types. Toasts auto-dismiss after a configurable duration and are managed via Zustand store.
ToastDisplay component for rendering toast messagesuseToast hook for managing toast state and displaying notificationsGlobal Input Sequences Registry: Centralized system for handling keyboard shortcuts at the application level, preventing conflicts with input components.
globalInputSequences.ts utility moduleCtrl+C (exit) and Ctrl+M (mode cycling)Local Tarball Installation: The install script now supports installing from a local tarball via the ROO_LOCAL_TARBALL environment variable, useful for offline installation or testing pre-release builds.
The cli is alive!