| [ Web Proxy ] |
| Viewing: https://adk.dev/integrations/../../context/../../workflows/../../../../../../runtime/command-line/ | [Back] [Original] |
[logo]
ADK provides an interactive terminal interface for testing your agents. This is useful for quick testing, scripted interactions, and CI/CD pipelines.
Use the following command to run your agent in the ADK command line interface:
In Go, the command-line interface is not a standalone adk tool. Instead,
you embed the launcher directly in your agent's main.go. The
full.NewLauncher() helper bundles the console, web server, and other
modes into a single binary, with console as the default when no
subcommand keyword is given:
import (
"google.golang.org/adk/v2/cmd/launcher"
"google.golang.org/adk/v2/cmd/launcher/full"
)
func main() {
// ... build your agent and config ...
l := full.NewLauncher()
if err := l.Execute(ctx, config, os.Args[1:]); err != nil {
log.Fatalf("Run failed: %v\n\n%s", err, l.CommandLineSyntax())
}
}
Run the agent in console mode with either of the following commands:
Create an AgentCliRunner class (see Java Quickstart) and run:
This starts an interactive session where you can type queries and see agent responses directly in your terminal.
Python only
The --save_session, --resume, --replay, and --session_id options
are available in the Python ADK CLI only. The Go console launcher does not
support session save/resume/replay via command-line flags. In Go, session
persistence is configured in code by providing a persistent
session.Service implementation (such as session/database) to
launcher.Config.
The adk run command includes options for saving, resuming, and replaying
sessions.
To save the session when you exit:
You'll be prompted to enter a session ID, and the session will be saved to
path/to/my_agent/<session_id>.session.json.
You can also specify the session ID upfront:
To continue a previously saved session:
This loads the previous session state and event history, displays it, and allows you to continue the conversation.
To replay a session file without interactive input:
The input file should contain initial state and queries:
Python only
The --session_service_uri and --artifact_service_uri command-line
flags are available in the Python ADK CLI only. In Go, session and artifact
services are configured in code when constructing launcher.Config for
example, using session/database for a persistent database-backed session
store, or artifact/gcsartifact for Cloud Storage-backed artifacts.
| Option | Description | Default |
|---|---|---|
--session_service_uri |
Custom session storage URI | Per-agent SQLite at <agents_dir>/<agent>/.adk/session.db |
--artifact_service_uri |
Custom artifact storage URI | Per-agent directory at <agents_dir>/<agent>/.adk/artifacts |
--memory_service_uri |
Custom memory service URI | In-memory |
To send a single message and exit instead of starting an interactive session, pass the query as an argument:
| Option | Description |
|---|---|
--save_session |
Save the session to a JSON file on exit |
--session_id |
Session ID to use when saving |
--resume |
Path to a saved session file to resume |
--replay |
Path to an input file for non-interactive replay |
--session_service_uri |
Custom session storage URI |
--artifact_service_uri |
Custom artifact storage URI |
--memory_service_uri |
Custom memory service URI |
--use_local_storage/--no_use_local_storage |
Use the local .adk folder when no service URI is set |
--state |
Initial state for the run as a JSON string |
--timeout |
Timeout for a single turn or query, such as 30s or 5m |
--in_memory |
Do not persist session data |
--jsonl |
Output structured JSONL instead of human-readable text |
--default_llm_model |
Default model when the agent does not set one |
Go flags differ from Python
The Go console launcher does not support --save_session, --resume,
--replay, --session_id, --session_service_uri, or
--artifact_service_uri. These are Python CLI features. Session and
artifact services are configured in Go code via launcher.Config.
Flags are passed after the console keyword (or directly if console is
the default):
| Flag | Description | Default |
|---|---|---|
-streaming_mode |
Streaming mode for agent responses (none|sse) |
Auto-detected (TTY sse, pipe none) |
-shutdown-timeout |
Graceful shutdown wait time | 2s |
-otel_to_cloud |
Export OpenTelemetry data to GCP | false |
For example, to force non-streaming output:
Or to force SSE streaming (token-by-token output):
The ADK CLI collects anonymous usage telemetry to understand feature adoption, guide development priorities, and improve tool performance. Data collection is OFF by default until you explicitly choose to enable it.
Your telemetry preference is stored locally on your machine in ~/.adk/config.json. You can manage telemetry data collection at any time through the terminal:
adk telemetry enableadk telemetry disableadk telemetry statusYou can also manually deactivate telemetry data collection at any time by opening ~/.adk/config.json and setting the telemetry attribute to false:
What data is collected
What data is not collected
The CLI does not collect sensitive, private, or personal data, specifically:
| Web Proxy Viewer | New URL | Original Page |