Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Action Structure

Each action is a YAML file in ~/.vibe-action/actions/. The engine loads all .yaml files recursively and builds a CLI command for each one.

Minimal Action

name: hello
about: Say hello
check: null
clipboard: false
args: []
actions:
  - tag: tag_hello
    type: value
    expect: string
    check: null
    confirm: false
    action: Hello, World!
$ vibe-action action hello
info: completed in 0.01s
── success ──
Hello, World!
─────────────

Full Structure

name: my-action # CLI subcommand name
about: Description # Help text
check: '^[a-z]+$' # Optional: regex validation for final output
clipboard: true # Optional: copy result to clipboard
args: # Optional: CLI arguments
  - name: input
    short: i
    expect: string
    help: Input text
    default: 'default' # Optional: makes argument non-required
actions: # Pipeline steps (executed in order of dependencies)
  - tag: tag_step1
    type: cmd # cmd | llm | value
    expect: string # void | bool | number | string | list<T>
    check: '^.+$' # Optional: regex validation for this step
    confirm: true # Optional: ask before executing
    action: echo "Hello {input}!"

Action Types

TypeDescription
cmdShell command executed in terminal
llmPrompt sent to LLM cluster
valueStatic string, no execution

Expect Types

TypeDescription
voidNo output
booltrue/false, yes/no, да/нет, 是/否
numberInteger or float
stringText (default)
list<string>List of strings, triggers loop

Execution Order

Actions are sorted by their {tag} dependencies, not by their order in the file. The engine builds a dependency graph and executes in topological order.

actions:
  - tag: tag_files # 1st — no dependencies
    type: cmd
    action: find . -name '*.rs'

  - tag: tag_summary # 2nd — depends on tag_files
    type: llm
    action: Summarize - {tag_files}

Check (Regex Validation)

check validates output against a regex pattern. If the output doesn’t match — the step fails with an error.

- tag: tag_files
  type: cmd
  check: '.+' # Must be non-empty
  action: git diff --name-only

Confirm

confirm: true asks the user for approval before executing. Useful for dangerous commands.

- tag: tag_commit
  type: cmd
  confirm: true
  action: git commit -m "feat: something"