Hey there! We've been busy making Autohand better. Here's what's new since v0.9.6:
New Stuff
- Apply Code settings profiles on login
- Synchronize managed mcp connectors
- Add negotiated browser automation v2
- Add durable meta-tools
- Compute session diff line stats
- Make status lines extensible
- NVIDIA provider, Ink 7 UI improvements, idle timeout, Shift+Enter CSI fix, chrome.spec flake fix
- Dynamic welcome suggestions and 30-min idle logout
- Add exit_plan_mode tool for cc-src-style plan workflow
- Session bootstrap, quality pipeline non-blocking, trimmed memory injection
- Add changeVertexAISettings to pre-populate existing values
- Add SITREP UI component, Vertex AI native Anthropic support, and background shell
- Add mode-change hook event
- Add SITREP UI component for status reports
- Add background mode for shell commands
- Add --settings CLI flag for configuration
- Display user messages with styled background in Ink UI
- Add interactive command support and unrestricted mode fixes
- Add request_directory_access action for dynamic workspace expansion
- Make registration mandatory with retry support
- Add hardware cursor positioning for IME support
- Add Cerebras AI provider with x-source headers and persistence tests
- Add --setup flag and /setup command with ACP, JSON-RPC, and i18n support
- Add Z.ai (Zhipu AI) provider support
- Add $skill autocomplete with mention preview panel
- Add skill mentions with $ prefix, RPC getSession endpoint, and fix test failures
- Adopt multi-stage image compression pipeline
- Add --chrome and --no-chrome CLI flags
- Enhance provider architecture with capability detection
- Add model capabilities registry
- Add /pr-review slash command
- Add notebook cell editing tool
- Add skill and sleep tools
- Add session enter and exit tools
- Add cron create and delete tools
- Add team task management tools
- Expose delegation and tool discovery guidance
- Artistic welcome screen with centered logo and Login/Exit prompt
- Diff display and file-modified hooks for all mutation tools
- Mandatory CLI login — require authentication before use
- Add glob tool powered by ripgrep for cross-platform file matching
- Upgrade run_command to always use shell execution
- Add /review slash command with bundled code-reviewer skill
- Implement code_review action with hook lifecycle and env vars
- Register code_review tool definition
- Add review hook events and code_review action type
- Add browser_execute_js tool
- Inject Chrome skill in RPC mode and route browser tool responses
- Chrome automation skill and browser tool bridge
- Add browser_* tools for Chrome extension integration
- Add browser network, console, tabs, and tab groups tools
- Interactive auto-mode toggle with /automode on/off
- Chrome extension integration with /chrome command and browser tools
- OpenAI ChatGPT browser-based authentication flow
- Add core types for OpenAI auth, Chrome integration, and auto-mode
- Upgrade install scripts to tarball bundles with checksum verification
- Add utilities for parallel execution and ripgrep resolution
- Add optional account registration step using device-flow auth
- Add blinking step progress indicator for /learn phases
- Render markdown bold/italic as ANSI in slash command output
- Grouped batch rendering for parallel tool output
- Add depth-scaled concurrency to prevent cascading parallelism
- Wire parallel tool config, system prompt, and progress rendering
- Add parallel tool execution engine with concurrency control
- Add project_tracker tool for GitHub issues and PRs
- Emit schedule_triggered event for ACP and RPC clients
- Add list_schedules and cancel_schedule LLM tools
- Inline ghost text for slash commands and file mentions
- Add --acp shorthand flag for Agent Client Protocol mode
Bug Fixes
We squashed 138 bugs:
- Narrow simple-chat fast path to anchored casual greetings
- Exclude system messages from tool relevance scan
- Derive client context from --client instead of hardcoding chrome
- Stabilize prompt and mcp cli regressions
- Speed up prompt-mode startup
- Harden deferred responses and startup branch detection
- Retry deferred final responses
- Keep chat history in terminal scrollback
- Stabilize composer transcript rendering
- Use deployed feedback endpoint
- Restore composer paste and multiline behavior
- Align fff-bun adapter with native result API
- Serialize mutating tool execution
- Keep model text out of composer status
- Route double ctrl-c through quit
- Refresh theme and isolate modals
- Use provider-specific auth errors
- Restore skill mention menu
- Stabilize modal and shell command input
- Make ink tui the default
- Preserve shared stdin listeners
- Route Ink paste through composer input
- Trust local token when server returns 401 on unexpired session
- Make /about and /help visible in TUI mode
- Handle # memory storage in TUI mode
- Make /clear and /new work properly in TUI mode
- Close slash dropdowns on single ESC press
- Clear composer input after slash commands complete
- Async onBeforeModal with setImmediate yield for React 19 cleanup
- Set modalActive flag during quality pipeline to suppress hook output
- Prevent queued requests from processing after exit signal
- Composer box now respects theme colors
- Seed provider/model before start() so welcome helpline shows them
- Unify /plan and SHIFT+TAB behavior in Ink TUI, add orange border
- Resolve composer blocking after LLM turns and slash commands
- Composer accepts input when idle (isWorking=false)
- Handle slash commands locally in Ink queue path
- Gate plan tool behind plan mode, strengthen instructions, prevent LLM looping
- Restore keyboard navigation in modals after Ink 7 upgrade
- Implement install_agent_skill execution handler
- Skip native host test on CI due to Node.js path issues
- Properly find Node.js on GitHub Actions CI
- Throw error with stderr content for CI debugging
- Add stderr capture for debugging CI test failure
- Use Node.js for both host script and CLI in test
- Skip native host test when Node.js is unavailable on CI
- Convert bun:test imports to vitest and fix chrome test timing
- Add missing VertexAISettings import and remove broken types file
- Use correct method to update context window in Vertex AI settings
- Re-initialize Vertex AI provider after settings change
- Add backgroundPid to ShellCommandResult interface
- Add missing ui.cancel i18n key for Vertex AI provider
- Pass provider parameter to settingsUpdated i18n
- Use correct i18n keys for Vertex AI settings change modal
- Add background parameter to runCommand call site
- Remove redundant path validation in list_tree
- Only show plan mode instructions when plan mode is enabled
- Robust context compaction, Ink composer flicker, and safety gates
- Include run_command and shell in default YOLO tools
- Include run_command and shell in default YOLO tools
- Remove broken IME cursor positioning that corrupted Ink rendering
- Permission mode precedence and improve UserMessage display
- Prevent chat log loss and resize artifacts
- Improve paste handling and cursor positioning in composer
- Eliminate typing flicker with synchronized output and stable input handler
- Swap user message colors for better visibility
- Prevent input box corruption after modal confirmation
- Prevent terminal flicker by consolidating useStdout calls
- Multi_file_edit now uses fuzzy match for whitespace differences
- Resolve TypeScript errors and ESLint warnings in proof script
- Remove screen clear on resize to prevent flickering
- Include commit message in modal and respect --yolo flag
- Process --yolo flag in RPC mode before runtime creation
- Improve Linux browser opening fallback for missing xdg-open
- Handle circular references in Ollama provider JSON.stringify
- Smooth terminal resize without flash or ghost artifacts
- Use async OpenRouter API for vision detection in RPC adapter
- Resolve quality pipeline hang by replacing exec with spawn and ensuring TUI cleanup
- Resolve all ESLint unused variable warnings
- Clean up TUI output formatting and return values
- Secure path resolution with symlink protection and additional dirs
- Harden action executor validation and error handling
- Improve context compaction and conversation management
- Prevent image payload overflow with size limits (Issue #81)
- Improve shebang validation and Linux browser fallback
- Filter Bun fs paths from native host args and fix shebang resolution
- Handle ripgrep Windows checksum file format
- Correct ripgrep target for Linux ARM64 bundling
- Use musl ripgrep binaries for Linux targets
- Use gnu instead of musl for ripgrep Linux targets
- Restore composer command flow and stable mention selection
- Skip sync restore in non-interactive login
- Route browser bridge output safely
- Improve setup and tool-call guidance
- /logout uses showModal and welcome screen uses FIGlet logo
- Fire file-modified hooks with changeType from markFilesModified
- Make git_diff path optional and add queueInstruction to slash context
- /review works in RPC/ACP modes and fires review hook events
- Slash command TUI rendering and /clear terminal clear
- /chrome command improvements
- Resolve test module cache pollution causing 15 test failures
- Modal input cursor support and bracketed paste handling
- Strip HTML tags from API error bodies before display
- Wrap all setRawMode calls in try/catch for bad file descriptor
- Handle node:sqlite unavailable on Bun runtime
- Filter out expected operational errors from auto-reporter
- ChatGPT OAuth streaming and debug line rendering
- Tag LLMGateway requests with x-source
- Pause theme and language modals in the TUI
- Avoid sync shell execution from interactive prompt
- Restore terminal composer rendering and diff previews
- Handle missing xdg-open during login
- Classify invalid models and respect rate-limit retry windows
- Validate workspaces and honor yolo file-tool defaults
- Update default OpenRouter model to nvidia/nemotron-3-super-120b-a12b:free
- Show "Paste your API key..." placeholder instead of password
- Improve 400 error message for malformed request body
- Use centralized error classification instead of raw Error
- Strip bracketed paste markers from model ID input
- Classify "is not a valid model ID" as model_not_found
- Guide LLM to recommend /repeat cancel for schedule cancellation
- Correct case-sensitive import for RepeatManager
- Show all catalog skills to LLM for better recommendations
- Resolve @ file mention not showing on first prompt
- Remove dead code accessing property on narrowed-to-never type
- Auto-run triggered jobs in non-interactive modes
- Prevent Shift+Enter CSI residual "13~" from leaking into text buffer
- Preserve credentials on network failure during startup validation
- Don't block startup prompt waiting for suggestion LLM call
- Auto-detect shell operators and enable shell mode for pipes
- Graceful shutdown on setRawMode/EIO failures instead of crash loop
- Return actionable message instead of throwing in non-git dirs
- Derive allowed tools from user permission config
- Await pending suggestion with deadline and add tool permission constraint
- Parse single bare tool call JSON from non-standard model responses
- Add subcommand metadata to /repeat for autocomplete hints
- Remove unused imports and dead code flagged by eslint
- Route immediate-command output through writeAbove when terminal regions active
Updates
- Tidy up a few things that needs my attention
- Wait for the Codex Ctrl+J newline to render before typing in the shortcut profile test
- Render assistant markdown in the terminal with a ui.renderMarkdown setting
- Load project lifecycle hooks and MCP servers behind a per-workspace trust prompt
- Merge pull request #585 from autohandai/working-tips
- Merge pull request #586 from autohandai/fix/autohandai-foreign-model
- Correct a model the Autohand cloud gateway cannot serve back to Fantail
- Document /upgrade and cover the working tip line in the built CLI Tuistory suite
- Add /upgrade to open the console checkout for the next Autohand plan
- Pin an upgrade hint under the status line when an Autohand quota ends the turn
- Rotate a working tip under the Ink status line
- Load working tips from tool_tips.json and expand skill and command templates
- Merge pull request #579: follow other agents' keyboard shortcuts and import their data during setup
- Merge pull request #578: enable the kitty keyboard protocol so Shift+Enter inserts a newline in iTerm2
- Document keyboard shortcut profiles and the setup import step
- Cover the Codex shortcut profile in the built CLI Tuistory suite
- Offer detected agents' shortcuts and a memories, sessions and skills import during setup
- Drive the Ink composer's shortcuts from the active keybinding profile
- Expose the keybinding profile as a validated ui setting
- Read Claude Code and Codex keymap files as profile overrides
- Add keybinding profiles for the interactive composer
- Ask the terminal to encode modified keys so Shift+Enter inserts a newline in iTerm2
- Align the Tuistory mode-cycle and caret scenarios with the new mode order and mouse default
- Refresh the hook event table snapshot for the permission-denied event
- Keep click-to-position on outside iTerm2 and cycle modes Ask, Plan, Auto, YOLO
- Embed the hardened discovery scanner and make the discovery command report what it is doing
- Leave terminal mouse reporting off unless click-to-position is enabled
- Reclaim session index locks left by dead processes and keep startup alive
- Stop the first message from waiting on MCP handshakes and the banner on the model catalog
- Support the originally documented hook names, config shape, and templates
- Rename the fff_grep tool to find_grep
- Let the approval prompt always allow a command prefix
- Stop desktop notifications from holding the CLI open at exit
- Removign flaking tests for prompt decisions and fixing callback on recall
- Wait for the cursor position query after Tuistory mouse clicks
- Fixing the team panel view
- Show a countdown on the status line while a provider waits to retry
- Honour retry-after for Autohand token-throughput throttles
- Keep session history sync off the network in offline runs
- Add private session handoff from CLI to Web
- Bound Git metadata lookups during CLI startup
- Discover engineering workflows from workspace skills and user activity
- Publish native user skills to the account library
- Restore release workflow documentation and synchronize terminal test input
- Closing the gap and releasing peer inner communication for 0.9.8
- Merge max_agents worker controls and lifecycle workflows into main
- Preserve account skill synchronization and ACP session handling
- Refresh CLI build toolchains and fix CI regressions
- Preserve image attachments when resuming transferred Web sessions
- Recover stale session index locks left by exited transfer importers
- Recover interrupted transfer checkouts without replacing local work
- Resume private Web transfers in the standalone CLI
- Refresh payment access and move suspended Cloud sessions to Free
- Show the goals close shortcut beside the footer controls
- Preserve Windows PATH entries and recover from interrupted hooks
- Start agent sessions in read-only plan mode from the CLI
- Keep the goals view concise while preserving complete objectives
- Resume saved sessions from the CLI with project filtering
- Preserve composer caret visibility across background redraws
- Add shared typed-message history to the composer
- Keep terminal history readable during goal activity
- Add live worker controls, lifecycle hooks, and project lessons
- Avoid remounting the composer for direct settings commands
- Make Aurora the default terminal theme
- Document hook imports and lifecycle settings in configuration reference
- Add the Tuatara developer theme
- Add repository discovery and authenticated workflow uploads
- Make lifecycle hook snapshots independent of terminal colors
- Preserve repository and request context across agent runs
- Wait for process readiness before testing cancellation
- Complete lifecycle hook wiring and import external command hooks
- Remove unused bindings from Coding Agent settings snapshots
- Release provider cancellation listeners and settled deadline timers
- Separate one-shot Review from interactive protocol execution
- Record safe command and skill lifecycle telemetry
- Ship Review reports through a locked-down local viewer
- Add lifecycle hook browsing and plain-English script authoring
- Complete native multi-agent lifecycle, inspection, and testing workflows
- Isolate authentication fixtures and respect configured test homes
- Give every review surface one evidence contract
- Teach the specialist roster to trust Autohand Review
- Download and apply Console connectors reliably
- Preserve bounded screenshot observations in native model requests
- Expose specialist capabilities and strengthen lifecycle handoffs
- Add configurable session thread budgets and reasoning warnings
- Register the goals queue command and align experiment aliases
- Support direct task list placement settings
- Keep goal result shaping inside GoalManager
- Recover stranded goals from the slash command
- Make task list placement configurable
- Render apply_patch results with themed diffs
- Complete session-aware goal and collaboration workflows
- Migrate goal state to per-session goals with peer awareness
- Make undo preserve unrelated workspace changes
- Expose Autohand Auto and preserve cloud image inputs
- Align specialist Tuistory with model assignment output
- Restore deterministic sync and terminal proof coverage
- Add task-aware team composition with ranked rosters and dependency-linked task graphs
- Refine terminal command controls and session resume
- Clear sticky task activity after successful turn completion
- Align ACP interaction modes with Autohand's four-mode model
- Make Autohand Local reachable and refresh its toolchain
- Reconcile task activity at successful turn completion
- Consolidate peer join notices in the Ink UI
- Render sticky plans with the shared task panel
- Keep active task plans visible in the Ink composer
- Surface live Autohand account quotas in the CLI
- Document provider compatibility fallbacks
- Type safe Windows home candidate selection
- Preserve durable Autohand device credentials across session expiry metadata
- Recover after repeated deferred final responses
- Preserve concise generic gateway errors
- Serialize text-only provider message payloads
- Retry transient Autohand AI upstream failures
- Migrate retired Autohand AI cloud model IDs
- Disable incompatible reasoning for GPT-5.6 tool calls
- Resolve Windows user state outside system directories
- Make team model assignments explicit and visible
- Avoid duplicate goal continuations
- Honor idle logout configuration
- Restore the Ink agent layout root
- Stop instructions after cancelled provider setup
- Recover from truncated agent responses
- Fail closed for unknown providers
- Fix Windows PATH parsing: use regex split to handle quoted entries with semicolons
- Fix task panel: cap rendered rows at 100 instead of unbounded
- Fix mode indicator visibility: render at top of layout so it never scrolls into scrollback
- Fix idle logout: restore enabled-by-default behavior
- Fix goal queuing: queued goals now activate continuation when created behind active goal
- Let the reflection guard stand down instead of stranding the turn
- Align Fantail context window expectations with the 256k catalog contract
- Expire stale composer clicks and keep wheel input flowing
- Give a non-streaming completion the time it actually needs
- Match the Autohand AI provider row by shape, not by label text
- Bb: automated commit
- Initial draft for /peers command to show sub agents in a better tui
- Anchor the interaction mode indicator in the stable bottom section
- Pin the memory event contract the console writes against
- Fixing path for windows user, instead of appending it was wiping all the previous path values
- Make the worktree cancellation test report why the child never started
- Improving the timeout for 4 hours instead of 60 min of idle time
- Render team task tools as a panel instead of raw JSON
- Queue goals set while one is active instead of refusing them
- Make the Autohand AI tier policy typecheck and its tests run
- Removing duplicated and extending idletime out for 4 hours
- Remove invalid options property from AutohandAIModelTierPolicy
- Downgrade max_tokens automatically when OpenRouter 402 names an affordable budget
- Add a native Anthropic provider and stop sending Claude malformed requests
- Show the account plan in the CLI and keep it current
- Render Autohand quota reset times in the configured time zone
- Make Windows installer architecture detection resilient
- Keep the active composer cursor across status repaints
- Keep CLI login compatible with the deployed auth schema
- Enable mouse composer cursor positioning by default
- Add grapheme-safe mouse cursor positioning to the Ink composer
- Surface hosted AI token throughput limits
- Make team execution observable and reliable
- Surface daily request quotas across Autohand CLI
- Preserve chat scrollback during composer refreshes
- Enable automatic specialists by default
- Trust the production Console upgrade URL
- Handle Autohand rate-limit windows by scope
- Add deterministic specialist orchestration
- Keep persistent goals scoped to their agent session
- Restore reliable Moa tool execution across agent loops
- Protect whats-new modal submission behavior with terminal coverage
- Merge the completed TypeScript 7 integration into main
- Preserve control-plane repair ancestry in type_v7
- Merge goal continuation into type_v7
- Merge type_v7 control-plane config repair into main
- Reconcile current remote main ancestry
- Merge TypeScript 7 dependency refresh into main
- Repair obsolete control-plane API configuration
- Refresh Bedrock and fff runtime dependencies
- Repair obsolete control-plane API configuration
- Integrate the current Dependabot fff-bun update
- Integrate the current Dependabot Bedrock SDK update
- Merge goal continuation into TypeScript 7 main
- Refresh Bedrock and fff runtime dependencies
- Adopt the TypeScript 7 compiler and integrate dependency updates
- Integrate the Dependabot production dependency group update
- Integrate the Dependabot node-gyp 13 update
- Integrate the Dependabot Bedrock SDK update
- Integrate the Dependabot Ink 7.1.1 update
- Integrate the Dependabot Commander 15 update
- Integrate the Dependabot ACP SDK update
- Integrate the Dependabot TypeScript 7 update
- Continue active goals across successful auto-mode turns
- Adopt the TypeScript 7 compiler and integrate dependency updates
- Embed the model catalog in standalone release binaries
- Use code-only device authorization in current clients
- Verify macOS release artifacts on native architectures
- Pass product identity through device authorization
- Preserve Ollama model persistence coverage after rebasing main
- Prevent invalid macOS release binaries from reaching installers
- Preserve bundled model metadata in catalog overrides
- Implement session-scoped read safety and unchanged-read deduplication
- Define the agent run runtime and direct communication contract
- Harden read_file with bounded streaming and recovery
- Publish Autohand AI in the model catalog
- Show live Autohand quota in status usage
- Show Autohand plan allowances in usage and status commands
- Recommend paid plans when Autohand AI quota is exhausted
- Repair Fantail context accounting and catalog contracts
- Commit in-progress working-tree changes across auth, status line, UI, and tooling
- Add built-in brainstorm skill with plan-mode and intent-based auto-injection
- Update provider persistence Tuistory for Autohand AI
- Clamp Autohand AI max_tokens per model and fix negative context percentage
- Sort /model provider list and route configured custom providers to settings flow
- Add model catalog entry from issue #478
- Fixing nodellamacpp incorrect dependency
- Small update on ignore
- Stop retrying provider rate limits and surface them through hooks
- Consolidate the Claude Code gap analysis into a single reviewed document
- Classify OpenRouter provider_unavailable failures as retryable
- Cap provider-supplied Retry-After delays used during session recovery
- Harden experimental prompt cache affinity controls
- Keep the CLI alive while raw-stdin panels are open
- Add hardened Blueprint answer and setup-only RPC contracts
- Keep the Ink composer cursor across footer repaints
- Sync per-session line change totals to mobile clients
- Restore composer cursor placement and stabilize release checks
- Improve mobile handoff scanning and composer identity
- Add mobile composer controls and reliable relay delivery
- Stabilize mobile handoff QR and project status line
- Fixing the mobile relay
- Preflight Homebrew and npm artifacts before release publication
- Normalize stable release versions and repair Homebrew guidance
- Add resumable per-step RPC control
- Align themed composer borders with the input surface
- Fixign flasky tuistory tests
- Align Autohand AI context-window expectations
- Fixing release flow
- Correct moa context window to 1M
- Fixing broken ci for tuistory scenario
- Keep shell completions and executable aliases synchronized
- Preserve model configuration across development restarts
- Document the concurrent session awareness design and plan
- Gate Autohand inference behind rollout flag
- Harden Autohand AI local setup: memory guard, Ink progress, pinned MLX runtime
- Add Autohand AI provider with cloud and Apple Silicon local plans
- Coordinate concurrent sessions in shared workspaces
- Keep status and detached process reporting responsive
- Learn project capability usage from canonical memory
- Complete canonical hierarchical memory
- Better sync serviceS
- Renaming /chrome to /browser command to work with any chromium browser, made soft modifications for memory component, now using Victortalin idea behind zoom in and out of memory across spatial time, consider like mirroring previous lessons, also reflecting on error and stop signals via hooks, add better resync
- Add a recoverable append-only memory ledger
- Make quality modal cleanup coverage structural
- Make parallel read batch coverage order independent
- Learn from failed and canceled agent turns
- Take git off the render path so the composer stops stuttering
- Make announcement theme coverage color-mode independent
- Show recent releases with the changelog command
- Stop shell commands from hanging forever under Bun
- Harden the CLI announcements pipeline against hangs and spoofed text
- Document the CLI announcements design
- Deliver resilient CLI announcements and dismissal controls
- Support structured JSON output for one-shot commands
- Let /ps and /stop run immediately instead of queueing behind an active turn
- Close out final-review findings for the /ps and /stop background-process controls
- Add an end-to-end Tuistory test for /ps and /stop
- Add /stop to kill a background shell process
- Add /ps to list background shell processes
- Wire the background-process registry through the agent and clean it up on exit
- Track every background shell process in the new registry
- Fix BackgroundProcessRegistry.register() directory parameter to be optional
- Add a session-scoped registry for background shell processes
- Add regression test for killProcessGroup fallback path
- Fix Windows compatibility in killProcessGroup by guarding process-group kills
- Add a reusable process-group kill helper for background commands
- Surface unset R2 secrets clearly in the model catalog publish script
- Fixing mobile relay and combine tui for group activities in sub agents
- Rank and render awesome-sub-agents catalog results for find_sub_agents
- Keep built-in sub-agents working on xAI OAuth Responses turns
- Add Grok 4.5 catalog defaults and SuperGrok OAuth login for xAI
- Let Autohand Mobile set session permission modes
- Keep background command output observable in the TUI
- Preserve chat history across slash menu modals
- Document cross-provider prompt caching architecture and delivery plan
- Cycle interactive modes with Shift+Tab
- Fall back when native PTY startup is unavailable
- Merge extension builder and Pi compatibility into main
- Complete mobile remote model controls
- Complete Code CLI hook event parity
- Mobile readiness completed stage 1
- Keep node-pty shell execution reliable after clean installs
- Record advisor branch integration evidence
- Redact sensitive data from RPC diagnostics
- Document cloud sync trust boundaries across locales
- Make explicit permission denials terminal across approval modes
- Track a reproducible audited Bun dependency graph
- Preserve validation outcomes in parallel delegation
- Fix long Open Research receipt paths
- Accept valid encoded and animated research assets
- Require explicit publication consent regardless of yes mode
- Make Open Research publication requests cancellable
- Preserve committed publication outcomes after display errors
- Recover expired Open Research publication attempts
- Adding more handlers for the mobile control, mode Rpc adaptors and new README.md intro gif, improved and renamed chrome commands to /browser to avoid litigation from Google
- Expand Extension API v1 with trusted runtime capabilities
- Make browser the canonical CLI integration name
- Rename the Chrome slash command to browser
- Target extension-builder installs at Autohand
- Refresh model catalogs from reviewed R2 releases
- Fix long Open Research receipt paths
- Derive development CLI version from repository tags
- Design the research publication lifecycle
- Document and record extension-builder authoring workflow
- Type the agent tool-output host boundary
- Type the agent project operations host boundary
- Type the post-turn action host boundary
- Extract CLI option normalization and mode routing
- Pin CLI option and mode routing contracts
- Make the development script portable across user homes
- Repair README links to the canonical repository
- Accept valid encoded and animated research assets
- Require explicit publication consent regardless of yes mode
- Make Open Research publication requests cancellable
- Preserve committed publication outcomes after display errors
- Recover expired Open Research publication attempts
- Advertise native ACP terminal authentication
- Document native ACP setup across development environments
- Add agentic extension authoring and Pi skill compatibility
- Document configurable idle logout across supported locales
- Make device authentication terminal fixtures portable
- Make authenticated idle logout duration configurable
- Isolate interactive terminal tests from CI rendering mode
- Run terminal gates on a proven hosted PTY platform
- Record extension builder publication evidence
- Add agentic extension authoring and Pi skill compatibility
- Offer consent-gated Open Research publication after deep research
- Make NVIDIA long-session recovery truthful
- Add a secure declarative Code extensions platform
- Preserve and replay autoresearch experiment decisions
- Isolate native host tests from browser profiles
- Complete orderly runtime shutdown
- Expand mobile handoff into remote steering
- Add project token activity views to usage
- Persist per-turn usage in session history
- Install catalog sub-agents for immediate delegation
- Render workspace changes for every LLM tool batch
- Track deep research progress and completion truthfully
- Make browser-profile web tools resilient
- Register autoresearch experiment loops across CLI surfaces
- Keep RPC command discovery aligned with the CLI registry
- Bound built-in sound hook playback duration
- Make foreground shell cancellation deterministic in CI
- Keep importer unit tests out of real session storage
- Make foreground command cancellation testing event-driven
- Ignore top-level planning artifacts
- Ignore local autoresearch result artifacts
- Finalize reliability proof evidence
- Smoke-test compiled Windows binaries in CI
- Close remaining authorization and automode outcome gaps
- Record completion of the CLI reliability program
- Gate releases on built terminal behavior and refreshed dependencies
- Enforce truthful and cancellable agent execution
- Validate cloud sync before local state changes
- Make session and telemetry persistence atomic and shutdown-safe
- Contain community skill files within trusted roots
- Keep file search inside configured roots
- Add the OpenAI GPT-5.6 model family
- Make autohand the canonical command across installers
- Repair public Homebrew installation and release publishing
- Resume the TUI immediately after startup login
- Add model catalog entry from issue #414
- Restore model request issue form discovery
- Preserve model catalog formatting in generated changes
- Authorize model requests by repository permission
- Use a stable qualification output path
- Qualify model catalog issues before write access
- Automate model catalog pull requests from issues
- Define reliability hardening execution plans
- Restore catalog-backed provider model defaults
- Move provider model lists into a JSON catalog
- Reconcile dependencies before development startup
- Generate release notes from the previous release tag
- Filter operational provider failures from auto-reporting
- Keep provider outage recovery from reporting completion
- Add active Autohand agents dashboard
- Adapt image compression for updated Sharp types
- New command /deep-research to allow build new features easily
- Guard composer against stale Ink runtime exports
- Route imported Codex skill installs to Autohand
- Use CommonJS native host fixture in Chrome tests
- Require meaningful reflection before follow-up tools
- Refresh NVIDIA hosted model list
- Classify ChatGPT refresh failures as auth errors
- Classify request-size provider failures as context overflow
- Harden provider stream terminal handling
- Stabilize skill install progress and session handoff
- Preflight skill installs before writing files
- Allow direct skill installs from Skilled catalog
- Dealing with corrupted history sessions
- Add goal writer queue sequencing
- Add guided goal authoring command
- Complete hook event coverage
- Derive alpha releases from stable tags
- Gate turn memory diagnostics behind debug mode
- Gate handoff session behind experiment
- Add experimental session fork and clone commands
- Linking reference config in their user own language
- Handle noisy provider config and process reports
- Fix custom provider setup verification and display
- Add custom OpenAI-compatible provider configuration
- Verify agent-turn composer stability without loopback
- Verify composer stability during agent turns
- Keep the Ink composer mounted between turns
- Tighten reflection parsing and runtime input contracts
- Add GLM-5.2 and GLM-5.1 to Z.ai provider
- Keep debug notices out of the Ink transcript
- Expand reflection parser scenario coverage
- Handle reflection as response metadata
- Defer automatic feedback while Ink has queued prompts
- Use Ink cursor placement for the composer
- Reflect successful turns into durable memory
- Stabilize Ink composer footer repainting
- Restore interactive startup login menu
- Start authentication without the fragile startup menu
- Update README community and localized docs links
- Adding documentation for the new /statusline options
- Adding /exit as well as /quit
- Improving some tests and new features
- Disable process auto-reporting in test subprocesses
- Classify LLM Gateway 400 errors by body
- Recreate session directories before writes
- Handle startup config parse failures explicitly
- Handle invalid config set usage explicitly
- Accept provider keys in config set
- Ignore terminal EPIPE shutdown errors
- Prevent sync from corrupting rotated auth tokens
- Rename feature switch command to experiments
- Fix startup composer cursor placement
- Place status line fields in the composer help line
- Add configurable status line controls
- Make queued prompts grouped and editable
- Render the composer as an open input surface
- Keep composer cursor state aligned during mid-line editing
- Document and enforce explicit bare runtime boundaries
- Add explicit bare startup mode
- Adding tests coverage
- Fixing regression on cursor use for ink rendering
- New feature Introducing --squad option
- Add idle logout opt-out for long-running agents
- Align Ink renderer usage with Ink 7 exports
- Expand agent import coverage for OpenCode, Kimi, and Gemini MCP
- Expand skill discovery for shared agent locations
- Restore skill mention discovery in the composer
- Handle Ollama responses without message wrappers
- Improving and getting ready for Paid plans
- Adding support for account sync
- Guard session recovery notes before conversation bootstrap
- Use Ink cursor without rendered composer cursor fallback
- Document activity indicator customization
- Improve real terminal composer typing and paste handling
- Make terminal logo rendering responsive
- Refine Ink diff transcript styling
- Improve Ink composer input responsiveness
- Stop Ctrl+C quit requests from entering the prompt queue
- Handle cancelled browser login polling
- Force themed diff colors in Ink tool transcripts
- Make completion reports configurable
- Restore themed colors for chat diff text
- Show model tool activity in Ink transcripts by default
- Render fenced diff blocks in chat history
- Preserve Ink transcript order across immediate prompt echo
- Gate persistent goals behind slash_goal
- Add persistent goal management across CLI modes
- Fixing a few bugs in the UI rendering and settings
- Add configuration toggle for activity verbs
- Guard tool inventory responses from deferred-action classification
- Preserve activity verbs while isolating tool output
- Keep volatile activity text out of active status lines
- Cover default completion rendering invariant
- Improve account-aware command output and legacy tool parsing
- Show rejected responses after repair retry
- Authenticate settings sync file transfers
- Show completed tool-list answers
- Harden mobile steering and follow-up answer display
- Prevent dangling Responses tool calls
- Add configurable tool output visibility
- Restore themed diff colors in tool output
- Restore git diff availability for recent-change prompts
- Gate AWS Bedrock provider behind feature flag
- Add AWS Bedrock provider support
- Adding mobile tier for MacOS users
- Report telemetry session duration from the app session clock
- Track repository agent instructions
- Adding generate locales
- Adding details and invite the dev community for our SDK
- New agents
- Hardness the tests for local detector
- New Bahasa Indonesia support
- Suppress duplicate background notifications
- Fixing a few tests
- Add gated usage dashboard and feature switches
- Gate native tool calls by provider capability
- Prefer native OpenAI tool prompting
- Keep background sync warnings out of active status
- Preserve streamed OpenAI tool calls
- Unwrap ChatGPT responses stream completion events
- Prioritize stderr in collapsed live command output
- Centralize assistant turn completion outcomes
- Preserve debug logging in dev launches
- Repair empty no-tool assistant turns before saving
- Route response completion hooks through the React loop
- Expose response completion classifier hooks
- Document CLI backed Code Agent SDK packages
- Tighten response completion contract cleanup
- Harden response completion classification
- Prevent deferred inspection responses from ending turns
- Add vertical padding to user message blocks
- Restore themed user message blocks
- Serialize OpenAI multimodal messages correctly
- Tighten active composer spacing
- Improve configured provider model menu
- Correct session token accounting
- Serialize ChatGPT assistant history as output text
- Align Ink UI with installed Ink exports
- Preserve streamed OpenAI ChatGPT responses
- Stabilize pipe integration script runner
- Keep shell composer input free-form
- Allow arbitrary shell composer commands
- Stabilize release Vitest execution
- Keep Tuistory tests on dedicated Vitest config
- Fixing failing CI tests
- Resolve model context windows dynamically
- Update context windows for current provider models
- Handle missing ripgrep in FFF file fallback
- Recognize Tencent Hy3 context window
- Fixing failing tests
- Stabilize native host chunked input test
- Render live shell output in a compact body
- Merge legacy multi file edit tool removal into main
- Show all todo task states in progress output
- Allow slash autocomplete during queued input
- Remove legacy multi file edit from default tool surface
- Separate prompt suggestions from autocomplete
- Repair FFF search tool exposure and fallback behavior
- Restore visible cursor in Ink composer
- Prevent progress updates from ending agent turns
- Keep planning responses from completing turns
- Improve slash command autocomplete ranking
- Prevent assistant responses from leaking into composer suggestions
- Ensure piped stdin observes EOF
- Match slash suggestion ordering to help output
- Show bang command suggestions inline
- Prevent structured thoughts from leaking into composer suggestions
- Resolve pipe handoff before agent UI composition
- Show shell suggestions in Ink composer
- Wire Ink composer suggestions into prompt UI
- Stabilize Vitest worker usage in CI
- Fixing theme regression bug
- Stabilize Bun dependency installs in CI
- Document the failing test repair workflow
- Stabilize startup git initialization under test load
- Fix theme colors across Ink UI
- Untrack AGENTS and CLAUDE from git
- Document current src/core/agent architecture split
- Collapse huge single-line composer pastes
- Removing unrequired flickering controls for ink7
- Stop tracking workspace and extract files now in .gitignore
- Fixing legacy code
- Fixing a few errand on the rendering
- Cosmetic issues on the rendering logs
- Adding new providers like Deepseek and xAI
- Improving cover for the additional tests
- Moving docs to a better place and changelog
- Adding Deepseek to the list of providers
- Adding the new missing cli params and interactive modes
- What am I doing in this change? Ansi is stripping most especial char for menu options
- Update process title to 'Autohand Code'
- Upgrading our tests for the new mocking services after upgrading to ink 7
- Breaking changes for dependencies to new versions
- Upgrading the new tests due to new dependencies
- Fix VertexAI auth token input to come clean when changing value
- Major improvements to our AgentUI.ts for @ mention files, 5x faster, les than 16ms now; typing now like @src + Tab now auto completes the first classified file, Fixes Applied src/ui/ink/AgentUI.tsx • Synchronous mention detection in handleInput: when the buffer changes, mentions are detected immediately and refs are updated so Tab works without waiting for e 16ms React state flush • Stale-state guard in the mention useEffect: skips processing when input/cursorOffset lag behind the buffer • Buffer-accurate cursor offset in Tab handling: uses getTextBufferCursorOffset(buffer) instead of the stale cursorOffsetRef.current src/ui/mentionPreview.ts • Synchronous suggestion refresh for Tab and arrow keys: updateSuggestions() is called immediately inside handleKeypress before handling navigation/acceptance, e uring fresh data src/ui/useBufferedInput.ts • Added clear documentation explaining why stdin cannot be safely connected alongside Ink • Removed the broken 'sequence' listener in favor of correct 'data'/'paste' listeners on StdinBuffer (ready for future safe stdin interception)
- Debug: log findNodePath result to understand CI failure
- Improving the docs
- Fixing a flaky test
- Adding a limit for rendering large blocks of text when pasted by the user
- Update run_command tool description to prefer shell tool
- Adding better instructions for shell tool
- Making less flake the ui and new shell tool
- Bug fix, apply patch was not considering original value for the string to replace causing runtime error and default for run_command from the LLM
- Adding more i18n details for providers Vertex AI and TUI
- Fixing a formatting issue
- Adding missing i18n for all xAi and Cerebras AI providers
- Bug fix: Adding support for gcloud auth refresh
- Adding translations missing for xAi and Vertex AI
- Bug fixing: permission were not considering in prefix for folders it was only considering files
- Fixing a regression for showing file in AgentUI
- Enforcing auth now for our Autohand APIs
- Improving the git load config
- Upgrading the CI for Bun 2.0 action instead of v1
- Moving AScii to utils
- Loading config from new configuration settings to stop overflow or reload when change settings in VSCode or Zed
- Improving the commands to add --fedback flag
- Improving the Feedback scenario
- Removing ASCII dependence
- Refactoring ascii to be in a util class rather than just in agents.ts
- Adding vitest resutls
- Bug fix: if user provide a dir outside of the workspace, we should ask to add to the permissions as we do manually for local.settings.json , add more details for feedback and simplify a bit
- Adding more stability to the chrome integration and updated docs for including AUTOHAND_CODE environment variable
- Keep the other local docs up to date with _en locale
- Starting an AUTOHAND_CODE env variable to detect when running autohand
- Adding Z.Ai as new provider, fix the broken tests and adding more details to the error message, BUG fix: Ollama cloud models are now treated as feature for the exception rather than the errors
- Trying a new menu option for interactive way
- New feature for only sending partial description of tools to the Provider
- Making permissions a little bit more agressive and permanent, to make sure the user is in control of the flow, the existing feature for controling the permissions via non interactive are much better now for allowing overrides of configs
- Adding some TUI UX costmetic filters for /skills and --auto-skills
- Adding agents permissions changeS
- Transient changes in the permissions checks
- Fixing shortcut for composer
- Making it faster for prioritising new tools
- Update release.yml
- Adption login approach for the next launch
- Merge branch 'worktree-gh_issues'
- New Feature, users coming from OpenAI can now oAuth using their ChatGPT account or API key, we had 120 requests
- Adding ripgrep as part of the bundle
- Bundling a few agents to be part of the release
- Fix tui modal lifecycle and shell composer styling
- Adding test units for the new openai provider settings
- Improving the experience with onboarding from OpenAI provider choice
- Adding more details for the share feature
- Improving the syntax for tool_call on open source OpenAI models
- Making editor more resistant for suggestions trailing effect and permissions issues
- Merge pull request #14 from autohandai/igorcosta/add-repeat-command
Under the Hood
Some housekeeping and improvements:
- Bump @aws-sdk/client-bedrock from 3.1108.0 to 3.1106.0
- Bump @ff-labs/fff-bun
- Bump @types/node from 25.9.5 to 26.1.1
- Update @aws-sdk/credential-providers requirement
- Update unist-util-visit requirement from ^5.0.0 to ^5.1.0
- Bump the production-dependencies group across 1 directory with 2 updates
- Rename the chrome client context to browser
- Assert anchored simple-chat behaviour
- Cover chat history retention across /statusline save
- Bump @aws-sdk/client-bedrock from 3.1101.0 to 3.1097.0
- Update ink requirement from ^7.1.0 to ^7.1.1
- Bump commander from 14.0.3 to 15.0.0
- Bump node-gyp from 12.4.0 to 13.0.1
- Bump @agentclientprotocol/sdk from 0.19.1 to 1.3.0
- Bump typescript from 6.0.3 to 7.0.2
- Bump the production-dependencies group across 1 directory with 2 updates
- Bump tuistory
- Harden dependency and release automation
- Expand slash command tuistory coverage
- Harden local scripts and tool filtering
- Type react loop host
- Stabilize proof suite timeouts
- Introduce typed instruction runner
- Remove obsolete ink compatibility patches
- Extract project operations
- Extract tool output runtime
- Collapse response parsing wrappers
- Extract context runtime
- Extract session accounting
- Extract command runtime
- Extract ui runtime
- Extract interactive lifecycle
- Extract orchestration modules
- Link extending guide from readme
- Add session diff line extension example
- Document Ink line extensions
- Refresh Autohand Code CLI branding
- Cover InkUIManager public contract
- Route Ink startup through UIManager
- Extract tool loop signature helpers
- Migrate search tools from ripgrep to FFF
- Extract auto-compaction into src/core/context/ module
- Fix flaky native host chunked-input test
- Add shell tool analysis documentation
- Consolidate search tools into unified 'find' tool
- Stop tracking .vitest/vitest/results.json
- Reset device auth mocks between tests
- Split FixedBottom into StatusSection and InputSection
- Add Go SDK documentation
- Update feedback tests to match new rating-based API schema
- Document $skill mentions, shell commands (!), and expand tool system categories
- Expand test coverage for command, agent, glob, error reporting, and UI
- Update existing tests to match new behavior
- Add regression tests for action executor and skills formatting
- Configure vitest for stable single-thread execution
- Add cc-src gap analysis matrix
- Refresh CLI flags and commands
- Add Autohand-in-Chrome documentation
- Update chrome command and browser tests
- Minor updates to support new features
- Add EACCES directory permission test
- Make proof deterministic offline and without auto-installs
- Add regression tests for dedup refactoring
- Extract initializeManagers, withModalPause helpers
- Un-export shellCommand implementation details
- Remove dead code from promptCallback
- Clean up inputPrompt exports and dead code
- Deduplicate persistentInput utilities
- Use shared shuffleInPlace in activityIndicator and tips
- Use stripAnsiCodes in box.ts and terminalRegions.ts
- Extract themedFg helper to theme/Theme.ts
- Extract ANSI, bracketed-paste and shuffle utilities to displayUtils
- Add parallel execution tests and performance benchmarks
- Add project_tracker implementation plan
- Fix spec issues from review
- Add project_tracker tool design spec
Full comparison: v0.9.6...v0.9.7
Get it
Quickest way:
curl -fsSL https://autohand.ai/install.sh | shVia npm or bun:
npm install -g autohand-cliVia Homebrew:
brew install autohandai/code/autohand-codeOr grab a binary below for your platform.
| Platform | Architecture | Binary |
|---|---|---|
| macOS | Apple Silicon | autohand-macos-arm64 |
| macOS | Intel | autohand-macos-x64 |
| Linux | x64 | autohand-linux-x64 |
| Linux | ARM64 | autohand-linux-arm64 |
| Windows | x64 | autohand-windows-x64.exe |