Parameters
# THIS IS NOT REALLY A "PRESET"
# COPY THE CONTENTS OF THIS TO:
# ~/.config/fish/completions/lms.fish
complete -c lms -e
complete -c lms -f
function __lms_models
lms ls --llm --json | jq -r .[].modelKey | sort
end
# -----------------
# top-level
# -----------------
#complete -c lms -s h -l help
#complete -c lms -s v -l version
complete -c lms -n '__fish_use_subcommand' -s h -l help
complete -c lms -n '__fish_use_subcommand' -s v -l version
complete -c lms -f -n '__fish_use_subcommand' -a chat -d "Start an interactive chat"
complete -c lms -f -n '__fish_use_subcommand' -a get -d "Find new models"
complete -c lms -f -n '__fish_use_subcommand' -a load -d "Load model"
complete -c lms -f -n '__fish_use_subcommand' -a unload -d "Unload models"
complete -c lms -f -n '__fish_use_subcommand' -a ls -d "List downloaded models"
complete -c lms -f -n '__fish_use_subcommand' -a ps -d "List loaded models"
complete -c lms -f -n '__fish_use_subcommand' -a import -d "Import a model"
complete -c lms -f -n '__fish_use_subcommand' -a server -d "Manage the local server"
complete -c lms -f -n '__fish_use_subcommand' -a log -d "Log incoming & outgoing messages"
complete -c lms -f -n '__fish_use_subcommand' -a runtime -d "Manage & update inference runtimes"
complete -c lms -f -n '__fish_use_subcommand' -a clone -d "Clone an artifact from LMS Hub"
complete -c lms -f -n '__fish_use_subcommand' -a push -d "Uploads artifact (cwd) to LMS Hub"
complete -c lms -f -n '__fish_use_subcommand' -a dev -d "Starts a plugin dev server in the cwd"
complete -c lms -f -n '__fish_use_subcommand' -a login -d "Authenticate with LMS Hub"
complete -c lms -f -n '__fish_use_subcommand' -a create -d "Create new project w/ scaffolding"
complete -c lms -f -n '__fish_use_subcommand' -a flags -d "Set or get experiment flags"
complete -c lms -f -n '__fish_use_subcommand' -a status -d "Prints the status of LM Studio"
complete -c lms -f -n '__fish_use_subcommand' -a daemon -d "Manage the LM Studio daemon"
complete -c lms -f -n '__fish_use_subcommand' -a bootstrap -d "Bootstrap the CLI"
complete -c lms -f -n '__fish_use_subcommand' -a version -d "Prints the version of the CLI"
complete -c lms -n '__fish_seen_subcommand_from bootstrap' -s y -l yes -r -d "Skip confirmation prompts"
complete -c lms -n '__fish_seen_subcommand_from flags' -l json -r -d "Outputs the result in JSON format to stdout"
complete -c lms -n '__fish_seen_subcommand_from version' -l json -r -d "Prints the version in JSON format"
# -----------------
# daemon
# -----------------
complete -c lms -n '__fish_seen_subcommand_from daemon' -a up -d "Manually start the llmster daemon"
complete -c lms -n '__fish_seen_subcommand_from daemon' -a down -d "Manually shutdown the llmster daemon"
complete -c lms -n '__fish_seen_subcommand_from daemon' -a status -s "Check the status of the LM Studio daemon"
complete -c lms -n '__fish_seen_subcommand_from daemon' -a update -d "Update the llmster daemon"
# -----------------
# chat
# -----------------
complete -c lms -n '__fish_seen_subcommand_from chat' -a '(__lms_models)'
complete -c lms -n '__fish_seen_subcommand_from chat' -s p -l prompt -r -d "Print response to stdout and quit"
complete -c lms -n '__fish_seen_subcommand_from chat' -s s -l system-prompt -r -d "Custom system prompt to use for the chat"
complete -c lms -n '__fish_seen_subcommand_from chat' -l stats -d "Display detailed prediction statistics after each response"
complete -c lms -n '__fish_seen_subcommand_from chat' -l ttl -r -d "Time (in seconds) to keep the model loaded after the chat ends"
complete -c lms -n '__fish_seen_subcommand_from chat' -l dont-fetch-catalog -d "Skip fetching the model catalog"
complete -c lms -n '__fish_seen_subcommand_from chat' -s y -l yes -d "Assume 'yes' as answer to all CLI prompts"
# -----------------
# get
# -----------------
complete -c lms -n '__fish_seen_subcommand_from get' -l mlx -d "Include MLX models in search results"
complete -c lms -n '__fish_seen_subcommand_from get' -l gguf -d "Include GGUF models in search results"
complete -c lms -n '__fish_seen_subcommand_from get' -s n -l limit -r -d "Limit the number of model options"
complete -c lms -n '__fish_seen_subcommand_from get' -l always-show-all-results -d "Prompt even when exact model match exists"
complete -c lms -n '__fish_seen_subcommand_from get' -s a -l always-show-download-options -d "Always prompt to choose a download option"
complete -c lms -n '__fish_seen_subcommand_from get' -s y -l yes -d "Automatically approve all prompts"
# -----------------
# load
# -----------------
complete -c lms -n '__fish_seen_subcommand_from load' -a '(__lms_models)'
complete -c lms -n '__fish_seen_subcommand_from load' -l gpu -r -d 'GPU offload ratio: "off", "max", or a number between 0 and 1'
complete -c lms -n '__fish_seen_subcommand_from load' -s c -l context-length -r -d "Number of tokens to consider as context"
complete -c lms -n '__fish_seen_subcommand_from load' -l ttl -r -d "Unload when idle for this many seconds"
complete -c lms -n '__fish_seen_subcommand_from load' -l exact -d "Fail if path does not match a model exactly"
complete -c lms -n '__fish_seen_subcommand_from load' -l identifier -r -d "Identifier to assign to the loaded model"
complete -c lms -n '__fish_seen_subcommand_from load' -l estimate-only -d "Calculate resource estimate only; do not load"
complete -c lms -n '__fish_seen_subcommand_from load' -s y -l yes -d "Automatically approve all prompts"
# -----------------
# unload
# -----------------
complete -c lms -n '__fish_seen_subcommand_from unload' -s a -l all -d "Unload all models"
# -----------------
# ls
# -----------------
complete -c lms -n '__fish_seen_subcommand_from ls' -l llm -d "Show only LLM models"
complete -c lms -n '__fish_seen_subcommand_from ls' -l embedding -d "Show only embedding models"
complete -c lms -n '__fish_seen_subcommand_from ls' -l detailed -d "[Deprecated] Show detailed grouped view"
complete -c lms -n '__fish_seen_subcommand_from ls' -l variants -d "Show variants for all models"
complete -c lms -n '__fish_seen_subcommand_from ls' -l json -d "Output in JSON format to stdout"
# -----------------
# ps
# -----------------
complete -c lms -n '__fish_seen_subcommand_from ps' -l json -d "Output in JSON format to stdout"
# -----------------
# import
# -----------------
complete -c lms -n '__fish_seen_subcommand_from import' -s y -l yes -d "Automatically approve all prompts"
complete -c lms -n '__fish_seen_subcommand_from import' -l user-repo -r -d 'Manually provide "user/repo"'
complete -c lms -n '__fish_seen_subcommand_from import' -s c -l copy -d "Copy the file instead of moving it"
complete -c lms -n '__fish_seen_subcommand_from import' -s L -l hard-link -d "Create a hard link instead of moving or copying"
complete -c lms -n '__fish_seen_subcommand_from import' -s l -l symbolic-link -d "Create a symbolic link instead of moving or copying"
complete -c lms -n '__fish_seen_subcommand_from import' -l dry-run -d "Show what would be done; do not import"
# -----------------
# server
# -----------------
complete -c lms -n '__fish_seen_subcommand_from server' -a start
complete -c lms -n '__fish_seen_subcommand_from server' -a stop
complete -c lms -n '__fish_seen_subcommand_from server' -a status
complete -c lms -n '__fish_seen_subcommand_from server' -a help
# -----------------
# log
# -----------------
complete -c lms -n '__fish_seen_subcommand_from log' -a stream
complete -c lms -n '__fish_seen_subcommand_from log' -a help
# -----------------
# runtime
# -----------------
complete -c lms -n '__fish_seen_subcommand_from runtime' -a ls
complete -c lms -n '__fish_seen_subcommand_from runtime' -a select
complete -c lms -n '__fish_seen_subcommand_from runtime' -a remove
complete -c lms -n '__fish_seen_subcommand_from runtime' -a update
complete -c lms -n '__fish_seen_subcommand_from runtime' -a get
complete -c lms -n '__fish_seen_subcommand_from runtime' -a help
# -----------------
# push
# -----------------
complete -c lms -n '__fish_seen_subcommand_from push' -l description -r -d "Overwrite artifact description"
complete -c lms -n '__fish_seen_subcommand_from push' -l overrides -r -d "JSON overrides string"
complete -c lms -n '__fish_seen_subcommand_from push' -l write-revision -d "Write revision number to manifest.json"
complete -c lms -n '__fish_seen_subcommand_from push' -l private -d "Mark artifact as private on first publish"
complete -c lms -n '__fish_seen_subcommand_from push' -s y -l yes -d "Automatically approve all prompts"
# -----------------
# dev
# -----------------
complete -c lms -n '__fish_seen_subcommand_from dev' -s i -l install -d "Install plugin instead of starting dev server"
complete -c lms -n '__fish_seen_subcommand_from dev' -s y -l yes -d "Automatically approve and overwrite with --install"
complete -c lms -n '__fish_seen_subcommand_from dev' -l no-notify -d 'Suppress "Plugin started" notification'
# -----------------
# login
# -----------------
complete -c lms -n '__fish_seen_subcommand_from login' -l with-pre-authenticated-keys -d "Authenticate using pre-authenticated keys"
complete -c lms -n '__fish_seen_subcommand_from login' -l key-id -r -d "Key ID (with pre-auth keys)"
complete -c lms -n '__fish_seen_subcommand_from login' -l public-key -r -d "Public key (with pre-auth keys)"
complete -c lms -n '__fish_seen_subcommand_from login' -l private-key -r -d "Private key (with pre-auth keys)"