Add completion script for chatblade
This commit is contained in:
parent
ab99231c26
commit
28f602902e
|
@ -0,0 +1,57 @@
|
|||
#compdef chatblade
|
||||
# ------------------------------------------------------------------------------
|
||||
# Description
|
||||
# -----------
|
||||
#
|
||||
# Completion script for chatblade (https://github.com/npiv/chatblade)
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
# Authors
|
||||
# -------
|
||||
#
|
||||
# * Johannes Bittner (https://github.com/johannes87)
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
_chatblade() {
|
||||
local -a args
|
||||
|
||||
args+=(
|
||||
'(-h --help)'{-h,--help}'[show this help message and exit]'
|
||||
'--openai-api-key[the OpenAI API key can also be set as env variable OPENAI_API_KEY]'
|
||||
'--temperature[temperature (openai setting)]'
|
||||
'(-c --chat-gpt)'{-c,--chat-gpt}'[chat GPT model 3.5/4 shorthand or full qualified model name, can also be set via e
|
||||
variable OPENAI_API_MODEL]'
|
||||
'(-i --interactive)'{-i,--interactive}'[start an interactive chat session. This will implicitly continue the
|
||||
conversation]'
|
||||
'(-s --stream)'{-s,--stream}'[Stream the incoming text to the terminal]'
|
||||
'(-t --tokens)'{-t,--tokens}'[display what *would* be sent, how many tokens, and estimated costs]'
|
||||
'(-p --prompt-file)'{-p,--prompt-file}'[prompt name - will load the prompt with that name at ~/.config/chatblade/nam
|
||||
or a path to a file]:prompt file:_files'
|
||||
'(-e --extract)'{-e,--extract}'[extract content from response if possible (either json or code block)]'
|
||||
'(-r --raw)'{-r,--raw}'[print session as pure text, dont pretty print or format]'
|
||||
'(-n --no-format)'{-n,--no-format}'[do not add pretty print formatting to output]'
|
||||
'(-o --only)'{-o,--only}'[Only display the response, omit query]'
|
||||
'--theme[Set the theme for syntax highlighting see https://pygments.org/styles/, can also be set with
|
||||
CHATBLADE_THEME]:theme:_values "theme" default emacs friendly manni monokai'
|
||||
'(-l --last)'{-l,--last}'[alias for -S last, the default session if none is specified]'
|
||||
'(-S --session)'{-S,--session}'[initiate or continue named session]:session:->sessions'
|
||||
'--session-list[list sessions]'
|
||||
'--session-path[show path to session file]'
|
||||
'--session-dump[dump session to stdout]'
|
||||
'--session-delete[delete session]'
|
||||
'--session-rename[rename session]:new session:->sessions'
|
||||
)
|
||||
|
||||
case $state in
|
||||
(sessions)
|
||||
local -a sessions
|
||||
sessions=("${(@f)$(chatblade --session-list)}")
|
||||
_describe 'session' sessions
|
||||
;;
|
||||
esac
|
||||
|
||||
_arguments -s $args
|
||||
}
|
||||
|
||||
_chatblade
|
Loading…
Reference in New Issue