Input Directives

Directives are special syntax in user input that trigger preprocessing before the message is sent to the LLM.

@Image

Embed images directly into user messages for vision-capable models:

@Image[screenshot.png] What's wrong with this UI?
@Image[/absolute/path/to/photo.jpg] Describe this image

Processing

  1. The image file is loaded from disk
  2. Compressed to fit within configured dimensions (default: 1024px max)
  3. Encoded as JPEG (default: 75% quality)
  4. Attached to the user message as an image part

Vision Check

If the current model doesn’t support vision, Aura displays a warning. The message is still sent, but the model may not be able to process the image.

Configuration

Image compression settings are configured in .aura/config/features/vision.yaml:

Setting Default Description
dimension 1024 Max pixel dimension (width or height)
quality 75 JPEG compression quality (1-100)

@Bash

Run a shell command and inject its output as context before the user message:

@Bash[git log --oneline -5] Summarize recent commits
@Bash[cat config.yaml] What does this config do?

The command output is placed in a preamble block above the message text. On error, the output is still included along with the error.

@File

Inject file contents (or a directory listing) as context before the user message:

@File[src/main.go] What does this file do?
@File[./] What's in this directory?

File contents are placed in a preamble block. Files exceeding 500 lines are truncated. For directories, a shallow listing is injected instead.

@Path

Replace the directive with a bare path (with environment variable expansion):

@Path[$HOME/.config/aura] Check this path

Resolves to the path string inline — no file reading occurs.

Autocomplete

In the TUI, typing @ triggers directive completion:

  • @Image[ shows a file picker filtered to image files (PNG, JPG, GIF, WebP, BMP)
  • Press Tab or Right Arrow to accept the completion

Input Size Guard

Messages using @Bash or @File directives that would push context usage above user_input_max_percentage (default: 80%) are rejected before entering the conversation. The error is shown in the TUI and the message is not sent.

Configure the threshold in .aura/config/features/tools.yaml:

tools:
  user_input_max_percentage: 85

Argument Splitting

Slash command arguments use quote-aware splitting (via shlex). This means you can use quoted strings with spaces as single arguments:

/assert "context_above:70 and auto" "/compact"
/assert bash:"go build ./..." "Fix the build errors."

If quote parsing fails (e.g. unmatched quotes in natural text), arguments fall back to whitespace splitting.

Supported Formats

Images and PDFs: PNG, JPG, JPEG, GIF, WebP, BMP, PDF

The @Image directive handles PDFs by extracting one image per page. For single-image analysis and text extraction, the Vision tool is also available.


Back to top

Copyright © 2026 idelchi. Distributed under the MIT License.