id = "tmuxai"
name = "TmuxAI"
homepage = "https://github.com/alvinunreal/tmuxai"
description = "An AI-powered terminal assistant for tmux"
executables = ["tmuxai"]
[dotfiles]
paths = ["[configHome]/tmuxai/config.yaml"]
secret = []
[[dotfiles.secret_paths]]
file = "[configHome]/tmuxai/config.yaml"
format = "yaml"
match = { key_path = ["models.*.api_key"] }
[commands]
format = 1
label = "Start TmuxAI"
description = "Start TmuxAI with an optional first message, task file, model, knowledge bases and explicit tmux panes. Yolo mode is left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "readme"
kind = "manual"
url = "https://github.com/alvinunreal/tmuxai"
revision = "2026-10-27"
evidence = """
tmuxai your initial message
tmuxai -f path/to/your_task.txt
tmuxai --model gpt4 "Write a Go function"
tmuxai --kb docker-workflows,git-conventions
tmuxai --exec-pane %3 --read-panes %1,%2
tmuxai --model gpt4 --kb docker-workflows --exec-pane %3 --read-panes %1,%2 "Debug this Docker issue"
"""
[[commands.field]]
id = "message"
label = "Initial message"
type = "string"
position = 0
sources = ["readme"]
[[commands.field]]
id = "task_file"
label = "Task file"
type = "path"
path = { kind = "file", role = "input" }
option = ["-f"]
sources = ["readme"]
[[commands.field]]
id = "model"
label = "Model configuration"
description = "Name of a model configuration from your config."
type = "string"
option = ["--model"]
sources = ["readme"]
[[commands.field]]
id = "kb"
label = "Knowledge bases"
description = "Comma-separated names."
type = "string"
option = ["--kb"]
sources = ["readme"]
[[commands.field]]
id = "exec_pane"
label = "Exec pane ID"
description = "tmux pane ID such as %3."
type = "string"
option = ["--exec-pane"]
sources = ["readme"]
[[commands.field]]
id = "read_panes"
label = "Read panes"
description = "Comma-separated tmux pane IDs."
type = "string"
option = ["--read-panes"]
sources = ["readme"]
[[commands.task]]
id = "ask"
label = "Start with a message"
fields = ["message", "model"]
required = ["message"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["message", "task_file", "model"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["kb", "exec_pane", "read_panes"]