adk-cli
Command-line launcher for Rust Agent Development Kit (ADK-Rust) agents.
Overview
adk-cli provides two things:
adk-rustbinary — chat with an AI agent (6 providers), serve a web UI, or manage skillsLauncherlibrary — embed a REPL and web server into any custom agent binary
Quick Start
# Just run it — interactive setup picks your provider on first run
# Or pre-configure a provider
# Equivalent to:
# Web server
Supported Providers
| Provider | Flag | Default Model | Env Var |
|---|---|---|---|
| Gemini | --provider gemini |
gemini-2.5-flash |
GOOGLE_API_KEY / GEMINI_API_KEY |
| OpenAI | --provider openai |
gpt-4.1 |
OPENAI_API_KEY |
| Anthropic | --provider anthropic |
claude-sonnet-4-5-20250929 |
ANTHROPIC_API_KEY |
| DeepSeek | --provider deepseek |
deepseek-chat |
DEEPSEEK_API_KEY |
| Groq | --provider groq |
llama-3.3-70b-versatile |
GROQ_API_KEY |
| Ollama | --provider ollama |
llama3.2 |
(none, local) |
First-Run Setup
If no provider is configured, adk-rust launches an interactive setup:
- Choose a provider from the menu
- Enter your API key (skipped for Ollama)
- Provider and model are saved to
~/.config/adk-rust/config.json - API keys are stored in your OS credential store (Keychain, Credential Manager, Secret Service)
On subsequent runs, the saved config is used automatically. CLI flags always take priority over environment variables, secure credential storage, and saved config.
Binary Commands
adk-rust Interactive REPL (default, same as `chat`)
adk-rust chat Interactive REPL with an AI agent
adk-rust serve Start web server with an AI agent
adk-rust skills Skill tooling (list/validate/match)
adk-rust deploy External platform integration commands
Global options (apply to chat and serve)
| Flag | Default | Description |
|---|---|---|
--provider |
saved config or interactive | LLM provider |
--model |
provider default | Model name (provider-specific) |
--api-key |
secure store / env var | API key (overrides all other sources) |
--instruction |
built-in default | Agent system prompt |
--thinking-budget |
none | Enable provider-side thinking when supported |
--thinking-mode |
auto |
Render emitted thinking: auto, show, hide |
adk-rust serve options
| Flag | Default | Description |
|---|---|---|
--port |
8080 |
Server port |
adk-rust skills subcommands
All skills commands accept --json for machine-readable output and --path
to specify the project root (defaults to .).
adk-rust deploy subcommands
These commands target the external adk-platform deployment product. In
adk-rust, the deploy surface is kept as a client and manifest/bundling
integration layer; the control plane and operator console live in the separate
adk-platform repository.
Deploy credentials are stored in the OS credential store keyed by control-plane endpoint. The saved CLI config keeps the endpoint and workspace metadata, but not the bearer token itself.
REPL Commands
| Input | Action |
|---|---|
| Any text | Send to agent |
/help |
Show commands |
quit, exit, /quit, or /exit |
Exit |
/clear |
Clear display |
| Ctrl+C | Interrupt |
| Up/Down arrows | History |
Library: Launcher
For custom agents, Launcher gives any Arc<dyn Agent> a CLI with two modes:
use Launcher;
use Arc;
async
Or call modes directly without CLI parsing:
// Console directly
new
.run_console_directly
.await?;
// Server directly
new
.run_serve_directly
.await?;
Production server composition
For production apps that need custom routes, middleware, or ownership of the
serve loop, use build_app() instead of run_serve_directly():
use ;
use Arc;
let app = new
.with_a2a_base_url
.with_telemetry
.build_app?;
let app = app.merge;
let listener = bind.await?;
serve.await?;
You can also enable A2A explicitly with build_app_with_a2a(...).
Serve-mode configuration
Launcher now forwards several server/runtime settings that previously required
manual ServerConfig wiring:
new
.with_compaction
.with_context_cache
.with_a2a_base_url
.with_telemetry;
Available telemetry modes:
TelemetryConfig::AdkExporter— default in-memory ADK exporterTelemetryConfig::Otlp— initialize OTLP exportTelemetryConfig::None— skip launcher-managed telemetry initialization
Configuration Priority
Resolution order (highest wins):
- CLI flags (
--provider,--api-key, etc.) - Environment variables (
GOOGLE_API_KEY,OPENAI_API_KEY, etc.) - OS credential store (saved during first-run setup)
- Saved config (
~/.config/adk-rust/config.json) for provider/model only - Interactive setup (first run only)
Provider-Specific Notes
- Gemini: Google Search grounding tool is automatically added
- Anthropic:
--thinking-budgetenables extended thinking with the given token budget - Ollama: No API key needed; make sure
ollama serveis running locally - Groq: Free tier available at console.groq.com
Related Crates
- adk-rust — umbrella crate
- adk-server — HTTP server
- adk-runner — execution runtime
- adk-skill — skill discovery
License
Apache-2.0