Introduction
Vibe Action is a command router that executes shell commands and LLM prompts via simple YAML pipelines. Just say what you want — it figures out the rest.
Why Vibe Action
- ⚡ One command = complex pipeline — chain shell scripts and LLM calls into a single action
- 🔗 Tag system — connect steps via
{tag}references with automatic dependency graph - 🤖 Batch LLM — parallel execution across all cluster nodes
- ✅ Type-safe — validate outputs with types and regex
- 🔐 Confirmations — ask before executing dangerous commands
- 🎯 CLI-first — no browser, no context switching. Everything in the terminal
- 🔒 Secure — runs locally on your hardware
- 🆓 Free — open source, local models via Ollama. No subscriptions
- 📦 Modular — share YAML files like Homebrew formulas
- 🦀 Fast — built in Rust
Key Concepts
YAML Pipelines
Describe your workflow in YAML, not code:
name: extract
about: Extract matching lines from text and logs
check: null
clipboard: false
args:
- name: file
short: f
expect: string
help: Path to the log or text file
default: null
- name: query
short: q
expect: string
help: Extraction criteria (e.g., 'find all errors')
default: null
actions:
- tag: tag_lines
type: cmd
expect: list<string>
check: null
confirm: false
action: cat {file}
- tag: tag_content
type: llm
expect: string
check: null
confirm: false
action: |
[Task]
If the line matches the query — output the EXACT line unchanged.
If it does not match — output only a single dash: "-"
Do NOT skip lines. Process every line.
[Query]
{query}
[Line]
{tag_lines}
- tag: tag_clean
type: value
expect: string
check: null
confirm: false
action: '{tag_content|trim:-}'
- tag: tag_extract
type: value
expect: string
check: null
confirm: false
action: '{tag_clean|join:uniq}'
How It Works
- You write a YAML file describing your workflow — steps, types, dependencies
- The engine parses it and builds a dependency graph from
{tag}references - Steps execute in order — shell commands run locally, LLM prompts go to your cluster
- Results are validated against expected types and optional regex patterns
- Final output is displayed on screen and copied to clipboard if enabled