Overview
The ArgentOS Control UI is a web dashboard for interacting with and managing your agent. It connects to the gateway via WebSocket and provides a full admin interface.
Dashboard URL: http://127.0.0.1:8080/
Gateway WebSocket: ws://127.0.0.1:18789
Accessing the Dashboard
With Token (Recommended)
The dashboard requires your gateway token to connect. Get the tokenized URL:
This copies the URL to your clipboard and opens it in your browser. The URL includes your token:
http://127.0.0.1:8080/?token=YOUR_GATEWAY_TOKEN
Via Argent.app
On macOS, Argent.app embeds the dashboard and handles authentication automatically.
Finding Your Token
Your gateway token is stored in ~/.argentos/argent.json:
{
"gateway": {
"auth": {
"mode": "token",
"token": "your-token-here"
}
}
}
After the first successful connection, the token is stored in your browser’s localStorage so you don’t need to include it in the URL every time.
Features
Chat
Talk to your agent directly from the dashboard. Features include:
- Real-time streaming responses
- Tool execution cards (see what tools the agent uses)
- Abort running requests
- Session history
Tasks & Projects
Visual task management:
- Create, assign, and track tasks
- Project-based organization
- Kanban board view
- Priority and status tracking
Configuration
Edit your agent’s settings without touching config files:
- Model selection and provider configuration
- Channel setup (Telegram, Discord, Slack, etc.)
- Auth profile management (API keys, OAuth)
- Intent policies and safety rules
Alignment Docs Editor
Edit your agent’s personality and behavior documents:
- SOUL.md, IDENTITY.md, USER.md, TOOLS.md
- Git-backed version history
- Auto-save with unsaved changes indicator
Workflows
Visual multi-agent pipeline builder:
- Drag-and-drop workflow canvas
- 5 node types: Trigger, Agent, Action, Gate, Output
- 62 connector integrations
- Run history and live execution highlighting
Operations (Business Tier)
- Workflow Map — orbital visualization of agents and providers
- Workloads — cron job monitoring by agent
- Task Manager — Kanban with blocked column
- Org Chart — agent family hierarchy
- Schedule — cron job definitions
Architecture
The dashboard runs as two services:
| Service | Port | What It Does |
|---|
| Dashboard UI | 8080 | React web app (serves HTML/JS/CSS) |
| Dashboard API | 9242 | Express server (tasks, settings, media, proxies) |
| Gateway | 18789 | WebSocket RPC (agent runtime, chat, real-time events) |
The UI on port 8080 connects to:
- The Gateway WebSocket on 18789 for real-time chat, events, and RPC calls
- The Dashboard API on 9242 for tasks, settings, media, and proxy requests
Security
The Control UI is an admin surface with full access to your agent’s configuration, chat, and tools. Do not expose it on a public network without proper security.
Recommended Access Methods
- Localhost only (default) — Dashboard only accessible from the local machine
- Tailscale Serve — HTTPS access via your Tailscale network
- SSH tunnel —
ssh -L 8080:127.0.0.1:8080 your-server
Token Security
- Tokens are compared using timing-safe comparison to prevent timing attacks
- After first use, tokens are stored in
localStorage and removed from the URL
- Rotate your token: edit
gateway.auth.token in ~/.argentos/argent.json and restart
CORS
The Dashboard API allows requests from:
http://localhost:8080 and http://127.0.0.1:8080
http://localhost:5173 (Vite dev server)
http://localhost:18789 and http://127.0.0.1:18789 (Gateway)
Troubleshooting
Dashboard shows white page
The dashboard build may be missing. Rebuild:
cd ~/argentos/dashboard
npx vite build
“Token mismatch” error
Open the dashboard with your token:
Or manually: http://127.0.0.1:8080/?token=YOUR_TOKEN
API returns 401 Unauthorized
The dashboard API server enforces token auth. Make sure you’re accessing the dashboard with the ?token= parameter in the URL.
Port 8080 not responding
Check if the dashboard UI service is running:
If not, start it:
cd ~/argentos/dashboard
npx vite preview --port 8080 --host 127.0.0.1 &
Port 9242 not responding
The API server is spawned automatically by the gateway. Restart the gateway: