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: '...')"
Google 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'))"
Bedrock GPT-5.6 Luna export OAF_MODEL="(type: bedrock, options: (region: eu-west-1, model: global.openai.gpt-5.6-luna), timeout: 900000)"
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
# Authenticated Advanced console; prints/opens a generated-token access URL
mini-a onport=8888 webadvanced=true useattach=true usestream=true
# Standalone wiki operations manager (read-only inspection)
mini-a wikiman=true wikiroot=./wiki
# Model-free auto-maintenance preview
mini-a dream=true dreammode=wiki dreamwikimode=auto usewiki=true wikiroot=./wiki dryrun=true

See Advanced web, attachments and local history.

Console Commands

Command Action
/help Show commands
/model [main\|lc\|val\|dec] Choose a model definition for a slot (/model opens an interactive slot picker)
/models Show configured main, LC, validation and decision slots with provider and source
/show [prefix] Show active parameters
/set <key> <value> Update a parameter (use """ for multi-line values)
/toggle <key> Toggle a boolean parameter
/unset <key> Clear a parameter
/reset Restore default parameters
/restore Restore a saved conversation like resume=true
/skills [prefix] List discovered skills
/skills search\|recommend <text> Search a virtual skill library (with useskillswiki=true)
/skills open\|read\|related\|compose <ref> Inspect, read a section of, or relate a library skill
/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
/context vm Show History VM object state and token-delta diagnostics
/last [md] Reprint last final answer (md for raw markdown)
/save <path> Save last final answer to a file
/edit [last] Compose the next goal (or revise the previous goal) in the configured editor
/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
/ingest <source> [section] [dryrun] [force] Distil a docs folder, repository, or URL into wiki pages (requires wikiaccess=rw)
/ingest recovery Inspect pending journals; resume <id> or explicitly discard <id>
/absorb plan <spec> Plan selected knowledge from local wikis; then show, apply, status, resume, or delete
/wiki compact [offline=true] Preview local V2 cleanup; apply only after stopping other readers/writers
/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 0 Max context tokens; 0 leaves proactive compaction off (set e.g. 50000 for long sessions)
maxcontent - Alias for maxcontext
contextguard false Context and tool-output guardrails when maxcontext is unset
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 exposes read, glob, grep, webfetch, etc.
usestdutils false Expose standard tool aliases instead of legacy Mini Utils names (requires useutils=true; poweruser enables it)
mini-a-docs false Docs-aware Mini Utils root (markdownFiles) when utilsroot is unset
miniadocs false Alias for mini-a-docs
useskills false Expose local skill operations; registers only skills when useutils=false
skillmaxautoload 1 Maximum number of high-confidence matching skills to auto-load into bounded runtime context
skillcontextchars 8000 Initial local-skill page ceiling; complete sections load progressively
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 JSON action loop; disables native tools. Auto-enabled for GPT-OSS or tools + proxy unless explicitly overridden
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
debugdecch - Decision request/response debug channel or native file path
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
useeditor false Open every console goal in editor, $EDITOR, or vi before submitting
editor - Editor command used by useeditor and /edit (supports quoted arguments, e.g. "vim -f")
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 Select model tier for normal steps: main, lc, or auto (recovery can still use the main model)
lcjsonretries 1 Extra same-step low-cost retries on invalid reply JSON before main-model fallback (0 disables)
lcreplytool false Capture-only submit_reply MCP tool for LC recovery (OpenAI-compatible and Ollama adapters)
orchestration manual auto selects planning/advisor/evidence-gate controls from deterministic complexity and risk signals
modeldec / usedecide unset Decision model override; explicit true enables gates/utility, false disables calls
fileallow unset Built-in local file/directory allowlist; [] denies covered access
skillsautosearch conditional Automatic selection; defaults on only with explicit usedecide and a decision model
skillsautolimit 5 Combined local/wiki candidate limit
skillsmaxloaded / skillsmaxchars 3 / 12000 Shared distinct-skill/guidance budgets
contractfile / contractargs unset / empty Explicit supervised contract and positional inputs
savecontract / reusecontract false Independent accepted-contract publication/discovery opt-ins
ingestlayout flat New mappings: flat names or sanitized source folders
modelstrategy default default, advisor, delegate, supervised, or auto
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)
noagentsmd false Disable automatic discovery and injection of the nearest AGENTS.md file as a rule
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 . Filesystem directory or read-only local .zip/.okt archive for the fs backend
wikibucket - S3 bucket name (s3 backend)
wikimounts - Read-only wiki mounts (SLON/JSON array): [{name: 'team', backend: 'fs', root: '/path'}]
wikis3artifactprefix - S3 prefix containing published Lucene/graph artifacts to hydrate into wikiindexdir
wikirestrictprofile tight mcp-wiki-safe profile: tight, moderate, relaxed, or trusted-client off
wikiretrievalv2 true Published passage retrieval; unpublished wikis retain legacy retrieval until /wiki reindex. Invalid published artifacts remain errors
wikiretrievalconfig - Validated SLON/JSON passage, cache, and artifact budgets for v2
wikitelemetry off Aggregate retrieval counters only (no query text by default)
useskillswiki false Virtual skill library (skillwiki tool, /skills search); reuses the usewiki wiki unless skillwikiroot, skillwikibackend, or skillwikimounts is set
skillsmaxloaded / skillsmaxchars 3 / 12000 Per-run bounds: distinct skills opened and skill-body characters read
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 (use memorymd=true to store its global records as Markdown)
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 relevant Inject section counts (summary), a goal-relevant durable subset (relevant), or full compact entries (full)
memoryrelevantcap 8 Maximum durable entries injected by memoryinject=relevant
usememorywrite true Enable deliberate typed durable-memory writes by the model
memorywritemax 20 Maximum memory_write calls per run
memorymd false Store global memory as path-keyed Markdown records in memorych
memorysessionheader — HTTP request header name used to derive the memory session ID in web mode (e.g. X-User-Id)
llmcomplexity unset Decision-based medium-complexity refinement; false disables, true also enables LC fallback
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
delegationtimeout / delegationhardtimeout 300000 / - Foreground wait and initial stall timeout (activity extends it) / optional absolute limit, in ms
delegationmaxretries 2 Maximum execution attempts for confirmed failures (unknown remote outcomes are never resubmitted)
agentcomms - Opt-in inter-agent communication (profiles parent-relay, direct, pubsub, shared-state; explicit grants)
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: auto, plan, apply, reorg, repair, reindex, graph, indexes
dreammemorymode apply Memory dream mode: plan or apply
dreamwikidryrun false Propose wiki changes without writing (opt out of apply)
dreamwikiapproval ask Reorg approval mode: auto, ask, never
dreamwikireorg false Allow structural wiki reorg
dreamreport — Optional JSON output report path
dreammaxsteps 40 Total model-step cap for wiki auto/reorg
maxauditrecords 200 Maximum audit log entries included in the memory dream consolidation prompt
onport 8888 Default web port when web mode is selected
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
webadvanced false Enable authenticated Advanced console alongside Simple chat
webadvancedpath ~/.openaf-mini-a/web Advanced journals, settings and presets
webtoken - Shared authentication token; generated per run if Advanced is enabled and omitted
wikiman false Standalone guided wiki operations manager
dreamwikillm true Model proposals for auto maintenance; false keeps deterministic repairs
dreamwikiinstructions - Extra guidance for the restricted reorg goal
useattach false Text, PNG/JPEG, Office/PDF uploads; binary: four files, 20 MiB combined
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
historyvm / historyvmshadow false History VM: journal exact history and swap old large messages for retrievable references (needs a writable conversation=); shadow only measures
contextvirtualization / contextvirtualizationshadow false Phase 2 multi-resolution context (requires historyvm=true); shadow dry-runs the projection
historys3bucket - S3 bucket used to mirror history files, including History VM snapshots (requires usehistory=true)
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

Runs, Policy, Evaluation, and Ingestion

# Choose an execution strategy per run; default stays unchanged
mini-a modelstrategy=auto goal="Verify the repository tests and report results"

# Main prepares a contract, LC executes; requires both model roles
mini-a modelstrategy=supervised goal="Verify the report." \
  contractargs='"/project/report.json"' savecontract=true

# Explicit local skill request without automatic selection
mini-a useskills=true skillsautosearch=false \
  goal='Use $local:mini-a-runtime-diagnostics to inspect the available runtime.'

# Preview source-folder mappings; requires a configured writable wiki to apply
mini-a ingest=true ingestsource=./docs ingestlayout=source ingestdryrun=true

# From the Mini-A checkout; calls the configured providers
mini-a eval=true evalfile=evals/skills.yaml evalout=/tmp/skills-eval.json

See Supervised Execution and decision integration.

# Durable, resumable run with a redacted JSONL trace
mini-a goal="..." durable=true runid=my-run
mini-a goal="..." resumerun=my-run
mini-a runstatus=my-run

# Bounded tool surface and centralized restrictions
mini-a goal="..." usetools=true capabilityselection=true capabilitylimit=4
mini-a goal="..." policy="(shell: deny, delegation: deny)"

# Automatic planning / advisor / evidence-gate selection
mini-a goal="..." orchestration=auto

# Evaluation suites (YAML/JSON) with reports and baselines
mini-a eval=true evalfile=evals/core.yaml evalout=/tmp/eval.json
mini-a eval=true evalfile=evals/core.yaml evalbaseline=evals/baseline.json

# Long conversations: exact history on disk, bounded working set in context
mini-a conversation=chat.json historyvm=true goal="..."

# Wiki: the agent can call wiki op="retrieve" for a bounded, cited evidence packet;
# V2 is enabled by default; explicitly reindex to publish its serving artifacts
mini-a usewiki=true wikiretrievalv2=true goal="..."

# Safe repeated ingestion: preview scoped removals
ojob mini-a-ingest.yaml ingestsource=./docs wikiroot=./wiki ingestmode=normalize ingestprune=true ingestdryrun=true

See Advanced for details on each, and Virtual Skills for skill libraries.

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

Combine presets with mode=shell,utils (also accepted by OAF_MINI_A_MODE). Names are case-insensitive; later presets override earlier values, including inherited values, and explicit CLI flags win. If any preset or include cannot be resolved, none of the list is applied.

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)
shellutils Shell + Mini Utils Tool (useshell=true useutils=true mini-a-docs=true usetools=true)
chatbot Chat-only mode with streaming (chatbotmode=true usestream=true)
internet Internet-focused MCP/tool mode (time, web, weather, net) with proxying and docs-aware utils
news Inherits internet; time, web, and RSS MCPs
poweruser Shell read-write, utils, skills, streaming, proxying, history retention, advisor strategy, delegation, and standard utils
webini Tools, visual Markdown, attachments, proxying, streaming, History VM, context virtualization, delegation, context guard, and automatic orchestration
web Inherits webini; adds history and web, weather, time, and net MCPs
webfull Inherits web; adds streaming, longer history retention, complexity estimation, and more MCPs (ASCII sketches off)

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')"
mcp-pass Republish/merge MCPs as one endpoint ojob mcps/mcp-pass.yaml onport=9091 mainmcp="(cmd: 'ojob mcps/mcp-web.yaml')"

Full list of the 29 built-in servers: MCP Catalog.

MCP Server Deployment One-Liners

# Built-in MCP as a standalone Docker HTTP service
docker run -d --rm -e OJOB=mini-a/mcps/mcp-time.yaml -e OPACK_EXEC= \
  -p 8888:8888 openaf/mini-a onport=8888

# mcp-pass gateway merging several MCPs behind one endpoint
docker run -d --rm -e OJOB=mini-a/mcps/mcp-pass.yaml -e OPACK_EXEC= \
  -p 9091:9091 openaf/mini-a onport=9091 uri=/mcp \
  mainmcp="(cmd: 'ojob mini-a/mcps/mcp-web.yaml')" \
  othermcps="[(cmd: 'ojob mini-a/mcps/mcp-time.yaml')]"

# Same gateway, returning tool results in TOON instead of JSON
docker run -d --rm -e OJOB=mini-a/mcps/mcp-pass.yaml -e OPACK_EXEC= \
  -e OAF_FLAGS="(MCPSERVER: (answerInTOON: true))" \
  -p 9091:9091 openaf/mini-a onport=9091 uri=/mcp \
  mainmcp="(cmd: 'ojob mini-a/mcps/mcp-web.yaml')"

# Consume any of the above
mini-a mcp="(type: remote, url: 'http://localhost:9091/mcp')" goal='...'

Docker & Kubernetes recipes: Deploying MCP Servers.