Web Interface
The ravenbot web UI provides a browser-based interface for chat, research, agent orchestration, and system management. It runs alongside the Telegram/Discord bots on the same server.
Access
The web interface is available at http://localhost:8080 by default. Configure the port with the WEB_PORT environment variable.
Pages
Chat
The primary interaction point. Send messages and receive responses from RavenBot directly in the browser. Messages are processed synchronously — the user bubble appears immediately, then the assistant response follows.
- Enter sends a message (Shift+Enter for newlines)
- Messages auto-expand as you type
- Conversation history is maintained per browser session (cookie-based)
Agents
View all available sub-agents and workflow pipelines:
- Agent Registry: Lists ResearchAssistant, SystemManager, and Jules with descriptions.
- Pipeline Visualization: Shows the Research pipeline (ResearchAssistant → ResearchSynthesizer) with agent flow.
- Mission Launcher: Select a pipeline, enter a prompt, and hit Launch to start a new mission.
Missions
Track workflow pipeline executions:
- Mission List: Shows recent missions with status (running/completed/failed), pipeline name, prompt preview, and timestamp.
- Mission Detail: Click a mission to view the full prompt, result, or error message.
- Missions are tracked in SQLite and persist across restarts.
Reports
Browse research reports generated by the Daily Briefing job or manual research missions:
- Report List: Chronological list of reports.
- Report Detail: Full Markdown rendering with headings, lists, and code blocks.
Tools
Quick-access buttons for bot commands:
| Tool | Description |
|---|---|
| System Status | Run server health diagnostic |
| Research | Deep-dive research on a topic |
| Reminder | Set a timed reminder |
| Watcher | Monitor a topic periodically |
| Jules | Delegate coding tasks |
| Export | Export recent research briefings |
| Uptime | Show bot statistics |
| Reset Session | Clear conversation context |
Technical Details
- Stack: Go
net/http, templ templates, HTMX for dynamic updates - Sessions: Cookie-based session IDs (
ravenbot_session), one per browser tab. Form-supplied session IDs are rejected for security. - Logging: HTTP requests are logged with anonymized IPs (port stripped). Request level auto-scales:
debugfor 2xx,warnfor 4xx,errorfor 5xx. - No JavaScript frameworks — all interactivity is HTMX attributes or minimal inline scripts.