# Copyright (C) 2026 Rootiest # SPDX-License-Identifier: AGPL-3.0-or-later # SYNOPSIS # qc [prompt...] # # DESCRIPTION # Quick-chat wrapper around aichat using the "cli" role. Resolves the # aichat config directory (honoring $XDG_CONFIG_HOME), creates it if # missing, and installs the bundled cli-agent role as a symlink at # roles/cli.md on first use. Inherits aichat's own flags and tab # completions (--wraps). The function is only defined when aichat is # installed. # # ARGUMENTS # prompt... Prompt forwarded to aichat # -h, --help Show usage help # # RETURNS # aichat's exit status. # # EXAMPLE # qc "how do I list open ports on linux?" if type -q aichat function qc --wraps aichat --description 'Quick-chat wrapper around aichat (cli role)' if contains -- -h $argv; or contains -- --help $argv set -l c_ttl (set_color --bold cyan) set -l c_cmd (set_color --bold white) set -l c_flag (set_color yellow) set -l c_txt (set_color normal) set -l c_dim (set_color brblack) set -l c_rst (set_color normal) set -l w 59 set -l bar (string repeat -n $w ─) # Title line, padded to the box width (plain form drives the math). set -l title " qc — quick-chat: a thin aichat wrapper" set -l pad (string repeat -n (math $w - (string length -- $title)) ' ') echo "$c_dim╭$bar╮$c_rst" echo "$c_dim│$c_rst $c_ttl""qc$c_rst $c_dim—$c_rst quick-chat: a thin $c_cmd""aichat$c_rst wrapper$pad$c_dim│$c_rst" echo "$c_dim╰$bar╯$c_rst" echo " Defaults to the $c_flag'cli'$c_rst role — an AI system prompt tuned" echo " for concise, $c_txt""terminal-friendly$c_rst output." echo echo " Accepts every $c_cmd""aichat$c_rst flag; passing $c_flag--role$c_rst/$c_flag-r$c_rst overrides" echo " the default role. $c_cmd""aichat$c_rst's own help follows:" echo "$c_dim$bar$c_rst" aichat --help | string replace -a aichat qc return 0 end set -q XDG_CONFIG_HOME; or set -l XDG_CONFIG_HOME $HOME/.config set -l role $XDG_CONFIG_HOME/aichat/roles/cli.md if not test -e $role set -l src (path resolve (status dirname)/../scripts/cli-agent.md) mkdir -p (path dirname $role) ln -s $src $role end # Forward as-is if the user already picked a role; otherwise default to cli. if contains -- -r $argv; or contains -- --role $argv; or string match -qr -- '^--role=' $argv aichat $argv else aichat --role cli $argv end end end