Skip to content

Changelog


0.19.1 - 2026-11-05

โ›ฐ๏ธ Features

  • feat(viewer): use compact tool labels in the output list - (2f026ca) - Belingud
  • feat(viewer): show tool-call captions in the output list

The left pane only showed '4. execute_shell_command (314c)', which made repeated shell/MCP calls indistinguishable. Each entry now renders two lines: the tool name + result size, and a one-line caption derived from the decoded arguments (command, file_path/path, url, query, pattern, title; whitespace collapsed and clipped). Entries fall back to the compact argument summary when no identifying key exists, the list keeps the selection in a 10-entry window with 'โ€ฆ N more above/below' markers, and the header bar now shows the selected entry ([2/4] name ยท kind ยท chars ยท truncated) next to the turn label.

Output-history entries carry the caption (computed in execute_tool_call from the repaired argument dict), so it never re-parses a truncated argument string. - (573f6d8) - Belingud - feat(cli): run interactive generation on a worker thread

Interactive TTY turns now consume the completion generator through ThreadedStream: the provider/tool pipeline runs on a worker thread while the REPL thread renders, so Ctrl+O can open the tool-output viewer mid-answer and generation continues; closing the viewer redraws the accumulated content.

Worker console output is routed through WorkerConsole into the bridge so the main thread replays it in order; client/provider consoles are swapped for the turn and restored afterwards. ThreadedStream now starts lazily on the first next(), letting the CLI install console routing and register the active bridge before the worker produces anything. Headless/machine paths are unchanged. - (b9337bd) - Belingud - feat(stream): route worker-thread console output through the bridge

WorkerConsole dispatches print() by thread: main-thread writes pass through to the real console, generation-worker writes are queued on the active ThreadedStream (with a stderr flag) and replayed in order by the UI thread, and late writes from an aborted worker are dropped. install_worker_console_routing() swaps the module consoles captured by the generation path and returns a restorable handle. Bridge console events now carry the stderr target. Still not wired into the CLI (task T2). - (c0874a8) - Belingud - feat(stream): add threaded stream bridge for background generation

ThreadedStream runs a completion generator on a worker thread and exposes the generator protocol (next/send) to the UI thread over a FIFO event queue: chunks, worker console prints, done/error. ConfirmToolCall waits for the decision sent back by the UI thread; abort() cancels at the next chunk boundary and drops late console events. Isolated module with unit tests (not wired into the CLI yet, tracked as task T1). - (b6709cf) - Belingud - feat(cli): toggle the tool-output viewer during generation

While a turn streams there is no prompt reading the keyboard, so install a cbreak GenerationKeyWatcher (ISIG stays on: Ctrl+C still cancels) that captures Ctrl+O. Printer.display_stream() gains pause_requested/on_pause hooks: it stops the live region, opens the viewer, then redraws the accumulated content and continues. The provider stream is paused while the viewer is open for now; typed-ahead text is kept and pre-filled into the next prompt.

Headless/machine runs never start the watcher. - (7fcea5f) - Belingud - feat(tools): add full-screen Ctrl+O tool-output viewer

Replace the inline Ctrl+O print (a0db5eb) with an alternate-screen two-pane viewer: the left pane lists every tool output of the current turn (function and MCP), the right pane shows the selected result. Keys: up/down select, Tab switches pane, PgUp/PgDn/Home/End scroll, f toggles the spilled full file (1 MB cap), q/Esc/Ctrl+O closes and restores the REPL.

Tool results are recorded in a turn-tagged history with spill metadata (begin_turn from CLI._process_user_input); truncate_tool_output_meta adds the metadata without changing the model-facing text. /show-output opens the same viewer; non-TTY/headless and viewer failures fall back to the inline last-output panel.

Docs, README, py specs and tests updated (turn grouping, fallbacks, viewer app driven with pipe input). - (d77e190) - Belingud - feat(tools): render tool results as a compact head-only preview

Tool results and call arguments could flood the terminal even though the model-facing result is already capped. Add a display-only layer that is independent from TOOL_OUTPUT_MAX_CHARS: the panel shows only the first TOOL_DISPLAY_MAX_LINES (15) lines / TOOL_DISPLAY_MAX_CHARS (4000) chars and a 'โ€ฆ +N lines ยท Ctrl+O to expand' marker, while the model still receives the full capped result.

  • The '@Function call:' line summarizes arguments (TOOL_CALL_PREVIEW_MAX_CHARS, default 300); large content/command values render as .
  • execute_tool_call records the last result; Ctrl+O in the REPL and /show-output re-print it in full (same renderer).
  • New config keys + env vars, config template, docs, spec and tests.

Terminal display only: short outputs are unchanged (no marker). - (a0db5eb) - Belingud

๐Ÿ› Bug Fixes

  • fix(keys): stop macOS VDISCARD from swallowing Ctrl+O during generation

On macOS the tty driver keeps ^O bound to VDISCARD even in cbreak mode: the key was consumed before GenerationKeyWatcher could read it and toggled "discard output" instead, which matches the captured TUI (a missing @Function call line between two tool panels) and a debug log that showed watcher.start cbreak=True but no watcher.ctrl-o event. The viewer could therefore never open and output silently went missing until the key was pressed again.

  • Disable VDISCARD (^O) and IXON (^S/^Q flow control) for the watcher window, restoring the saved termios on stop; log discard_disabled/flow_control_disabled.
  • Decode CSI-u / modifyOtherKeys Ctrl+O encodings used by extended keyboard protocols (kitty/xterm) in addition to the plain 0x0f byte.
  • Log every received byte in YAI_DEBUG_LOG mode and add generation.begin/end + prompt.begin breadcrumbs so a future freeze can be correlated with keypresses.
  • Document the new events in docs/dev/debug-cli.md. - (28f29f7) - Belingud
  • fix(cli): service Ctrl+O between background stream chunks

The REPL blocked on the bridge queue waiting for the next chunk, so a Ctrl+O request was only handled after the provider/tool produced something. During long reasoning or a slow tool that looked like a frozen screen with no viewer, and pressing Ctrl+O again did nothing until output resumed.

  • ThreadedStream.poll_next(timeout) polls the event queue and returns None on timeout (chunks/errors/StopIteration behave like next()).
  • Printer.display_stream() now polls background streams every 50ms and re-checks the viewer request each round, so the viewer opens promptly.
  • Ctrl+O during a turn with no tool output yet prints a dim hint instead of silently doing nothing.
  • Add opt-in YAI_DEBUG_LOG breadcrumbs (watcher start/skip, Ctrl+O byte, pause/resume ack, printer pause, viewer run begin/end/error) and document them in docs/dev/debug-cli.md for terminal-specific reproductions. - (cba65ee) - Belingud
  • fix(stream): keep aborting/lingering workers from corrupting state

Cancellation and history safety (T4): background turns now pass the worker a copy of the message list and adopt it only on success, so an aborted or failed turn returns the untouched original (a lingering worker cannot pollute the next turn's history). Each worker thread is registered with its owning bridge, so late console output from an abandoned worker is dropped instead of leaking into a newer generation; close() reports whether the worker is still alive and the CLI keeps the routed consoles installed in that case (with a dim notice) instead of restoring them under a running worker. Console wrappers are unwrapped before re-wrapping to avoid chains across repeated abandons. - (d598955) - Belingud

๐Ÿšœ Refactor

  • refactor(tools)!: rename execute_shell_command argument to command

The shell tool's model-facing argument was 'shell_command'; shorten it to 'command' so a call reads execute_shell_command(command=...). Update the builtin schema/execute signature, the approval/risk/canonical-argument lookups, the confirmation preview, and the affected tests.

BREAKING: models/roles that still pass shell_command will get a missing-argument error; the tool name (execute_shell_command) is unchanged. - (2eaaadf) - Belingud

๐Ÿ“š Documentation

  • docs(tools): document background generation Ctrl+O behavior

Ctrl+O during an in-flight answer now opens the tool-output viewer while the generation keeps running on a background worker thread; closing the viewer redraws the accumulated answer. Update README, usage pages (cli, interactive, commands, context-limits) and the py specs (background pipeline, cancellation, abandoned-worker handling, worker-thread tool output rules). - (f437f7e) - Belingud

โš™๏ธ Miscellaneous Tasks

  • chore(task): record post-T5 Ctrl+O and tool-schema hotfixes - (969b11b) - Belingud
  • chore(task): complete T5 background generation verification - (77acac9) - Belingud
  • chore(task): complete T4 cancellation and history safety plan - (1553c50) - Belingud
  • chore(task): complete T3 background generation wiring plan - (099ab94) - Belingud
  • chore(task): complete T2 worker console routing plan - (6b3822f) - Belingud
  • chore(task): complete T1 stream bridge plan - (4dbd116) - Belingud
  • chore(task): plan background generation as subtasks T1-T5 - (13eb196) - Belingud
  • chore: record journal - (e654434) - Belingud

0.19.0 - 2026-11-04

โ›ฐ๏ธ Features

  • feat(cli): exit the REPL on a double Ctrl-C

Single Ctrl-C at the prompt still clears the current input line / cancels the current turn and keeps the session alive, but pressing Ctrl-C a second time within ~2 seconds now exits the REPL normally (like Ctrl-D); a completed prompt read resets the window, so a stray interrupt can never kill an interactive session. Generation interrupts follow the same counter: cancel the turn first, exit on the next Ctrl-C. One-shot SIGINT keeps exiting 130. Update the REPL help banner, README/docs (keyboard shortcuts, commands, SIGINT section) and the cli-and-rendering spec; add REPL tests for double-press exit, single-press survival and window reset. - (3c401ae) - Belingud - feat(permissions): risk-aware confirmation, rule-based allowlist and audit log

K06: tool risk classes (read/write/network/exec) and a shlex-based danger classifier gate execution: dangerous shell commands always need explicit confirmation (non-interactive => deny, even with TOOL_CONFIRM=false), --yes auto-allows only read risk, --allowed-tools grants globs for one run. tool_permissions.json v2 adds argv_prefix/path_glob rules while still reading the v1 always_allow format; writes are atomic and 0600. The confirmation prompt now shows the canonical arguments that will execute (shell command + danger reasons, fs_write target/mode, fs_edit diff head 40). Denied calls return structured {error: tool_denied, reason} results and tool_denied feeds --fail-on-tool-denied (exit 3). Every decision is appended to tool_audit.jsonl (best-effort, secret-redacted) and /permissions can list/revoke. - (c83c87c) - Belingud - feat(agent): context economy, retries and classified provider errors

K02: single truncation point for tool output (per-tool caps, head/tail marker, full text spilled to TOOL_OUTPUT_DIR), heuristic token estimator + model-window budget, turn-group-aligned history trimming that never orphans role=tool messages, context-length 400 self-heal (trim one group, retry once), bounded exponential retry for rate-limit/network/timeout/5xx before any content is streamed, depth-limit finish_reason/flag, /context usage summary and /compact. K05: all 39 provider registry keys now raise classified AgentError (kind/status/retryable) instead of returning API errors as assistant content or silently stopping; request-time and mid-stream failures are wrapped, empty/in-band error bodies raise, and TIMEOUT is forwarded consistently. - (3b8e27d) - Belingud - feat(cli): headless scripting contract and side-effect-free startup

K04: new -p/--print, --output-format text|json|stream-json, --json (shorthand), -q/--quiet, --max-turns, -y/--yes, --allowed-tools, --cwd and --fail-on-tool-denied flags; stdout carries only the result/events while warnings, errors and progress go to stderr; non-TTY runs skip prompt_toolkit/banner/Live; JSON object and NDJSON event contracts; exit codes 0/1/2/3/130/141; SIGINT semantics (one-shot 130, REPL clears/cancels); POSIX SIGPIPE restore so 'ai --help | head' no longer exits 1; --shell non-TTY only prints the command unless --yes. K21: new _faststart console entry answers --version from the static version without importing config/role/CLI (zero writes), python -m yaicli works, config/role/chat imports are write-free and lazy, ensure_config_file() creates config.ini 0600 under dir 0700 on first real run only, config dir resolution honours YAI_CONFIG_DIR/XDG/APPDATA and never writes /.config for an empty HOME. Includes the v0.19 error taxonomy/retry backbone (errors.py) and stderr console/EPIPE handling. - (978eec5) - Belingud - feat(functions): load built-in tools out of the box and harden shell execution

K01/K15: load the 12 packaged builtins directly, let same-named user copies override them, and warn about stale exported copies via functions_manifest.json (version+sha256). A broken function file is skipped with one warning instead of bricking every tool. --install-functions now exports editable copies; --reinstall-functions refreshes them. K03: shell tool gains timeout (default 120s, process-group kill), workspace-bounded cwd, env allowlist (TOOL_ENV_INHERIT opt-in), output cap and exits 124 on timeout; the old 3-substring danger blacklist is replaced by shlex/argv classification in tools/risk.py. - (77bd086) - Belingud

๐Ÿ› Bug Fixes

  • fix(runtime): keep config imports write-free and make tests environment-safe

D7: key migrations for legacy config files are detected read-only at import and appended only by ensure_config_file() on a real run (deduped per CONFIG_PATH, skipped when the key already exists), so 'import yaicli.config' and '--help' no longer mutate an existing config.ini. T1: tests/conftest.py now sets the mock provider/credential environment before any yaicli module is imported, so the full suite is green in a fresh HOME/clean CI environment instead of failing five test_image tests with 'API_KEY is required'; the original environment is restored at session teardown. _faststart: flags after '--' are no longer treated as --version/-v (ai -- --version is a prompt). New regression tests for deferred migration, --help write-freedom and --/version parsing. - (bf39624) - Belingud - fix(agent): implement tool-output paging and harden shell env/spill handling

D6: fs_read_file gains optional offset/limit (characters, 0 = start/no limit) with per-file paging metadata (total_chars/returned_chars/truncated), so the truncation marker and docs that point the model at fs_read_file(offset/limit) for spilled tool output are truthful; legacy single-string/tuple inputs and the existing single/multi-file JSON shapes stay compatible. --cwd now wins over a stale exported YAI_WORKSPACE_ROOT: shell guardrail config is exported from cfg unconditionally (empty values skipped), matching entry._apply_cwd. Spill files for full tool outputs are created with 0600 permissions (best effort). Docs: context-limits paging table/semantics. Tests: schema contracts (OpenAI/Anthropic/Gemini), paging/edge cases, end-to-end tool-call paging, env precedence and spill mode. - (f19cac6) - Belingud - fix(permissions): block path-glob traversal and shell-syntax rule bypasses

D4: path_glob candidates are derived only from normalized paths (workspace-resolved with strict=False); the raw '..'-containing string is never a candidate and workspace-relative candidates that escape the workspace are rejected, so a rule like allowed/* can no longer be bypassed with allowed/../../victim.txt. Legitimate relative/absolute matches and the every-path-argument-must-match semantics are preserved. D5: argv_prefix rules only match a single simple command; the raw command is rejected when it contains shell control/expansion syntax (; | & < > backtick $( ${ <( >( CR/LF), so 'git status $(touch /tmp/x)' or piped/backtick variants require normal confirmation. 17 new regression tests (traversal/absolute/symlink escapes, parametrized control/substitution cases, legit plain args). - (4735f3d) - Belingud - fix(cli): keep machine-readable stdout clean in headless modes

D1/D2: re-point both the LLM client and its provider at the stderr console in machine-output mode, so provider verbose dumps ('Messages:', tools JSON) and API error bodies ('Error Response: {...}') can no longer corrupt --json/stream-json stdout; client/provider construction warnings are redirected to stderr as well. D3: compute headless intent in the CLI constructor (new defaulted print_mode/output_format/quiet kwargs) before the console, printer, client and prompt_toolkit session are created, so '-p --json' on a TTY never builds a PromptSession nor prints verbose config to stdout; entry.main passes the flags. D8: move the Gemini/MCP '@Function call'/'@MCP call' debug prints to stderr and drop ANSI escapes. Regression tests: polluting provider/client consoles under json/stream-json/--verbose, construction redirect, simulated-TTY constructor behaviour. - (5fd62bc) - Belingud

๐Ÿ“š Documentation

  • docs(changelog,spec): record v0.19 verification fixes

Regenerate the v0.19.0 changelog section with the four post-verification fix commits (headless stdout purity, permission-rule hardening, tool-output paging/env/spill handling, write-free config + environment-safe tests) and update the py-layer specs for the new contracts: CLI headless constructor intent + provider console sync, fs_read_file paging/spill mode/cfg-to-env shell precedence, deferred legacy-config key migration, and setting test credentials before importing yaicli. - (1868067) - Belingud - docs: restore "Your AI assistant in command line" positioning

Revert the first-screen positioning copy to the v0.18 assistant wording kept by the project: README title/intro/footer, docs index title/intro, the PyPI description (A simple CLI tool to interact with LLM) and mkdocs site_description (An advanced CLI tool for interacting with AI models). The v0.19 functional documentation is unchanged and still shipped: headless/scripting, permissions, context & limits, upgrade pages, quick start, and the measured lightweight table. - (bc8d7fb) - Belingud - docs: reposition YAICLI as a lightweight agent and document v0.19

Rewrite README/docs index around the agent-first, lightweight-first positioning; add a 3-step quick start and the measured footprint table (with the sandbox measurement caveat). New pages: usage/headless (stdout/stderr contract, JSON/NDJSON, exit codes), usage/permissions (risk classes, rules v2, audit, /permissions), usage/context-limits (truncation, budget, /context, /compact), advanced/upgrade (v0.19 changes, reinstall, XDG config dirs). Move the 30+ provider matrix to a Compatibility section and sync mkdocs nav. - (dbd0a0b) - Belingud - docs(trellis): sync release spec with v0.18.0 release flow - (84d9a13) - Belingud - docs: update CHANGELOG for v0.18.0 release - (7e947dd) - Belingud

โš™๏ธ Miscellaneous Tasks

  • chore: record journal - (2720fef) - Belingud
  • chore(release): sync uv.lock with v0.19.0

Refresh the editable package version recorded in uv.lock (0.18.0 -> 0.19.0) after the release bump; no dependency changes. - (42643ea) - Belingud - chore: record journal - (3d0b28e) - Belingud - chore(task): archive 11-04-v019-lightweight-agent - (a5b7d84) - Belingud - chore(trellis): record v0.19 lightweight-agent task and refresh specs

Add the v0.19.0 PRD/design/implement plan-of-record and update the py-layer specs for the new behavior: builtin direct-load + manifest, headless/exit-code contract, lazy write-free config/role/chat startup, error taxonomy/retries, context budget/truncation, risk-aware permissions and audit, and the new module map. - (b928de8) - Belingud - chore(release): v0.19.0

Bump to 0.19.0 and point ai/yaicli console scripts at yaicli._faststart:main; update the PyPI description to 'A lightweight agent in your terminal'. The static version in yaicli/init.py is now kept in sync with pyproject.toml by bump2version. - (e9eb123) - Belingud - chore: refresh uv.lock for v0.18.0 release - (b7b868f) - Belingud


0.18.0 - 2026-11-02

โ›ฐ๏ธ Features

  • feat(functions): read multiple files in a single fs_read_file call

Advertise fs_read_file's file_paths as a JSON array instead of Union[str, List[str]], so OpenAI/Anthropic schemas no longer emit anyOf and Gemini's callable-derived declaration becomes ARRAY/STRING instead of an invalid OBJECT + any_of. execute() keeps accepting a single path string (and tuples) for backward compatibility and returns an in-band JSON error for other argument types.

Add schema-contract, end-to-end tool-call, Gemini regression and compatibility tests, and document batch reads in README and docs. - (0d2d943) - Belingud

๐Ÿ› Bug Fixes

  • fix(tools): harden fetch_webpage redirect handling - (cfddf81) - Belingud
  • fix(chat): keep old session until replacement is written - (ee0c125) - Belingud
  • fix(render): escape role names and prompts in role command output - (a4258e6) - Belingud
  • fix(gemini): group parallel tool responses into one function_response turn - (fde4264) - Belingud
  • fix(tools): reject CGNAT/shared address space in fetch_webpage SSRF guard - (a4b7fea) - Belingud
  • fix(tools): block SSRF in fetch_webpage with URL validation and redirect checks - (a437dc9) - Belingud
  • fix(tools): never disable TLS verification on retry in fetch_webpage - (451d878) - Belingud
  • fix(render): never interpret untrusted text as Rich markup - (159b8e0) - Belingud
  • fix(cli): exit non-zero on handled failures - (f344a93) - Belingud
  • fix(chat): persist full message fields in saved sessions - (5a04fa7) - Belingud
  • fix(providers): support parallel tool calls in OpenAI-compatible providers - (58d11e6) - Belingud
  • fix(gemini): send tool results as function_response and stop resending last turn - (34d4139) - Belingud
  • fix(providers): tolerate missing reasoning_content in ChatGLM/HuggingFace responses - (1b59b9a) - Belingud
  • fix(functions): keep permission checks before atomic fs_edit_file write - (7f0d414) - Belingud
  • fix(functions): prevent fs_edit_file data loss on invalid replace edits - (215688e) - Belingud
  • fix(functions): array-first fs_read_image schema

Mirror the fs_read_file fix: advertise image_paths as List[str] so OpenAI, Anthropic and Gemini no longer receive an anyOf/OBJECT+any_of declaration; execute() normalizes legacy str/tuple input and returns in-band errors for other types. - (92a4d05) - Belingud - fix(cli): send a minimal prompt for image-only invocations

ai --image photo.jpg now sends "Describe the image." (plural for several images) instead of aborting in CLI.run() with an empty prompt. - (c6df177) - Belingud - fix(context): replace '[' sentinel with structured FileReadResult

_read_file() now returns FileReadResult(content, error) instead of magic strings, so real text starting with '[' is included again in @refs and directory context; read failures are warned about and skipped. - (8703514) - Belingud - fix(cli): wire MAX_HISTORY and ROLE_MODIFY_WARNING

  • prompt history now uses cfg["MAX_HISTORY"] instead of INTERACTIVE_ROUND
  • MAX_HISTORY=0 disables history saving as documented
  • warn when a built-in role is created/overwritten or deleted, gated by ROLE_MODIFY_WARNING
  • remove the broken, unused RoleManager.print_roles() - (defdf80) - Belingud
  • fix(config): parse default config on first run and read YAI_PROVIDER

  • add PROVIDER to DEFAULT_CONFIG_MAP with the YAI_PROVIDER env key

  • parse DEFAULT_CONFIG_INI after writing it on a first run instead of returning early, so PROVIDER and friends are present immediately
  • treat empty file/env values as unset and fall back to the typed map default (EXTRA_HEADERS/EXTRA_BODY become dicts, REASONING_EFFORT None)
  • drop the unused const.CODE_MODE constant - (097b6b4) - Belingud

๐Ÿ“š Documentation

  • docs(changelog): record unreleased changes since v0.17.0 and sync docs page - (714b839) - Belingud
  • docs(dev): fill developer guides, fix navigation and spec drift - (bee2c03) - Belingud
  • docs: fix provider/config examples and defaults drift - (c715832) - Belingud
  • docs: document post-P0 behaviour (session format, exit codes, fetch/fs_edit safety) - (491369c) - Belingud
  • docs(functions): add complete function install/update guide - (bdb8784) - Belingud
  • docs: document image-only prompts and multi-image reads

  • note the minimal prompt used when --image is passed without a prompt

  • document the fs_read_image image_paths list contract - (37d46a7) - Belingud
  • docs: document tool execution confirmation for v0.17.0 - (530c774) - Belingud
  • docs: update CHANGELOG for v0.17.0 release - (9273693) - Belingud

โš™๏ธ Miscellaneous Tasks

  • chore(task): archive 11-01-fix-bootstrap-known-defects - (a191828) - Belingud
  • chore: record journal - (0949f40) - Belingud
  • chore(trellis): record fixed bootstrap defects in spec and task

  • update py/ specs to the fixed behaviour (first-run config, typed defaults, MAX_HISTORY/ROLE_MODIFY_WARNING, image-only prompt, FileReadResult context reads, fs_read_image array schema)

  • mark the bootstrap PRD's known-defect list as fixed with commit refs
  • add the 11-01-fix-bootstrap-known-defects task artifacts - (2011b37) - Belingud
  • chore: record journal - (331f4a8) - Belingud
  • chore(task): archive 00-bootstrap-guidelines - (9a61200) - Belingud
  • chore(trellis): install Trellis workflow and bootstrap project spec

Add the Trellis AI development workflow for Claude Code and DeepSeek Harness (dsh): .trellis/ (workflow, scripts, tasks, workspace, spec), .agents/skills/ shared skill catalog, .dsh/ entry skills, the Claude Code surface (.claude/ hooks, agents, commands, skills, settings.json), the union-merge .gitattributes rule, and the managed Trellis block in CLAUDE.md (AGENTS.md symlink follows it).

Complete the 00-bootstrap-guidelines task: reshape the generated backend/web spec scaffold into layers that match the repository - py/ (architecture, providers, function calling/tools, CLI/rendering, config/context, quality) and repo/ (conventions, build/CI/release) - with every rule grounded in real source files, tests, and commits. The spec records current defects found while writing (first-run PROVIDER KeyError, unused CODE_MODE, dead MAX_HISTORY/ROLE_MODIFY_WARNING, --image-only abort, context "[" sentinel, role.print_roles, fs_read_image Union debt).

Verified: no placeholders, index<->file coverage, relative links, and get_context.py --mode packages -> py, repo; independently reviewed by a read-only verifier. - (cb6abd8) - Belingud


0.17.0 - 2026-06-23

โ›ฐ๏ธ Features

  • feat!: confirm tool calls before execution

Add a confirmation gate before each tool/function call with four outcomes: allow once, allow for the session, allow permanently, or deny. Approvals are keyed by tool name (MCP prefix preserved); permanent approvals persist to ~/.config/yaicli/tool_permissions.json via an atomic write. Denied calls return a matched tool result so the provider request stays valid, and non-interactive sessions deny unapproved tools instead of blocking.

Also stream reasoning as append-only text rather than re-rendering it in the live region, fixing duplicated 'Thinking:' frames after large tool output.

BREAKING CHANGE: tool calls now require confirmation by default. Set TOOL_CONFIRM=false (env YAI_TOOL_CONFIRM=false) to restore silent execution. - (7cc64f0) - Belingud

๐Ÿ› Bug Fixes

  • fix: drop api_key for Cohere Bedrock/Sagemaker clients

Bedrock and Sagemaker authenticate via AWS credentials; the Cohere api_key injected by the base initializer is not a valid argument for those clients and caused client creation to fail. - (9b77aa1) - Belingud

๐Ÿ“š Documentation

  • docs: update CHANGELOG for v0.16.0 release - (1a0dfd6) - Belingud

๐Ÿงช Testing

  • test: expand coverage across CLI, context, tools, and providers

Add tests for functions init, render, and tools init modules, and extend anthropic, longcat, chat manage, CLI, command handler, context, fetch webpage, and fs file operation test suites. - (8fe3871) - Belingud - test: expand provider test coverage

Add tests for openai-compatible, sambanova, and targon providers, and extend ai21, cohere, minimax, and simple provider test suites. - (14b38cb) - Belingud


[Unreleased]

โ›ฐ๏ธ Features

  • feat!: confirm tool/function calls before execution โ€” allow once, allow for the session, allow permanently, or deny. BREAKING: tool calls now require confirmation by default; set TOOL_CONFIRM=false (env YAI_TOOL_CONFIRM=false) to restore the previous silent execution. Permanent approvals are stored per tool name in ~/.config/yaicli/tool_permissions.json.

0.16.0 - 2026-05-10

โ›ฐ๏ธ Features

  • feat: support DeepSeek thinking mode - (2980316) - Belingud

๐Ÿ“š Documentation

  • docs: update changelog for v0.5.2 release - (4e96660) - Belingud

0.15.2 - 2026-04-28

๐Ÿ› Bug Fixes

  • fix: add tool_policy parameter to completion params - (a47d619) - Belingud
  • fix: fall back to httpx when trafilatura extraction fails - (1bdd254) - Belingud

0.15.2 - 2026-04-28

๐Ÿ› Bug Fixes

  • fix: add tool_policy parameter to completion params - (a47d619) - Belingud
  • fix: fall back to httpx when trafilatura extraction fails - (1bdd254) - Belingud

0.15.0 - 2026-03-24

โ›ฐ๏ธ Features

  • feat: add -v/--version flag to show version and exit - (bae66c2) - Belingud

0.10.0 - 2026-01-20

โ›ฐ๏ธ Features

  • add longcat provider support and improve anthropic tool call handling - (6ca2e8e) - Belingud
  • add default empty string to command handlers - (0c6ebed) - Belingud
  • update file/dir context help text - (698fd61) - Belingud
  • add support for @-prefixed paths in AtPathCompleter - (1b43712) - Belingud

๐Ÿ› Bug Fixes

  • compatible with /context add - (e60333d) - Belingud

๐Ÿ“š Documentation

  • add LongCat provider documentation - (a3e4a79) - Belingud
  • add context management and path completion features - (1bc7c74) - Belingud
  • add file context management feature documentation - (4f53c73) - Belingud
  • add changelog entries for v0.9.0 and v0.8.12 - (8fbfb27) - Belingud

๐Ÿงช Testing

  • add LongCat provider tests and improve Anthropic provider testing - (5b950db) - Belingud
  • add message filtering and context management tests - (43b226d) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update uv.lock - (5fa5af4) - Belingud

0.9.0 - 2026-01-10

โ›ฐ๏ธ Features

  • add EXCLUDE_PARAMS configuration option - (d36ce77) - Belingud

๐Ÿ“š Documentation

  • add implementation plan for EXCLUDE_PARAMS feature - (ac3f743) - Belingud
  • add changelog entries for v0.8.12 and v0.8.11 - (94c09e6) - Belingud

๐ŸŽจ Styling

  • format py files - (6a6cea8) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update uv sync command to include all groups and extras - (c025d72) - Belingud

0.8.12 - 2026-01-08

โ›ฐ๏ธ Features

  • (fetch_webpage) enhance webpage fetching with retries and trafilatura support - (cf64899) - Belingud
  • (filesystem) add builtin filesystem functions for CLI - (55a7039) - Belingud
  • add verbose logging for raw tool call names - (fe1e1a0) - Belingud

๐Ÿ› Bug Fixes

  • improve security checks for file operations and refactor path handling - (ca0ae47) - Belingud

๐Ÿ“š Documentation

  • add changelog entry for v0.8.11 - (4077b27) - Belingud

๐Ÿงช Testing

  • remove unused imports from test files - (f736c04) - Belingud
  • add test files for filesystem operations - (aec5980) - Belingud

0.8.11 - 2025-08-03

๐Ÿ“š Documentation

  • update changelog for v0.8.10 release - (c212daa) - Belingud

0.8.10 - 2025-07-24

โ›ฐ๏ธ Features

  • update wrap_gemini_function to add gemini func call log - (f34d322) - Belingud

๐Ÿ“š Documentation

  • update changelog for v0.8.9 release - (73e9ab8) - Belingud

0.8.9 - 2025-07-22

โ›ฐ๏ธ Features

  • add OpenAICampatibleProvider and update Config imports - (72f8d91) - Belingud

๐Ÿ“š Documentation

  • update changelog for v0.8.8 release - (063faf7) - Belingud

๐Ÿงช Testing

  • add openai-compatible provider to test cases - (4f75278) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update uv lock - (e339adf) - Belingud

0.8.8 - 2025-07-21

๐Ÿ› Bug Fixes

  • remove frequency_penalty from AnthropicProvider - (6d21e6a) - Belingud

๐Ÿ“š Documentation

  • update changelog for v0.8.7 release - (b788c6c) - Belingud

0.8.7 - 2025-07-20

โ›ฐ๏ธ Features

  • add error handling for first chunk in OpenAIProvider - (c6e3eae) - Belingud

๐Ÿ“š Documentation

  • update changelog for v0.8.6 release - (1104d0f) - Belingud

0.8.6 - 2025-07-19

๐Ÿšœ Refactor

  • remove frequency_penalty for cerebras and add get_tools method - (c6a16a5) - Belingud

๐Ÿ“š Documentation

  • update changelog for v0.8.5 release - (a4e358b) - Belingud

0.8.5 - 2025-07-17

โ›ฐ๏ธ Features

  • add FireworksProvider and frequency penalty support - (a316006) - Belingud

๐Ÿ“š Documentation

  • add frequency penalty configuration to README - (8fe3836) - Belingud
  • update changelog for v0.8.4 release - (afd4f95) - Belingud

๐Ÿงช Testing

  • add frequency_penalty to llm provider tests - (8f4da43) - Belingud
  • add Fireworks provider tests - (cfc189f) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add fireworks-ai dependency - (0ff81af) - Belingud

0.8.4 - 2025-07-17

๐Ÿ“š Documentation

  • add Fireworks to README.md - (ba80dbc) - Belingud
  • add Fireworks AI provider documentation - (27df748) - Belingud
  • update changelog for v0.8.3 release - (4851cd0) - Belingud

0.8.3 - 2025-07-16

โ›ฐ๏ธ Features

  • add new configuration options and refactor CLI options - (a52ee92) - Belingud

๐Ÿ“š Documentation

  • add MAX_TOOL_CALL_DEPTH configuration option - (c1cf420) - Belingud
  • update changelog for v0.8.2 release - (5f27d5d) - Belingud

๐Ÿงช Testing

  • update test cases for AnthropicProvider and CLI - (367ea89) - Belingud

0.8.2 - 2025-07-15

๐Ÿ› Bug Fixes

  • add tool result handling in AnthropicProvider and update tool schema - (8e27965) - Belingud

๐Ÿ“š Documentation

  • update changelog for v0.8.1 release - (1c546cd) - Belingud

๐Ÿงช Testing

  • add test for converting messages with tool results - (3b04a71) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update deploy-docs.yml for better readability - (17ad8eb) - Belingud
  • add GitHub Actions workflow for deploying MkDocs - (a653a29) - Belingud

0.8.1 - 2025-07-15

๐Ÿšœ Refactor

  • add conditional newline in tool call content - (7bb167f) - Belingud

๐Ÿ“š Documentation

  • update documentation for providers - (f36de06) - Belingud
  • update changelog for v0.8.0 release - (1cd2fc4) - Belingud

0.8.0 - 2025-07-14

Disable time sleep in streaming response content from this version.

โ›ฐ๏ธ Features

  • add run shell directly cmd in chat - (126f5df) - Belingud

๐Ÿšœ Refactor

  • improve chat history display and tool call handling - (145fdc6) - Belingud

๐Ÿ“š Documentation

  • add shell command execution feature to CLI and usage docs - (fd22f9d) - Belingud
  • update changelog for v0.7.17 release - (f1165a6) - Belingud

๐Ÿงช Testing

  • update test case for run shell command - (9a2f2b7) - Belingud

0.7.17 - 2025-07-13

โ›ฐ๏ธ Features

  • add moonshot provider support - (8109255) - Belingud

๐Ÿ“š Documentation

  • add more provider docs - (30e981d) - Belingud
  • update changelog for v0.7.16 release - (e10b79a) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update uv lock - (794305a) - Belingud

0.7.16 - 2025-07-12

๐Ÿ› Bug Fixes

  • ensure live stop and remove update interval - (f9bb0aa) - Belingud

๐Ÿ“š Documentation

  • add new release notes for v0.7.15 - (a347b64) - Belingud

0.7.15 - 2025-07-12

โ›ฐ๏ธ Features

  • enable openai azure provider and add docs - (7be0da3) - Belingud
  • add openai azure provider support - (6384d1f) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG with new release notes - (a2aa596) - Belingud

0.7.14 - 2025-07-10

โ›ฐ๏ธ Features

  • add cerebras provider support - (d6cc354) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG with new release notes - (f4bd8d3) - Belingud

0.7.13 - 2025-07-09

๐Ÿ› Bug Fixes

  • update APP_REFERER and improve type annotations in OpenAIProvider - (a04a2c5) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG with new release notes - (b18aaea) - Belingud

โš™๏ธ Miscellaneous Tasks

  • remove unused GitHub Actions workflow - (87e802c) - Belingud

0.7.12 - 2025-07-09

๐Ÿ› Bug Fixes

  • Indent tool choice print statement - (f70ba3a) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG with new release notes - (c53150f) - Belingud

0.7.11 - 2025-07-09

๐Ÿ“š Documentation

  • update CHANGELOG with new release notes - (2a1ea8c) - Belingud

โš™๏ธ Miscellaneous Tasks

  • remove docs.yml workflow - (b2e6aed) - Belingud
  • remove google-cloud-aiplatform dependency - (6118c85) - Belingud

0.7.10 - 2025-07-09

๐Ÿ“š Documentation

  • update provider documentation and navigation - (bffb3c6) - Belingud
  • correct logo path in index.md - (97b94cb) - Belingud
  • update function calling and MCP documentation - (030129b) - Belingud
  • update CHANGELOG with new release notes - (4845ca0) - Belingud
  • add more doc files - (8c5fffe) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add vertex support to anthropic dependency - (80e8252) - Belingud
  • add new dependencies for anthropic and google-cloud-aiplatform - (9f9ceaf) - Belingud
  • add debug steps to docs.yml - (1a7e4f1) - Belingud
  • update GitHub Actions workflow for docs deployment - (cb3af0f) - Belingud
  • update docs.yml to trigger on master branch - (6df9996) - Belingud
  • update GitHub Actions workflow and docs - (f371d11) - Belingud
  • update docs.yml to trigger on docs branch - (d87644b) - Belingud
  • update GitHub Actions dependencies - (60ab515) - Belingud
  • add main branch to docs workflow and update dependencies - (bc5e312) - Belingud
  • add mkdocs workflow - (f566602) - Belingud

0.7.9 - 2025-07-07

โ›ฐ๏ธ Features

  • add support for Anthropic, Anthropic Vertex and Anthropic Bedrock providers - (88c879e) - Belingud

๐Ÿ“š Documentation

  • add Anthropic/Claude provider details - (3f95754) - Belingud
  • update CHANGELOG with new release notes - (f24a550) - Belingud

๐Ÿงช Testing

  • add tests for AnthropicProvider and setup test environment - (5aa0986) - Belingud

0.7.8 - 2025-07-03

๐Ÿ“š Documentation

  • update CHANGELOG with new release notes - (78761d4) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update fastmcp dependency to 2.10.1 - (9fb6818) - Belingud

0.7.7 - 2025-07-01

โ›ฐ๏ธ Features

  • add fetch_webpage buildin function - (09ec366) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG with new release notes and documentation updates - (2ff0056) - Belingud

0.7.6 - 2025-07-01

โ›ฐ๏ธ Features

  • add default role configuration - (91c72f0) - Belingud

๐Ÿšœ Refactor

  • remove unused imports and trailing whitespace - (cad95fe) - Belingud

๐Ÿ“š Documentation

  • add DEFAULT_ROLE to README.md - (6308eea) - Belingud
  • update README.md with improved descriptions and requirements - (25e32bc) - Belingud
  • update README with new provider and formatting - (da056ca) - Belingud
  • update CHANGELOG with v0.7.5 release notes - (566a85c) - Belingud

0.7.5 - 2025-07-01

โ›ฐ๏ธ Features

  • add get_weather buildin function - (876efb7) - Belingud

๐Ÿ“š Documentation

  • add Spark and Together to README - (e26ea59) - Belingud
  • update CHANGELOG with v0.7.4 release notes - (966e443) - Belingud

โš™๏ธ Miscellaneous Tasks

  • remove pydantic deprecation warnings - (ce2c18c) - Belingud
  • add warnings import and filter deprecation warnings - (7003144) - Belingud

0.7.4 - 2025-06-30

๐Ÿ› Bug Fixes

  • handle LLM client creation errors gracefully - (6c8cbed) - Belingud

๐Ÿ“š Documentation

  • add MCP Calling documentation to README - (70b5a86) - Belingud
  • update CHANGELOG.md for v0.7.3 release - (ddae983) - Belingud

๐Ÿงช Testing

  • add Together provider tests and improve line formatting - (560330e) - Belingud

0.7.3 - 2025-06-29

โ›ฐ๏ธ Features

  • add bailian, bailian-intl, spark and nvida providers - (106214b) - Belingud

๐Ÿ“š Documentation

  • add documentation for new providers - (5fd9662) - Belingud
  • update CHANGELOG.md for v0.7.2 release - (44b8702) - Belingud

๐Ÿงช Testing

  • add new provider types to TestProviderFactory - (dbf4572) - Belingud
  • add tests for Bailian, Mistral, Nvidia, and Spark providers - (f75a7f6) - Belingud

0.7.2 - 2025-06-28

โ›ฐ๏ธ Features

  • add MCP tools error handling and reasoning effort options - (68b9258) - Belingud

๐Ÿ› Bug Fixes

  • handle errors in get_openai_mcp_tools and MCPClient methods - (251961f) - Belingud

๐Ÿšœ Refactor

  • standardize completion parameter keys across providers - (f294f75) - Belingud

๐Ÿ“š Documentation

  • add Mistral to README - (0d72f37) - Belingud
  • update CHANGELOG.md for v0.7.1 release - (72a2107) - Belingud

๐Ÿงช Testing

  • add tests for MistralProvider and update imports - (c297bef) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add mistralai and tox-uv dependencies - (d753356) - Belingud

0.7.1 - 2025-06-27

๐Ÿ“š Documentation

  • update CHANGELOG.md for v0.7.0 release - (782e0de) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add fastmcp dependency - (e1dfcbb) - Belingud

0.7.0 - 2025-06-27

[!IMPORTANT] - Add MCP support.

โ›ฐ๏ธ Features

  • add MCP support in functions module - (224c408) - Belingud
  • add --list-mcp option to main function - (4a536d4) - Belingud
  • add MCP options to CLI entry point - (d7f3978) - Belingud
  • add MCP support to LLMClient and providers - (58a4609) - Belingud
  • add asyncio utilities and function wrapper - (fb9e02b) - Belingud

๐Ÿ› Bug Fixes

  • Add tool call chunk processing in AI21Provider - (df78c4f) - Belingud

๐Ÿšœ Refactor

  • simplify tool call creation and update default provider - (225e066) - Belingud
  • remove unused imports and simplify DoubaoProvider constructor - (5effa9d) - Belingud
  • update parse_choice_from_content to support ChoiceChunk - (7f2194f) - Belingud
  • refactor tools module for MCP integration - (62ab778) - Belingud

๐Ÿ“š Documentation

  • add default HF_PROVIDER to README - (98e0066) - Belingud
  • add MCP support and documentation - (adfdd62) - Belingud
  • update CHANGELOG.md for v0.6.4 release - (d16a66b) - Belingud

๐Ÿงช Testing

  • update test case for new config key - (f38024c) - Belingud
  • add tests for get_or_create_event_loop - (594b671) - Belingud
  • update provider names and default value handling - (013a989) - Belingud

0.6.4 - 2025-06-24

โ›ฐ๏ธ Features

  • add new Cohere providers and improve type handling - (5d5f53c) - Belingud
  • add HuggingFace provider to ProviderFactory - (a08cd70) - Belingud
  • add HuggingFaceProvider class - (d81b42c) - Belingud

๐Ÿ› Bug Fixes

  • handle empty content in CLI methods - (26ed101) - Belingud

๐Ÿšœ Refactor

  • standardize completion params keys in providers - (6802dfd) - Belingud

๐Ÿ“š Documentation

  • update installation commands and supported providers - (9034c98) - Belingud
  • add new models and configurations - (f2b02b8) - Belingud
  • update CHANGELOG.md for v0.6.3 release - (8370366) - Belingud

๐Ÿงช Testing

  • add tests for HuggingFaceProvider and update provider factory - (88f4a0b) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add new dependencies and keywords - (f82a5b7) - Belingud

0.6.3 - 2025-06-23

โ›ฐ๏ธ Features

  • add error handling for better error show - (ced63b8) - Belingud
  • add gemini and vertexai providers - (1cb56ad) - Belingud

๐Ÿ› Bug Fixes

  • use display_stream return content for command execute - (5443822) - Belingud
  • ensure non-empty config values are used in completion params - (c319ade) - Belingud

๐Ÿšœ Refactor

  • remove unused BaseProvider class - (1166114) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG.md for v0.6.2 release - (b9e6354) - Belingud

๐Ÿงช Testing

  • add tests for gemini and vertexai providers - (7a9f755) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update default reasoning effort to empty string - (e7f59c3) - Belingud

0.6.2 - 2025-06-23

โ›ฐ๏ธ Features

  • update provider mappings in ProviderFactory - (3dce344) - Belingud
  • add XaiProvider class based on OpenAIProvider - (f177da8) - Belingud

๐Ÿšœ Refactor

  • standardize completion parameter handling across providers - (25be368) - Belingud

๐Ÿ“š Documentation

  • update default settings and add XAI provider - (1cef2f8) - Belingud
  • update CHANGELOG.md for v0.6.1 release - (0c5ece3) - Belingud

๐Ÿงช Testing

  • add xai to provider factory test - (f89068f) - Belingud
  • add tests for XaiProvider and new Role class - (c77d070) - Belingud
  • update provider referer and add new providers - (423cbbd) - Belingud

0.6.1 - 2025-06-22

โ›ฐ๏ธ Features

  • add error handling for empty choices in OpenAIProvider for better error message - (9cd2a28) - Belingud
  • add minimax and targon providers - (e8df86f) - Belingud

๐Ÿšœ Refactor

  • Unify completion params handling in LLM providers - (9132020) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG.md for v0.6.0 release - (f9b9085) - Belingud

๐Ÿงช Testing

  • update mocking strategy for provider tests - (4b9c410) - Belingud

0.6.0 - 2025-06-22

โ›ฐ๏ธ Features

  • refactor OllamaProvider and update default temperature - (cf2dbe9) - Belingud

๐Ÿšœ Refactor

  • Update provider naming and Groq N param handling - (309f70e) - Belingud
  • revamp LLM client and provider architecture - (90f7d46) - Belingud

๐Ÿ“š Documentation

  • update README with installation options and provider configs - (c7c088f) - Belingud
  • update CHANGELOG.md for v0.5.9 release - (ba73961) - Belingud

๐Ÿงช Testing

  • add llms package tests - (9c3e5c2) - Belingud

โš™๏ธ Miscellaneous Tasks

  • Update optional dependencies in pyproject.toml - (cc8f865) - Belingud
  • Configure ruff linting and add 'all' optional deps - (3d660e3) - Belingud
  • Update project keywords for broader AI model support - (5e09e7b) - Belingud

0.5.9 - 2025-06-12

๐Ÿ“š Documentation

  • update CHANGELOG.md for v0.5.8 release - (18a47d2) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update click and typer dependencies - (1f99298) - Belingud

0.5.8 - 2025-05-22

๐Ÿšœ Refactor

  • move schemas imports and update StrEnum compatibility - (a8a5b3b) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG.md for v0.5.7 release - (a0a641a) - Belingud

0.5.7 - 2025-05-22

โ›ฐ๏ธ Features

  • add support for EXTRA_HEADERS and EXTRA_BODY configuration - (7f8622f) - Belingud

๐Ÿ“š Documentation

  • update README with new config options and dependencies - (ebe2023) - Belingud
  • update CHANGELOG.md for v0.5.6 release - (2cf8e82) - Belingud

0.5.6 - 2025-05-22

๐Ÿ› Bug Fixes

  • update project config and simplify printer logic - (029b7e2) - Belingud

๐Ÿ“š Documentation

  • Fix formatting in README - (7e440da) - Belingud
  • update CHANGELOG.md for v0.5.5 release - (5d12c69) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add 'ai' as alternative command in pyproject.toml - (d1852f1) - Belingud

0.5.5 - 2025-05-21

๐Ÿšœ Refactor

  • Improve case-insensitive command handling in CLI - (a9f1382) - Belingud

๐Ÿ“š Documentation

  • add producthunt badge to README - (3b2d98b) - Belingud
  • add example image for reasoning shell - (99ff117) - Belingud
  • update CHANGELOG.md for v0.5.4 release - (fb5d95a) - Belingud

0.5.4 - 2025-05-14

๐Ÿ“š Documentation

  • Update CHANGELOG.md for v0.5.3 release - (a0bf128) - Belingud

โš™๏ธ Miscellaneous Tasks

  • Update dependencies - (698a054) - Belingud

0.5.3 - 2025-05-14

๐Ÿ“š Documentation

  • update CHANGELOG.md for v0.5.2 release - (4393332) - Belingud

0.5.2 - 2025-05-14

๐Ÿ“š Documentation

  • Update sologan and logo - (1ccd4b5) - Belingud
  • Update CHANGELOG.md for v0.5.1 release - (d7023dc) - Belingud

0.5.1 - 2025-05-14

๐Ÿšœ Refactor

  • remove unused command line argument - (2daf0e0) - Belingud

๐Ÿ“š Documentation

  • add function call support to README - (191b5ae) - Belingud
  • Update CHANGELOG.md for v0.5.0 release - (db7a328) - Belingud

0.5.0 - 2025-05-14

โ›ฐ๏ธ Features

[!IMPORTANT] - Add Function Call support.

  • Add reasoning effort configuration and function output panel - (f21d29b) - Belingud
  • refactor client and printer logic, add function call support - (9f008be) - Belingud
  • add non-stream completion function call - (572e2e2) - Belingud
  • add non-stream completion function call - (13d6154) - Belingud

๐Ÿ“š Documentation

  • Enhance README with function calling and provider info - (ab69e5c) - Belingud
  • update changelog for v0.4.0 release - (66db3ee) - Belingud

๐Ÿงช Testing

  • update test case for refactored project - (26e0faf) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update dependencies and script name - (562d930) - Belingud

0.4.0 - 2025-05-01

From this version, yaicli will use provider sdk instead of httpx raw request

Providers: - OpenAI - Cohere

โ›ฐ๏ธ Features

  • add provider-based API client architecture with OpenAI and Cohere support - (9f68de1) - Belingud
  • add role modify warning config and optimize lru_cache - (9c25162) - Belingud
  • add role modification warnings and singleton pattern for RoleManager - (e2f9596) - Belingud

๐Ÿšœ Refactor

  • reorganize imports and improve code formatting - (c1ee133) - Belingud

๐Ÿ“š Documentation

  • refine README with updated configurations and provider info - (90b8170) - Belingud
  • update changelog for v0.3.3 release - (3c73873) - Belingud

๐Ÿงช Testing

  • add provider tests for base, cohere, openai, and factory - (26e6ef2) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add chat demo cast and use asciinema for example - (36f3dea) - Belingud
  • add yaicli to isort formatting in Justfile - (d47def9) - Belingud

0.3.3 - 2025-04-29

๐Ÿšœ Refactor

  • remove redundant console print in CLI prompt logic - (1cf8241) - Belingud

๐Ÿ“š Documentation

  • update changelog for v0.3.2 release - (328f51b) - Belingud

0.3.2 - 2025-04-29

๐Ÿ› Bug Fixes

  • mode change in repl should also change role - (9dea555) - Belingud

๐Ÿ“š Documentation

  • Update CHANGELOG.md for release 0.3.1 - (4511255) - Belingud

๐Ÿงช Testing

  • add X-Title header to API client test - (f786c48) - Belingud

โš™๏ธ Miscellaneous Tasks

  • configure GitHub Actions for PyPI publishing - (b2d0cd4) - Belingud

0.3.1 - 2025-04-29

โ›ฐ๏ธ Features

  • Add X-Title header to API requests - (e30060b) - Belingud
  • clarify --code option help message - (74349c9) - Belingud

๐Ÿšœ Refactor

  • simplify chat manager test setup - (8650b05) - Belingud

๐Ÿ“š Documentation

  • refine CLI documentation and add code example - (658ecf9) - Belingud
  • Update README with new features and usage examples - (756942b) - Belingud
  • Update 0.3.0 feat changelog - (34ad75a) - Belingud
  • update CHANGELOG for v0.3.0 - (ce27418) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update Justfile commands and descriptions - (0c5b841) - Belingud

0.3.0 - 2025-04-28

  1. Add roles create/delete/list/show commands
  2. Add role management functionality
  3. Improve configuration management
  4. Add reasoning show config, justify config

โ›ฐ๏ธ Features

  • add roles and improve configuration management - (fa883e9) - Belingud

๐Ÿšœ Refactor

  • reorder imports and remove unused imports - (28699dd) - Belingud
  • Improve typing and streamline code for maintainability, add role funtion - (7f7230b) - Belingud

๐Ÿ“š Documentation

  • improve documentation and configuration details - (28287d0) - Belingud
  • Add reasoning example and update README - (c80da0f) - Belingud
  • Update README.md - (1c169e5) - belingud
  • update CHANGELOG.md for v0.2.0 release - (9cda1ea) - Belingud

๐Ÿงช Testing

  • update CLI input handling and improve test cases for chat mode - (7a12f71) - Belingud

0.2.0 - 2025-04-22

โ›ฐ๏ธ Features

  • enhance chat management and command-line interface - (6898273) - Belingud
  • add chat persistent - (291d7b7) - Belingud

๐Ÿ“š Documentation

  • improve documentation and add chat history features - (c0f1545) - Belingud
  • Update README to clarify project description - (21d6389) - Belingud
  • update CHANGELOG.md for v0.1.0 release - (474aaa4) - Belingud

๐Ÿงช Testing

  • Update chat management and CLI tests - (1b3ccb0) - Belingud
  • update test case for chat persistent - (af4f7e7) - Belingud

Chroe

  • Add format command to Justfile - (676ba1b) - Belingud

0.1.0 - 2025-04-20

โ›ฐ๏ธ Features

  • split content and reasoning content for better display - (83c7cff) - Belingud

๐Ÿšœ Refactor

  • Replace "reasoning" with "thinking" in tests, fix CLI exit - (519d210) - Belingud
  • Rename INTERACTIVE_MAX_HISTORY to INTERACTIVE_ROUND - (ac17cad) - Belingud
  • refactor yaicli, imporve logic - (71d19d6) - Belingud
  • extract completion response processing logic - (d9f8d08) - Belingud
  • refactor yaicli structure - (e2ad1be) - Belingud

๐Ÿ“š Documentation

  • improve README with detailed features and usage - (555f2b7) - Belingud
  • add example artwork - (8b40706) - Belingud
  • update README with timeout option and improved help text - (cd0f031) - Belingud
  • update CHANGELOG for v0.0.19 release - (4ff2781) - Belingud

๐Ÿงช Testing

  • add new options to mock CLI config - (0279155) - Belingud
  • update test case for refactor - (d6072b3) - Belingud
  • update tests for refactor - (024edb7) - Belingud

0.0.19 - 2025-04-16

โ›ฐ๏ธ Features

  • enhance configuration handling with type support and improve default config initialization - (34bc896) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG.md for v0.0.18 release - (bc19008) - Belingud

0.0.18 - 2025-04-14

โ›ฐ๏ธ Features

  • add auto-suggest from history and improve config handling - (22b31de) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG.md for v0.0.17 release - (af27d29) - Belingud

0.0.17 - 2025-04-14

๐Ÿ› Bug Fixes

  • Correct stdin TTY check and remove completer - (e2ee703) - Belingud

๐Ÿšœ Refactor

  • remove unused WordCompleter import - (968e6f1) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.16 in uv.lock and CHANGELOG.md - (f9376c4) - Belingud

0.0.16 - 2025-04-14

โ›ฐ๏ธ Features

  • (cli) add max history limit and stdin support - (1b685df) - Belingud

๐Ÿšœ Refactor

  • Remove unused io import - (1e72f6c) - Belingud

๐Ÿ“š Documentation

  • update README with new shortcuts and max history size - (af70000) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.15 in uv.lock and CHANGELOG.md - (15faced) - Belingud

0.0.15 - 2025-04-11

โ›ฐ๏ธ Features

  • add CODE_THEME configuration for code block styling - (ed0e8f6) - Belingud

๐Ÿ› Bug Fixes

  • handle None value in SHELL environment variable - (a4e29f5) - Belingud

๐Ÿ“š Documentation

  • update CHANGELOG.md with env key prefix change - (48b33da) - Belingud
  • update README.md with improved command execution format - (03b2417) - Belingud
  • update command execution UI in README.md - (a4aadc8) - Belingud

๐ŸŽจ Styling

  • fix spacing around 'or' operator in shell detection - (44cedc9) - Belingud

๐Ÿงช Testing

  • add smoke tests for CLI and fix shell detection tests - (baa1beb) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.14 in uv.lock and CHANGELOG.md - (9d21edf) - Belingud

0.0.14 - 2025-04-10

โ›ฐ๏ธ Features

  • (cli) enhance command execution and output display - (d101841) - Belingud

๐Ÿšœ Refactor

  • clean up unused imports in yaicli.py - (71c64af) - Belingud

๐Ÿ“š Documentation

  • (Justfile) update changelog command message - (b060812) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.13 in uv.lock and CHANGELOG.md - (3806f70) - Belingud

0.0.13 - 2025-04-09

[!IMPORTANT] - Change env key prefix from AI_ to YAI_

โ›ฐ๏ธ Features

  • (cli) add command edit option and improve console output styling - (48c14cc) - Belingud
  • refactor CLI and add new configuration options - (ad09301) - Belingud

๐Ÿ“š Documentation

  • update README with new ASCII art and command examples - (cdcb9af) - Belingud
  • update CHANGELOG.md for v0.0.12 release - (456c454) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add ruff cache cleanup and uv lock to changelog - (218b310) - Belingud

0.0.12 - 2025-04-08

โ›ฐ๏ธ Features

  • add chat history and improve CLI UX with completions - (7749883) - Belingud

๐Ÿ“š Documentation

  • restructure CLI options documentation in README - (142ac78) - Belingud
  • update CHANGELOG.md for v0.0.11 release - (6a6b3ae) - Belingud

0.0.11 - 2025-04-07

๐Ÿšœ Refactor

  • (yaicli) improve stream response parsing and add plaintext test - (92383ae) - Belingud
  • replace requests with httpx for HTTP client and update dependencies - (cfc3823) - Belingud

๐Ÿ“š Documentation

  • update project title in README - (cf8aaa7) - Belingud

โš™๏ธ Miscellaneous Tasks

  • add publish command to Justfile - (a2a76e5) - Belingud
  • update yaicli version to 0.0.10 and CHANGELOG - (aab8fb2) - Belingud

0.0.10 - 2025-04-05

๐Ÿ“š Documentation

  • update assistant name in default prompt - (e92313e) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.9 and CHANGELOG - (2a47a8b) - Belingud

0.0.9 - 2025-04-05

โ›ฐ๏ธ Features

  • add reasoning model support - (8a3d21b) - Belingud

๐Ÿ“š Documentation

  • add configuration guide for non-OpenAI LLM providers - (20f590d) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.8 and improve README - (282d3b5) - Belingud

0.0.8 - 2025-04-04

โ›ฐ๏ธ Features

  • add command filtering and improve history management - (e743b13) - Belingud

๐Ÿงช Testing

  • restructure and add new test files for CLI functionality - (09c81eb) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.7 and improve README - (71a8eff) - Belingud

0.0.7 - 2025-04-04

๐Ÿšœ Refactor

  • simplify CLI structure and improve code maintainability - (4eed7d8) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.6 and CHANGELOG - (563a468) - Belingud

0.0.6 - 2025-04-03

๐Ÿšœ Refactor

  • update environment variable names and remove max_tokens - (3abba5f) - Belingud
  • simplify config handling and remove DEFAULT_MODE - (3439eda) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update CHANGELOG and uv.lock for version 0.0.5 - (d5abef4) - Belingud

0.0.5 - 2025-04-02

๐Ÿšœ Refactor

  • rename ShellAI to YAICLI and update related tests - (2284297) - Belingud

๐Ÿ“š Documentation

  • update README with detailed project information and usage instructions - (c71d50c) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.4 - (03cdedb) - Belingud

0.0.4 - 2025-04-02

๐Ÿšœ Refactor

  • simplify multi-line statements for better readability - (4870bb7) - Belingud
  • rename ShellAI to yaicli and improve CLI help handling - (dad0905) - Belingud

โš™๏ธ Miscellaneous Tasks

  • update yaicli version to 0.0.3 - (a689a02) - Belingud

0.0.3 - 2025-04-02

๐Ÿšœ Refactor

  • (changelog) switch from git log to git cliff for changelog generation - (242a51d) - Belingud
  • update CLI assistant description and error handling - (1a8bcdc) - Belingud
  • fix spacing in clean target and simplify build target - (2a1050e) - Belingud

[0.0.2] - 2025-04-02

โ›ฐ๏ธ Features

  • enhance OS detection and LLM API request handling - (8c00de0) - Belingud
  • add new dependencies and configurable API paths - (3be3f67) - Belingud

๐Ÿšœ Refactor

  • (config) migrate config from JSON to INI format and enhance error handling - (f556872) - Belingud
  • update config path to reflect project name change - (e6bf761) - Belingud
  • rename project from llmcli to yaicli and update related files - (cdb5a97) - Belingud
  • rename project from shellai to llmcli and update related files - (db4ecb8) - Belingud
  • reorganize imports and improve code readability - (0f52c05) - Belingud
  • migrate llmcli to class-based ShellAI implementation - (2509cba) - Belingud

Build

  • add bump2version for version management - (de287f1) - Belingud