feat(functions): add qc quick-chat wrapper around aichat
Defaults to the bundled 'cli' role (concise, terminal-friendly output), installed on first use by symlinking scripts/cli-agent.md into the aichat config dir. Inherits all aichat flags and completions via --wraps; passing --role/-r forwards unchanged. Only defined when aichat is installed. --help prepends a banner and rewrites aichat's own help to qc. Docs: fish-config.md 5.12 + index keywords.
This commit is contained in:
@@ -150,6 +150,9 @@ devlogs=### agents-init
|
||||
claude-cli=### claude
|
||||
claude-docs=### claude-docs
|
||||
claude-pr=### claude-pr
|
||||
qc=### qc
|
||||
quick-chat=### qc
|
||||
aichat=### qc
|
||||
superpowers=### superpowers
|
||||
media=## 5.13 Media and Utilities
|
||||
dng2avif=### dng2avif
|
||||
|
||||
@@ -1247,6 +1247,23 @@ Add -i (interactive confirmation) to destructive commands:
|
||||
conventional commit, verification, push, and open a PR with a manual
|
||||
verification checklist.
|
||||
|
||||
### qc
|
||||
|
||||
Synopsis: qc [prompt...]
|
||||
Quick-chat wrapper around the aichat LLM CLI that defaults to the "cli"
|
||||
role - a system prompt tuned for concise, terminal-friendly output. On
|
||||
first use it installs the bundled role by symlinking
|
||||
scripts/cli-agent.md to $XDG_CONFIG_HOME/aichat/roles/cli.md (creating
|
||||
the directory if needed). Inherits every aichat flag and tab completion
|
||||
(--wraps aichat); passing --role/-r overrides the default role, so qc
|
||||
forwards to aichat unchanged. The function is only defined when aichat
|
||||
is installed. Run qc --help for aichat's full flag reference with the
|
||||
command name rewritten to qc.
|
||||
|
||||
qc "how do I list open ports on linux?"
|
||||
qc -m ollama:llama3 "explain this error"
|
||||
qc --role coder "refactor this function"
|
||||
|
||||
### superpowers
|
||||
|
||||
Synopsis: superpowers [on|off] [-g]
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
# 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
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
temperature: 0.3
|
||||
---
|
||||
You are a minimalist terminal assistant.
|
||||
Give short, direct, and straightforward answers.
|
||||
Keep line lengths under 100 characters.
|
||||
Avoid fluff, conversational filler, and extensive introductory or concluding prose.
|
||||
Be concise.
|
||||
Reference in New Issue
Block a user