> ## Documentation Index
> Fetch the complete documentation index at: https://docs.svantic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interactive Mode

> Guide to using the Svantic CLI in interactive mode for conversational AI agent sessions.

# Interactive Mode

Interactive mode is the default when you run `svantic` with no subcommand. It starts a conversational REPL that connects to the Svantic mesh, registers as an A2A agent, and streams responses with full tool-call visibility.

## Starting a Session

Run the CLI with credentials configured:

```bash theme={null}
svantic
```

The terminal authenticates with the mesh, registers itself as an agent, initializes a session via the gateway, and presents a prompt.

Override defaults at startup:

```bash theme={null}
svantic --model gemini-2.5-pro --verbose
```

## Connecting to the Mesh

The terminal authenticates automatically using `SVANTIC_CLIENT_ID` and `SVANTIC_CLIENT_SECRET`. These exchange for a JWT via the mesh auth endpoint.

Using CLI flags instead of environment variables:

```bash theme={null}
svantic --client-id my_id --client-secret my_secret
```

If credentials are missing, the terminal prints an error and exits. See [Environment and Config](./environment-and-config) for all auth options.

## Sending Messages

Type at the prompt and press Enter. The terminal builds an A2A message, streams it to the backend, and renders the response as it arrives. Markdown is rendered inline.

Multi-turn conversations are automatic — the session maintains full context across messages.

## Tool Calls

When an agent invokes a tool, the terminal displays it in real time:

```
[tool] orchestrator -> zendesk_list_tickets({"status": "open"})
[result] orchestrator -> zendesk_list_tickets: [{...}]
```

Hidden internal tools are suppressed by default. Use `--verbose` or `/verbose` to see all tool call and result JSON.

### Approvals

Some tools require user approval before execution. When requested, the terminal prompts with options:

* **Approve** — allow this single invocation
* **Approve for session** — allow all future calls to this tool in this session
* **Approve permanently** — allow across all sessions
* **Deny** — reject the invocation

Review active approvals with `/approvals`.

## Session Management

### Resume a session

```bash theme={null}
svantic --session sess-abc123
```

Or during a session:

```
/load
/load sess-abc123
```

### Reset a session

```
/reset
```

This creates a new session and clears conversation history.

## Slash Commands

| Command          | Description                               |
| ---------------- | ----------------------------------------- |
| `/help`          | Show all available commands               |
| `/clear`         | Clear conversation history                |
| `/verbose`       | Toggle verbose mode (show/hide tool JSON) |
| `/session`       | Show current session ID                   |
| `/load`          | Load a previous session                   |
| `/attach`        | Attach file to next message               |
| `/upload`        | Upload a file as an artifact              |
| `/upload-folder` | Upload all files in a folder              |
| `/mcp`           | Manage MCP servers                        |
| `/approvals`     | List tool approvals                       |
| `/routes`        | Show active instance routes               |
| `/reset`         | Start a new session                       |
| `/quit`          | Exit the terminal                         |

Type `@` to open a file picker and attach a file to your next message.

## Verbose Mode

Enable verbose mode to see full JSON for tool calls, results, and thinking:

```bash theme={null}
svantic --verbose
```

Or toggle during a session:

```
/verbose
```

Output on stderr:

```
[thinking] Analyzing the ticket data...
[tool] orchestrator -> zendesk_list_tickets({"status": "open", "limit": 10})
[result] orchestrator -> zendesk_list_tickets: [{"id": 1, "subject": "..."}]
```

## Terminal Agent Capabilities

The terminal registers as a first-class agent on the mesh. Other agents can invoke:

* **terminal\_prompt\_user** — display a question and wait for text response
* **terminal\_request\_approval** — ask user to approve or deny an action
* **terminal\_display\_message** — show an informational message
* **forge\_propose\_tools** — propose tools from a description
* **forge\_generate\_tools** — generate tool specs via AI

## File Attachments

Attach files with `/attach` or the `@` shortcut:

```
/attach ./report.csv
```

Upload standalone artifacts:

```
/upload
/upload-folder ./data
```

## MCP Servers

Connect to Model Context Protocol servers:

```
/mcp list              # show registered servers
/mcp add               # interactive add flow
/mcp remove <name>     # remove a server
/mcp sync              # re-sync tools with the mesh
```

## Example Session

```
$ export SVANTIC_CLIENT_ID=default
$ export SVANTIC_CLIENT_SECRET=change-me-in-production
$ svantic --model gemini-2.5-pro

> List all open support tickets and summarize the top issues.

Searching for open tickets...
[tool] orchestrator -> zendesk_list_tickets({"status": "open"})
[result] orchestrator -> zendesk_list_tickets: [{"id": 1042, ...}, ...]

There are 23 open tickets. The top three issues are:
1. Login failures after password reset (8 tickets)
2. Slow dashboard loading (6 tickets)
3. Missing invoice downloads (4 tickets)

> Triage the login failures — assign them to the auth team.

[approval] Assign 8 tickets to auth-team? (approve/deny)
> approve

Done. 8 tickets assigned to auth-team with priority "high".

~ 4.2k tokens (1.8k prompt, 2.1k output, 312 thinking)
```
