console-app
Console App
The Ariadne Console is a command-line client that brings the full power of Ariadne to your terminal. It supports interactive and headless modes, has direct access to your local filesystem, and can integrate with IDEs via the Agent Control Protocol (ACP).
Installation
Linux — one command
curl -fsSL https://<your-ariadne-instance>/install.sh | sh
The script is served by your Ariadne instance with its own URL already stamped in (the Download CLI dialog in the web UI shows the exact command for your instance). It:
- installs a self-contained Console bundle into
~/.ariadne/app— no .NET installation required; - keeps a copy of itself at
~/.ariadne/ariadneand puts that on yourPATH, so afterwards you just runariadne; - checks the published bundle's SHA-256 on every launch and only re-downloads when it has actually changed;
- launches the Console, passing through any arguments —
ariadne --headless,ariadne --acp, and so on; - still starts your installed copy when the server can't be reached, so being offline doesn't stop you working.
Set ARIADNE_SERVICE_URL to point an existing install at a different instance. x64 hosts are served today; the script picks its bundle from uname -m, so an arm64 host reports that no bundle is published rather than installing the wrong one.
Windows
Download Ariadne.Launcher.exe from the same dialog. It does the equivalent job — installs under %LOCALAPPDATA%\Ariadne, self-updates, and starts the Desktop app; the CLI (Ariadne.exe) is installed alongside it and added to your PATH.
From source
dotnet run --project Ariadne.Console -- [options]
Code Mode Integration
Running the Console app is one of the primary ways to give Ariadne's Code conversation mode real file and terminal access. When a Console instance is connected to a Code conversation (or any conversation whose ID contains headless), the agent automatically discovers and uses the Console's local tool set — reading files, running builds and tests, and executing shell commands on the host machine.
See Code Mode & Remote Development Environments for a full explanation of how this works, including how to use Docker containers and how multiple clients can connect simultaneously.
Running Modes
Interactive Mode (Default)
dotnet run --project Ariadne.Console -- --conversation-id <id> --user "Your Name"
This opens a terminal-based UI where you can type messages and see the agent's responses. It works like the web UI but entirely in the terminal.
Headless Mode
dotnet run --project Ariadne.Console -- --conversation-id <id> --user "Your Name" --headless
In headless mode, the Console runs without an interactive UI — ideal for use in Docker containers or scripted automation. The working directory /app/work (when running in Docker) is mounted for persistent file access.
ACP Mode (IDE Integration)
dotnet run --project Ariadne.Console -- --acp
Or set the environment variable:
ARIADNE_ACP=true dotnet run --project Ariadne.Console
ACP mode enables deep integration with compatible IDEs. See ACP Integration below.
Connection Options
The Console connects to Ariadne via:
| Transport | When to Use | Required Settings |
|---|---|---|
| NATS | Direct/internal connection (same network) | --nats-url nats://host:4222 |
| WebSocket | Remote/external connection | --service-url https://... + --token <bearer> |
These can also be set in appsettings.json in the Console project directory.
Local File Tools
When running the Console (especially in headless mode), agents gain access to a rich set of local filesystem tools that operate on the host machine. These tools are only available via the Console — not through the web UI.
| Tool | What it Does |
|---|---|
| Read File | Read any file on the local filesystem |
| Edit File | Modify an existing file |
| Create File | Create a new file with specified content |
| Delete File | Remove a file |
| List Directory | List the contents of a directory |
| Search Files | Find files by glob pattern |
| Search File Content | Full-text search within files |
| Change Working Directory | Change the current working directory for subsequent operations |
| Create Directory | Create a new directory |
| Build File Index | Index a directory for fast searching |
| Image Access | View, inspect, and analyze local images on the host (e.g. Playwright browser outputs, snapshots, or agent-generated diagrams) |
The /cd Navigation Command
In addition to programmatic tool calls, Ariadne supports a native /cd <path> command directly inside the Console terminal interface as well as web/desktop conversation inputs.
Typing /cd D:\Dev\MyProject (or a relative path like /cd ..) instantly updates the active working directory context for both your terminal session and any subsequent agent tool executions. This provides an intuitive, hands-on way to navigate your workspace alongside the agent.
Shell and Terminal Tools
| Tool | What it Does |
|---|---|
| Run Bash | Execute a bash command with working directory tracking |
| Terminal | Persistent named terminal sessions (see below) |
| Execute Program | Run any external program with full path resolution, stdout/stderr capture, and configurable timeout |
Execute Program Details
The exec_program tool resolves commands automatically:
- Searches the system
PATH - Checks common directories (
/usr/bin,/usr/local/bin, etc.) - Provides clear error messages if a command is not found
- Captures both stdout and stderr
- Default timeout: 30 seconds (configurable up to 300 seconds)
This allows agents to run builds, tests, linters, and any other CLI tools available on the host.
Named Terminal Sessions
The terminal tool creates persistent named terminal sessions. This is useful for:
- Keeping a REPL open between agent turns
- Maintaining state across multiple commands (e.g. a Python interpreter session)
- Running a long-running process and interacting with it incrementally
Session: "python-repl"
> import pandas as pd
> df = pd.read_csv("data.csv")
> df.describe() # (next agent turn — session remembers the state)
ACP (Agent Control Protocol) Integration
The Console's ACP mode integrates Ariadne directly into your IDE as a coding assistant. ACP is a JSON-RPC 2.0 protocol that IDEs use to communicate with AI coding agents.
Supported IDEs
Any IDE that supports the Agent Control Protocol can connect to Ariadne via the Console in ACP mode, including:
- JetBrains Rider / IntelliJ IDEA (and other JetBrains IDEs)
- VS Code (with a compatible ACP extension)
- Other ACP-compatible editors
What ACP Provides
When connected via ACP, the IDE gains:
| Capability | Description |
|---|---|
| Session Management | Create, load, and list conversations from within the IDE |
| Code Chat | Ask questions about code in context |
| Streaming Responses | Token-by-token streaming directly in the IDE chat pane |
| Cancellation | Cancel an in-progress response |
| IDE File Access | When the IDE advertises filesystem capabilities, Ariadne routes file I/O through the IDE rather than the local disk |
| IDE Terminal | When the IDE advertises terminal capabilities, Ariadne uses the IDE's integrated terminal for shell commands |
ACP Method Reference
| ACP Method | Ariadne Action |
|---|---|
session/new |
Create and register a new conversation |
session/load |
Fetch conversation history |
session/list |
List all conversations |
session/prompt |
Send a user message and stream the response |
session/cancel |
Cancel the currently streaming response |
Setting Up ACP in Your IDE
- Start the Console in ACP mode:
dotnet run --project Ariadne.Console -- --acp(or setARIADNE_ACP=true) - In your IDE, configure the AI assistant to connect to the Ariadne ACP server
- The IDE will discover available capabilities (filesystem, terminal) and route them through the Console
Refer to your IDE's documentation for the specific steps to connect to an external ACP agent.
Remote File Editing
When the Console is connected to a conversation, you can edit files on the remote host directly from the web UI or Desktop app. If the agent is stuck on a coding task — for example, it cannot resolve a build error — you can open the file browser, make the fix yourself, and the agent will pick up the change on its next turn. This is particularly useful in paired programming scenarios where you want to nudge the agent in the right direction without typing instructions.
MCP Server Hosting
The Console can host MCP (Model Context Protocol) servers locally. This allows you to run MCP-compatible tools on your own machine and make them available to Ariadne agents.
dotnet run --project Ariadne.Console -- --mcp-server "path/to/mcp-server"
MCP servers started via the Console are registered with the connected Ariadne instance and are available to agents for the duration of the Console session.
Docker Usage
When running the Console in a Docker container (common in headless mode), the working directory is typically mounted at /app/work:
volumes:
- /path/to/work:/app/work
All file operations by the agent are relative to this working directory by default, providing a clean, sandboxed workspace.
Configuration
The Console reads configuration from appsettings.json in its working directory, or from environment variables:
| Setting | Environment Variable | Description |
|---|---|---|
| NATS URL | NATS__Url |
NATS server URL |
| Service URL | ServiceUrl |
WebSocket service URL |
| Bearer Token | BearerToken |
Authentication token |
| Conversation ID | ConversationId |
Default conversation to open |
| User name | UserName |
Display name in conversations |
| ACP mode | ARIADNE_ACP |
true to enable ACP mode |