<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="assets/css/main.css" />
<title>Vibe Action</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta property="og:title" content="Vibe Action" />
<meta property="og:description" content="Command router for shell and LLM tasks" />
<link rel="icon" href="assets/images/favicon.png" />
</head>
<body>
<div class="PageIndex">
<div class="Header">
<div class="Content">
<div class="block">
<div>
<a href="/" class="title">Vibe Action</a>
</div>
<div>
<a class="Btn" href="docs/introduction.html">Documentation</a>
</div>
</div>
</div>
</div>
<div class="Body">
<div class="Content">
<div class="block1">
<div class="block">
<div class="title">
Vibe
<br />
<span class="hl">Action</span>
</div>
<div class="version">v0.2.2</div>
<div class="subtitle">Command router for shell and LLM tasks</div>
<div class="text">
Execute shell commands and LLM prompts via simple YAML files. Define steps, connect
them via tags, and batch LLM calls across your cluster.
</div>
<a class="Btn BtnBlack" href="docs/getting-started.html">Get Started</a>
</div>
<div class="block">
<pre class="preview">
<span class="comment"># Quick Start</span>
<span class="comment">## 1. Install Ollama (or a cloud provider)</span>
<span class="comment">## 2. Install Vibe Action</span>
<span class="command"><span class="app">cargo</span> install vibe-action</span>
<span class="comment">## 3. AI-powered commit</span>
<span class="command"><span class="app">vibe-action</span> commit</span>
<span class="comment">## 4. Describe a screenshot</span>
<span class="command"><span class="app">vibe-action</span> describe</span>
<span class="comment">## 5. Deep translation</span>
<span class="command"><span class="app">vibe-action</span> translate-deep</span> <span class="path">README.md</span></pre>
</div>
</div>
</div>
</div>
<div class="Stats">
<div class="Content">
<div class="block">
<div><span class="v">20+</span>actions</div>
<div><span class="v">20+</span>modifiers</div>
<div><span class="v">5</span>LLM providers</div>
<div><span class="v">2</span>IDE plugins</div>
</div>
</div>
</div>
<div class="Section">
<div class="Content">
<div class="kicker">Execution</div>
<div class="h2">Turn any input into a running pipeline.</div>
<div class="Steps">
<div class="Step teal">
<div class="num">01</div>
<div class="name">selection</div>
<div class="desc">
Text, file, image or interactive prompt — from the CLI or an IDE.
</div>
</div>
<div class="Arrow">→</div>
<div class="Step">
<div class="num">02</div>
<div class="name">shell</div>
<div class="desc">Shell commands run locally with live terminal output.</div>
</div>
<div class="Arrow">→</div>
<div class="Step">
<div class="num">03</div>
<div class="name">llm</div>
<div class="desc">
tiny → vision tiers. Ollama locally, or cloud API. Parallel across the cluster.
</div>
</div>
<div class="Arrow">→</div>
<div class="Step orange">
<div class="num">04</div>
<div class="name">output</div>
<div class="desc">
Result prints to the terminal, copies to clipboard or fires a notification.
</div>
</div>
</div>
</div>
</div>
<div class="Section">
<div class="Content">
<div class="kicker">Why Vibe Action</div>
<div class="h2">CLI-first. No browser, no context switching.</div>
<div class="Grid">
<div class="Card">
<div class="num">01</div>
<div class="name">Tag system</div>
<div class="desc">
Steps connect via {tag} references. The engine builds a dependency graph and
executes in topological order.
</div>
</div>
<div class="Card">
<div class="num">02</div>
<div class="name">Modifiers</div>
<div class="desc">
20+ inline transformations: trim, uniq, join, ast, load, clipboard and more.
Arguments: {tag|trim:-}, {tag|sort:desc}.
</div>
</div>
<div class="Card">
<div class="num">03</div>
<div class="name">When/Then</div>
<div class="desc">
Conditional execution in pure YAML. The first matching branch wins — no shell
scripting.
</div>
</div>
<div class="Card">
<div class="num">04</div>
<div class="name">System tags</div>
<div class="desc">
13 built-in tags for environment context: user, OS, pwd, date and more.
</div>
</div>
<div class="Card">
<div class="num">05</div>
<div class="name">Vision & Fetch</div>
<div class="desc">
Describe screenshots, read images from URL or clipboard, load web pages and PDFs.
</div>
</div>
<div class="Card">
<div class="num">06</div>
<div class="name">Action cache</div>
<div class="desc">
Startup loads a validated snapshot instead of re-parsing YAML — the CLI responds
instantly.
</div>
</div>
</div>
</div>
</div>
<div class="Section">
<div class="Content">
<div class="Split">
<div>
<div class="kicker">YAML Actions</div>
<div class="h2">Describe actions in YAML, not code.</div>
<div class="How">
<div class="row">
<span>01</span>Write a YAML file with steps, types and dependencies.
</div>
<div class="row">
<span>02</span>Graph. The engine resolves {tag} references into topological order.
</div>
<div class="row">
<span>03</span>Run. Shell commands locally, LLM prompts on your cluster.
</div>
<div class="row">
<span>04</span>Validate with expect and check. Replace selection, copy to
clipboard, or show a dialog.
</div>
</div>
</div>
<div>
<pre class="preview">
<span class="app">version</span>: <span class="command">0.0.1</span>
<span class="app">name</span>: <span class="command">extract</span>
<span class="app">about</span>: <span class="command">Extract matching lines from logs</span>
<span class="app">api</span>:
<span class="app">output</span>: <span class="command">replace</span>
<span class="app">input</span>: <span class="command">query|prompt</span>
<span class="app">actions</span>:
- <span class="app">tag</span>: <span class="command">tag_lines</span>
<span class="app">run</span>: <span class="command">cmd</span>
<span class="app">expect</span>: <span class="command">list</span>
<span class="app">action</span>: <span class="command">cat</span> <span class="path">{query|file_path}</span>
- <span class="app">tag</span>: <span class="command">tag_content</span>
<span class="app">run</span>: <span class="command">small</span>
<span class="app">action</span>: <span class="command">Match lines against</span> <span class="path">{query|prompt}</span>
- <span class="app">tag</span>: <span class="command">tag_extract</span>
<span class="app">run</span>: <span class="command">value</span>
<span class="app">action</span>: <span class="path">{tag_content|trim:-|uniq|join}</span></pre>
</div>
</div>
</div>
</div>
<div class="Section">
<div class="Content">
<div class="kicker">Docs</div>
<div class="h2">Dig deeper.</div>
<div class="Docs">
<div class="Card">
<div class="name">General</div>
<a href="docs/introduction.html">Introduction</a>
<a href="docs/getting-started.html">Quick Start</a>
<a href="docs/vibe-action-cross.html">IDE Integration</a>
</div>
<div class="Card">
<div class="name">YAML Actions</div>
<a href="docs/action-structure.html">Action Structure</a>
<a href="docs/query-tag.html">Query Tag</a>
<a href="docs/tag-system.html">Tag System</a>
<a href="docs/modifiers.html">Modifiers</a>
<a href="docs/system-tags.html">System Tags</a>
<a href="docs/built-in-actions.html">Built-in Actions</a>
<a href="docs/custom-actions.html">Custom Actions</a>
</div>
<div class="Card">
<div class="name">Reference</div>
<a href="docs/configuration.html">Configuration</a>
<a href="docs/cli-reference.html">CLI Reference</a>
</div>
</div>
</div>
</div>
<div class="Footer">
<div class="Content">
<div class="block">
<div>
<div class="title">© 2026 Vibe Action</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>