1. Configure your LLM provider
.env and set your provider, model, and API key:
2. Start everything
researcher and writer workers defined in quickstart.toml.
3. Chat with your agent
The AURA CLI ships in the same Docker image and connects to the in-container server automatically. Exec into the running container:Or use a browser
LibreChat first-time setup: Create your user account on the signup page. The agent model is pre-configured as “Aura Orchestrator”.
Build the CLI from source
Prefer to build locally instead of using the bundled binary? Connect to the quickstart server:Customize Your Agent
Editquickstart.toml to change coordinator routing and worker behavior, add tools, or enable vector search.
Edit .env to switch LLM providers. Then apply changes:
docker compose restart aura is fine for quickstart.toml-only changes, but .env changes require docker compose up -d to take effect.Switch LLM provider
UpdateLLM_PROVIDER, LLM_MODEL, and LLM_API_KEY in .env, then docker compose up -d.
Anthropic:
base_url line in quickstart.toml.
llama-server (llama.cpp, local, no API key):
llama-server exposes an OpenAI-compatible API, so use the openai provider with a base_url override:
base_url line in quickstart.toml. The LLM_MODEL value can be anything — llama-server ignores it and uses whatever model it was started with.
Add MCP tool servers
Uncomment the[mcp] section in quickstart.toml and point it at your MCP server:
host.docker.internal to reach services running on your host machine.
Then scope the tools per worker: set mcp_filter on each worker that should use them (see Customize orchestration). A worker with no mcp_filter receives all MCP tools, so set it explicitly on every tool-using worker and keep tool-free workers (like the default writer) an explicit empty filter (mcp_filter = []).
Add vector search
Uncomment the[[vector_stores]] section in quickstart.toml. Options:
- Qdrant (self-hosted): add a Qdrant instance to the compose file or point at an external one. Embeddings can be generated via OpenAI or AWS Bedrock.
- AWS Bedrock Knowledge Base (managed): set
type = "bedrock_kb"with aknowledge_base_idandregion. No embedding model needed — the KB manages embeddings internally.
[[vector_stores]] only defines it — no agent can query it until you attach it. Add the store’s name to a worker’s vector_stores list (e.g. vector_stores = ["docs"]), or to [orchestration].coordinator_vector_stores to give the coordinator access.
See examples/reference.toml for both.
Serve multiple agents
Create a directory with one TOML file per agent:docker-compose.yml to mount and serve the directory:
docker compose up -d. Clients that support model selection (LibreChat, OpenWebUI, etc.) will show each agent in their model picker via GET /v1/models.
The example configs in
examples/ reference provider-specific env vars (e.g. OPENAI_API_KEY) rather than the quickstart’s LLM_API_KEY. Add the appropriate keys to your .env — they’re automatically loaded into the container via env_file. See .env.example for the full list.Hide an agent from discovery
Sethidden = true in an agent’s [agent] block to keep it out of discovery listings. AURA omits a hidden agent from the GET /v1/models response and from the CLI’s /model list, so it won’t appear in client model pickers. The agent stays fully usable. Any caller that already knows its name or alias can still select it by sending that value as the model field. This helps when an agent isn’t ready yet, or when you want only known callers to invoke it during development/testing/production.
hidden field defaults to false. It accepts either a TOML boolean (true or false) or the quoted strings "true" and "false". The quoted form is convenient when a templating tool such as Helm renders the value as a string.
If you load only a single hidden agent, both
GET /v1/models and the CLI /model list come back empty even though the agent is still the active, invocable default.Customize orchestration
quickstart.toml ships with orchestration enabled: a coordinator and two tool-free workers (researcher and writer) that reason with the LLM alone. The coordinator’s routing is controlled by the [orchestration] block:
[orchestration.worker.<name>] block defines a worker. Give a worker tools by configuring an MCP server (see Add MCP tool servers above) and listing matching tool globs in its mcp_filter, or point it at a vector store via vector_stores:
A worker whose
mcp_filter is omitted is granted every MCP tool. Set an explicit mcp_filter on each worker once an MCP server is configured; mcp_filter = [] keeps a worker tool-free.[orchestration.worker.<name>.llm] block — see the orchestration config reference for all fields.
Restart with docker compose restart aura and try asking a multi-step question. Watch the coordinator plan and dispatch in the CLI’s event panel, or in Phoenix at http://localhost:6006.
To run a single agent instead of orchestration, set [orchestration].enabled = false and configure a single [agent] — see examples/reference.toml.
For a fully self-contained orchestration example with a math MCP server, see the Orchestration — Math MCP quickstart.
Full configuration reference
Seeexamples/reference.toml for all available options.
What’s Next
Once the basic quickstart is running, try these more advanced setups:- Orchestration Quickstart — Multi-agent orchestration with a coordinator that dispatches tasks to specialized workers. Uses a math MCP server to demonstrate parallel task execution.
- Kubernetes SRE Quickstart — Deploy an AI-powered SRE agent on a KIND cluster with real Kubernetes and Prometheus MCP servers.
- Example Configs — Minimal per-provider configs and complete agent compositions to use as starting points.
Architecture
- aura runs inside the AURA container (
docker exec) and talks to the same OpenAI-compatible/v1/chat/completionsendpoint, rendering coordinator and worker events as they stream. - LibreChat sends chat requests to AURA’s OpenAI-compatible
/v1/chat/completionsendpoint. MongoDB is used by LibreChat internally for user accounts and conversation history — AURA does not use it. - AURA runs the coordinator that routes each request, dispatches workers, executes MCP tools, calls the configured LLM provider, and streams responses back.
- Phoenix receives OpenTelemetry traces from AURA so you can inspect every coordinator and worker step.
Troubleshooting
LibreChat shows “no models available” AURA may still be starting. Wait for the health check to pass (docker compose logs aura --tail 5) and refresh.
“connection refused” in AURA logs
If referencing services on your host, use host.docker.internal instead of localhost in quickstart.toml.
Reset everything

