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
- The image file is loaded from disk
- Compressed to fit within configured dimensions (default: 1024px max)
- Encoded as JPEG (default: 75% quality)
- 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
TaborRight Arrowto 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.