Cheatsheet
Quick reference for mini-a. Bookmark this page.
Installation
opack install mini-a
Alias (Optional)
# Zsh
echo 'alias mini-a="opack exec mini-a"' >> ~/.zshrc && . ~/.zshrc
If alias setup is not available, run commands as opack exec mini-a [...].
Model Setup
| Provider | Config |
|---|---|
| OpenAI | export OAF_MODEL="(type: openai, model: gpt-5-mini, key: '...')" |
export OAF_MODEL="(type: gemini, model: gemini-2.0-flash, key: '...')" |
|
| Anthropic | export OAF_MODEL="(type: anthropic, model: claude-sonnet-4-20250514, key: '...')" |
| Ollama | export OAF_MODEL="(type: ollama, model: 'llama3', url: 'http://localhost:11434')" |
| Bedrock | export OAF_MODEL="(type: bedrock, options: (region: eu-west-1, model: 'anthropic.claude-sonnet-4-20250514-v1:0'))" |
| GitHub | export OAF_MODEL="(type: openai, url: 'https://models.github.ai/inference', model: openai/gpt-5, key: $(gh auth token), apiVersion: '')" |
Running mini-a
| Command | Description |
|---|---|
mini-a |
Interactive console |
mini-a goal='...' |
Direct goal |
mini-a onport=8080 |
Web UI |
mini-a chatbotmode=true |
Chatbot mode |
mini-a modelman=true |
Model manager |
mini-a --skills |
Starter self-contained SKILL.yaml template |
Console Commands
| Command | Action |
|---|---|
/help |
Show commands |
/model [main\|lc\|val] |
Choose a model definition for a slot (/model opens an interactive slot picker) |
/models |
Show all configured model tiers (main, LC, validation) with provider and source |
/show [prefix] |
Show active parameters |
/skills [prefix] |
List discovered skills |
/compact [n] |
Compact older history, keep up to latest n exchanges (default 6) |
/summarize [n] |
Summarize older history, keep up to latest n exchanges (default 6) |
/context |
Show token/context breakdown |
/reset |
Reset conversation |
/last [md] |
Reprint last final answer (md for raw markdown) |
/save <path> |
Save last final answer to a file |
/stats [mode] [out=file.json] |
Usage statistics (summary, detailed, tools, memory, wiki) |
/wiki context |
Compact wiki overview: page count, sections, mounts, recent log |
/wiki list [prefix] |
List wiki pages (optionally filtered by prefix); add --meta for title+description |
/wiki read <page.md> |
Print a wiki page |
/wiki search <query> |
Full-text search across wiki pages and mounts |
/wiki browse [path] |
Navigate section structure |
/wiki tree [path] |
Show full folder hierarchy |
/wiki backlinks <page.md> |
Show pages linking to this page |
/wiki lint |
Run wiki health checks (broken links, orphans, stale pages) |
/wiki reindex |
Rebuild wiki search index (requires wikiaccess=rw) |
/wiki move <from.md> <to.md> |
Move page and rewrite links (requires wikiaccess=rw) |
/wiki init [section/] |
Create section index (requires wikiaccess=rw) |
/wiki mounts |
List active read-only mounts |
/wiki attach <name> [backend=fs] [root=path] |
Mount a read-only wiki |
/wiki detach <name> |
Unmount a wiki |
/rewind [n] |
Undo the last n user+assistant exchanges (default 1); cancels any active subtasks |
/dream [memory\|wiki] [plan\|apply\|reorg\|dryrun] |
Run memory and/or wiki dream consolidation pass (shown when memorych or usewiki=true is set) |
/history [n] |
Show recent user goals from conversation history |
/exit |
Exit mini-a |
/clear |
Reset conversation history and accumulated metrics |
/cls |
Clear screen |
Key Parameters
| Parameter | Default | Description |
|---|---|---|
agent |
- | Agent profile (markdown file path or inline markdown) |
agentfile |
- | Backward-compatible alias for agent |
goal |
- | The task to accomplish |
useshell |
false |
Enable shell commands |
readwrite |
false |
Allow file writes |
chatbotmode |
false |
Chat-only mode |
maxsteps |
15 |
Max agent steps |
maxcontext |
- | Max context tokens |
maxcontent |
- | Alias for maxcontext |
maxtokens |
- | Max output tokens |
deepresearch |
false |
Enable iterative research/validation cycles |
validationgoal |
- | Quality criteria for deep research |
valgoal |
- | Alias for validationgoal |
vmodel |
- | Optional dedicated validation model used in deep-research scoring |
modelval |
- | Runtime override for the validation model (OAF_VAL_MODEL format) |
maxcycles |
3 |
Max deep research cycles |
validationthreshold |
PASS |
Validation verdict/score required to stop |
persistlearnings |
true |
Carry learnings forward between cycles |
useplanning |
false |
Enable planning |
useutils |
false |
Built-in utilities; with usestdutils=true (default) exposes read, glob, grep, webfetch, etc. |
usestdutils |
true |
Expose standard tool aliases instead of legacy Mini Utils names (requires useutils=true) |
mini-a-docs |
false |
Docs-aware Mini Utils root (markdownFiles) when utilsroot is unset |
miniadocs |
false |
Alias for mini-a-docs |
useskills |
false |
Expose skill operations in Mini Utils Tool (requires useutils=true) |
skillmaxautoload |
1 |
Maximum number of high-confidence matching skills to auto-load into bounded runtime context |
skillcontextchars |
8000 |
Maximum characters read from each auto-loaded SKILL.md for runtime context |
skillmanifestchars |
1536 |
Approximate character budget for skill descriptions in the system prompt manifest |
usetools |
false |
Enable tool use |
usetoolslc |
false |
Register MCP tools only on the low-cost model; main model stays in prompt/action mode |
usejsontool |
false |
Compatibility json tool for some tool-calling models |
toollog |
- | JSSLON channel for MCP tool call logs (input/output) |
auditch |
- | Channel for agent activity audit log (tool calls, shell commands, goal events) |
debugch |
- | Channel for main-model LLM request/response payloads |
debuglcch |
- | Channel for low-cost model LLM request/response payloads |
debugfile |
- | Write debug output to a NDJSON file (implies debug=true) |
debugvalch |
- | Separate debug channel for the validation model |
outfileall |
- | Deep research only: save full cycle outputs (not only final answer) |
shelltimeout |
- | Max shell command runtime (ms) before timeout |
shellmaxbytes |
8000 |
Cap shell output size and truncate with head/tail excerpt |
shellallowpipes |
false |
Allow pipes, redirection, and shell control operators |
usestream |
false |
Stream responses |
showexecs |
false |
Show shell/exec events as separate lines in the interaction stream |
showseparator |
true |
Show a separator line between interaction events (disable for compact view) |
browsercontext |
- | Browser context configuration or true to auto-enable browser control for supported tools |
showthinking |
false |
Surface XML-tagged <thinking>...</thinking> blocks as thought logs |
promptprofile |
context-dependent | System prompt verbosity: minimal, balanced, or verbose (minimal in chatbot mode; verbose with debug=true; otherwise balanced) |
systempromptbudget |
— | Max estimated tokens for the system prompt; drops lower-priority sections when exceeded |
goalprefix |
— | Prefix automatically prepended to every goal before the agent sees it |
compressgoal |
false |
Enable automatic compression of oversized goal text before execution |
compressgoaltokens |
250 |
Estimated token threshold before goal compression is considered |
compressgoalchars |
1000 |
Character threshold before goal compression is considered |
usemath |
false |
Enable LaTeX math guidance for KaTeX rendering in web UI |
usesvg |
false |
Enable SVG generation for custom visuals and infographics |
usediagrams |
false |
Enable diagram generation |
usemermaid |
false |
Alias for usediagrams |
usecharts |
false |
Enable chart generation |
usevectors |
false |
Enable vector bundle (usesvg=true + usediagrams=true) |
mcp |
- | MCP servers to load |
mcpproxy |
false |
MCP proxy mode |
mcpproxythreshold |
0 |
Proxy auto-spill byte threshold (0 disables); large results written to temp file |
mcpproxytoon |
false |
TOON serialization for spilled proxy results |
mcpproxyallow |
- | Comma-separated allowlist of downstream tool names exposed through proxy-dispatch |
mcpproxydeny |
- | Comma-separated denylist of downstream tool names hidden from proxy-dispatch (applied after mcpproxyallow) |
mcpprogcall |
false |
Enable localhost bridge for programmatic MCP tool calls |
mcpprogcallport |
0 |
Programmatic MCP bridge port (0 auto-selects) |
mcpprogcallmaxbytes |
4096 |
Max inline bridge response size before spill |
mcpprogcallresultttl |
600 |
TTL (seconds) for spilled bridge results |
mcpprogcallbatchmax |
10 |
Max tool calls accepted per bridge batch request |
maxpromptchars |
120000 |
Max accepted prompt size for incoming web prompts |
lccontextlimit |
0 |
Escalate to main model when low-cost model context gets too large |
deescalate |
3 |
Successful steps before returning from main model to low-cost model |
modellock |
auto |
Force model tier: main, lc, or auto |
modelstrategy |
default |
Model orchestration profile: default (adaptive LC-first), advisor (LC executor + main as selective advisor), or delegate (LC runs all steps including step 0) |
advisorenable |
true |
Enable advisor consultations when modelstrategy=advisor |
advisormaxuses |
2 |
Max advisor consultations per run when modelstrategy=advisor |
advisoronrisk |
true |
Allow advisor consults on risk signals |
advisoronambiguity |
true |
Allow advisor consults on ambiguity signals |
advisoronharddecision |
true |
Allow advisor consults for hard-decision checkpoints |
advisorcooldownsteps |
2 |
Min steps between advisor consultations |
advisorbudgetratio |
0.20 |
Fraction of session token budget advisor calls may consume |
emergencyreserve |
0.10 |
Portion of advisor budget reserved for high-risk/high-value consults |
harddecision |
warn |
Hard-decision checkpoint mode: require, warn, or off |
evidencegate |
false |
Enable lightweight evidence gating for non-trivial actions |
evidencegatestrictness |
medium |
Tuning level for evidence gate heuristics: low, medium, or high |
nologtrunc |
false |
Disable truncation of long log output lines (show full content) |
usewiki |
false |
Enable wiki knowledge base |
wikiaccess |
ro |
Wiki access: ro (read-only) or rw (read-write) |
wikibackend |
fs |
Wiki backend: fs (filesystem), s3, s3fs, or es (Elasticsearch/OpenSearch) |
wikiroot |
. |
Root directory for the fs backend |
wikibucket |
- | S3 bucket name (s3 backend) |
wikimounts |
- | Read-only wiki mounts (SLON/JSON array): [{name: 'team', backend: 'fs', root: '/path'}] |
usememory |
false |
Enable the working memory subsystem |
memoryuser |
false |
Convenience preset: file-backed global + session memory at ~/.openaf-mini-a/, auto-promote facts,decisions,summaries, 30-day stale sweep |
memoryusersession |
false |
Convenience preset: enables usememory, session-only file-backed channel under ~/.openaf-mini-a/ |
memoryscope |
both |
Which store the agent reads from/writes to: session, global, or both |
memorych |
- | SLON/JSON definition of an OpenAF channel to persist the global memory store |
memorysessionch |
- | SLON/JSON definition of a channel for session memory persistence (falls back to memorych) |
memorysessionid |
<agent-id> |
Session key used to namespace session memory in the channel |
memorymaxpersection |
80 |
Maximum entries kept per section before compaction drops stale/old ones |
memorymaxentries |
500 |
Hard cap on total entries across all sections |
memorycompactevery |
8 |
How many appends trigger an automatic compaction pass |
memorydedup |
true |
Suppress near-duplicate entries (85% word-overlap fingerprint) |
memorypromote |
"" |
Auto-promote selected sections from session to global memory at session end |
memorystaledays |
0 |
Mark unconfirmed global memory entries as stale after N days |
memoryinject |
summary |
Inject memory as section counts (summary with dynamic search) or full compact entries (full) |
memorysessionheader |
— | HTTP request header name used to derive the memory session ID in web mode (e.g. X-User-Id) |
llmcomplexity |
false |
Validate medium-complexity routing with an LC model check |
metricsch |
- | SLON/JSON channel for recording periodic metrics snapshots — see Channels (note: backend options nest under options:, e.g. (name: 'mini-a-metrics', type: 'mvs', options: (file: 'metrics.db'), period: 5000)) |
usedelegation |
false |
Agent delegation |
workers |
- | Remote worker URLs for delegation |
workertags |
— | Comma-separated tags appended to the default worker skill in the AgentCard |
usea2a |
false |
Use A2A HTTP+JSON endpoints for remote worker delegation |
apitoken |
— | Bearer token for authenticating requests to the worker API server |
autodelegation |
false |
Auto-delegate noisy/oversized tool results to a summarization sub-agent (requires usedelegation=true) |
autodelegationthreshold |
8192 |
Byte size threshold that triggers auto-delegation |
autodelegationmaxperstep |
2 |
Max auto-delegations per agent step |
noisytools |
"" |
Comma-separated tool names always auto-delegated regardless of result size |
subtasks |
"" |
Pipe-separated startup scout goals submitted before the main loop |
subtasksfile |
"" |
Path to YAML/JSON file of {goal, fork, args, timeout} startup task objects |
subtaskssequential |
false |
Run startup scouts (and all subtasks) one at a time instead of in parallel |
forkstatemaxbytes |
65536 |
Max bytes of serialized fork state transmitted to a remote worker |
toolfallback |
false |
Fall back to action mode when malformed pseudo tool calls are emitted by the model |
dream |
false |
Run in standalone dream-pass mode (memory/wiki consolidation) instead of a regular session |
dryrun |
false |
Preview dream-pass changes without writing anything back |
dreamwikimode |
apply |
Wiki dream mode: lint, plan, apply, reorg |
dreammemorymode |
apply |
Memory dream mode: plan or apply |
dreamwikiapply |
false |
Required write gate for wiki apply/reorg |
dreamwikiapproval |
ask |
Reorg approval mode: auto, ask, never |
dreamwikireorg |
false |
Allow structural wiki reorg |
dreamreport |
— | Optional JSON output report path |
dreammaxsteps |
60 |
Maximum agent steps for the wiki dream pass |
maxauditrecords |
200 |
Maximum audit log entries included in the memory dream consolidation prompt |
onport |
- | Web UI port |
maxpromptchars |
120000 |
Max accepted prompt size for incoming web prompts |
ssequeuetimeout |
120 |
Web SSE stream queue timeout in seconds |
logpromptheaders |
- | Comma-separated HTTP request header names to log alongside incoming web prompts |
usehistory |
false |
Enable conversation history persistence in web mode |
useattach |
false |
Enable file attachment support in web mode |
historykeep |
false |
Keep finished web conversation history files instead of discarding them |
historypath |
- | Directory path used to store web conversation history files |
historyretention |
600 |
Web history retention window in seconds |
historykeepperiod |
- | Delete kept conversation files older than this many minutes |
historykeepcount |
- | Keep only the newest N kept conversation files |
historys3bucket |
- | S3 bucket used to mirror history files |
historys3prefix |
- | S3 key prefix for mirrored history files |
historys3url |
- | S3 endpoint URL for history mirroring |
historys3accesskey |
- | S3 access key for history mirroring |
historys3secret |
- | S3 secret key for history mirroring |
historys3region |
- | S3 region for history mirroring |
historys3useversion1 |
false |
Use S3 path-style (v1) signing for history mirroring |
historys3ignorecertcheck |
false |
Disable TLS certificate checks for history S3 access |
homedir |
— | Override the home directory used to locate the .openaf-mini-a folder |
Agent Files
Load a complete agent profile from a markdown file with YAML frontmatter:
mini-a agent=my-agent.agent.md goal="..."
mini-a --agent # Print a starter template
Supported frontmatter keys: name, description, model, capabilities, tools, constraints, rules, knowledge, youare, mini-a (parameter overrides).
agentfile= is a backward-compatible alias for agent=.
File Inclusion
mini-a useutils=true goal='@file.txt Summarize this file'
mini-a useutils=true goal='@data.csv Analyze it'
Custom Commands, Skills, Hooks
| Item | Path/Command |
|---|---|
| Custom slash template | ~/.openaf-mini-a/commands/<name>.md |
| Skill (folder) | ~/.openaf-mini-a/skills/<name>/SKILL.md |
| Skill (file) | ~/.openaf-mini-a/skills/<name>.md |
| Hooks | ~/.openaf-mini-a/hooks/*.yaml|*.yml|*.json |
| Extra command dirs | extracommands=/path/a,/path/b |
| Extra skill dirs | extraskills=/path/a,/path/b |
| Extra hook dirs | extrahooks=/path/a,/path/b |
| Alternate config base | homedir=/opt/shared/mini-a-config |
| Run one template | mini-a exec="/<name> arg1 arg2" |
| List skills | /skills |
Mode Presets
| Mode | Enables |
|---|---|
shell |
Read-only shell access (useshell=true) |
shellrw |
Shell + write access + non-interactive shell approvals |
utils |
Mini Utils Tool preset (useutils=true mini-a-docs=true usetools=true) |
chatbot |
Chat-only mode |
internet |
Internet-focused MCP/tool mode with docs-aware utils |
news |
Internet + RSS news-focused MCP mode |
poweruser |
High-capability preset with shell, utils, proxy tuning, and docs-aware defaults |
web |
Browser UI preset with MCP tools enabled |
webfull |
Full web UI preset with history, attachments, proxying, and richer rendering modes |
Custom modes: create ~/.openaf-mini-a_modes.yaml with a modes: map. Custom definitions are merged with built-ins and override duplicates.
# ~/.openaf-mini-a_modes.yaml
modes:
mypreset:
useshell: true
readwrite: true
maxsteps: 30
mini-a mode=mypreset goal='your goal here'
Dual-Model Setup
export OAF_MODEL="(type: openai, model: gpt-5-mini, key: '...')"
export OAF_LC_MODEL="(type: openai, model: gpt-5-nano, key: '...')"
export OAF_VAL_MODEL="(type: openai, model: gpt-5-mini, key: '...')"
# Saves 50-70% on token costs
# Optional prompt-mode controls (Gemini main auto-enables when unset)
export OAF_MINI_A_NOJSONPROMPT=true
export OAF_MINI_A_LCNOJSONPROMPT=true
Full Debug
Capture everything — agent activity, main-model payloads, and low-cost model payloads — to separate JSON files:
mini-a goal="your goal" \
auditch="(type: file, options: (file: audit.json))" \
debugch="(type: file, options: (file: debug.json))" \
debuglcch="(type: file, options: (file: debuglc.json))"
Add debugvalch when using a validation model (deepresearch=true):
mini-a goal="research task" deepresearch=true \
auditch="(type: file, options: (file: audit.json))" \
debugch="(type: file, options: (file: debug.json))" \
debuglcch="(type: file, options: (file: debuglc.json))" \
debugvalch="(type: file, options: (file: debugval.json))"
Config Home (homedir)
By default Mini-A reads ~/.openaf-mini-a. Override with homedir=:
# Shared team config
mini-a homedir=/opt/shared/mini-a-config goal="..."
# Per-project isolated config
mini-a homedir=./my-project-config goal="..."
# Shared base + extra project skills
mini-a homedir=/opt/shared/mini-a-config extraskills=./project-skills goal="..."
Docker
# Interactive
docker run -it -e OAF_MODEL="(type: openai, model: gpt-5-mini, key: '...')" openaf/mini-a
# Web UI
docker run -p 8080:8080 -e OAF_MODEL="(type: openai, model: gpt-5-mini, key: '...')" openaf/mini-a onport=8080
Common MCP Servers
| Server | Tools | Example |
|---|---|---|
mcp-time |
Current time, timezone conversion | mcp="(cmd: 'ojob mcps/mcp-time.yaml')" |
mcp-db |
SQL queries, schema inspection | mcp="(cmd: 'ojob mcps/mcp-db.yaml')" |
mcp-web |
Web search, fetch pages | mcp="(cmd: 'ojob mcps/mcp-web.yaml')" |
mcp-file |
File operations | mcp="(cmd: 'ojob mcps/mcp-file.yaml')" |
mcp-shell |
Shell command execution | mcp="(cmd: 'ojob mcps/mcp-shell.yaml')" |