Vibe
Action
v0.3.1
Command router for shell and LLM tasks
Execute shell commands and LLM prompts via simple YAML files. Define steps, connect them via tags, and batch LLM calls across your cluster.
Get Started
# Quick Start

## 1. Install Ollama (or a cloud provider)

## 2. Install Vibe Action
cargo install vibe-action

## 3. AI-powered commit
vibe-action project commit

## 4. Describe a screenshot
vibe-action vision describe

## 5. Translate a file
vibe-action text translate README.md
19actions
30+operators
5LLM providers
2IDE plugins
Execution
Turn any input into a running pipeline.
01
selection
Text, file, image or interactive prompt — from the CLI or an IDE.
→
02
shell
Shell commands run locally with live terminal output.
→
03
llm
tiny → vision tiers. Ollama locally, or cloud API. Parallel across the cluster.
→
04
output
Result prints to the terminal, copies to clipboard or fires a notification.
Why Vibe Action
CLI-first. No browser, no context switching.
01
Tag system
Steps connect via tag references. The engine builds a dependency graph and executes in topological order.
02
Operators
30+ operators chained in mods: fetch, text, ast, trim, uniq, join and more. Read, inspect, transform and write.
03
Guards
Conditional execution in pure YAML: when skips, fail bails, reg validates output. No shell scripting.
04
System tags
20+ built-in tags for environment context: user, OS, pwd, date and more.
05
Vision & Fetch
Describe screenshots, read images from URL or clipboard, load web pages and PDFs.
06
Action cache
Startup loads a validated snapshot instead of re-parsing YAML — the CLI responds instantly.
YAML Actions
Describe actions in YAML, not code.
01Write a YAML file with steps, data sources and guards.
02Graph. The engine resolves tag references into topological order.
03Run. Shell commands locally, LLM prompts on your cluster.
04Validate with reg. Replace selection, copy to clipboard, or show a dialog.
version: 0.0.2
name: extract
about: Extract matching lines from logs
api:
  output: dialog
  input: query_prompt
actions:
  - tag: llm_log
    run: large
    val:
      - name: search
        data: query_prompt
      - name: line
        data: arg_file
        mods: fetch|text
        each: true
    action: Match line against {search}
  - tag: out_log
    run: value
    val:
      - name: result
        data: llm_log
        mods: split|filter:eq:-|uniq|join
    action: {result}