Skip to main content

Architecture Overview

Orient is a self-hosted AI agent platform. Everything runs on your infrastructure — no cloud dependency, no data leaving your control.

System Architecture

┌──────────────────────────────────────────────────────┐
│ Your Machine │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │
│ │ WhatsApp │ │ Slack │ │ CLI │ │
│ │ Connector │ │ Connector │ │ Interface │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────┬────────┴────────┬────────┘ │
│ │ │ │
│ ┌──────▼───────┐ ┌─────▼──────┐ │
│ │ Message │ │ Agent │ │
│ │ Router │ │ Engine │ │
│ └──────┬───────┘ └─────┬──────┘ │
│ │ │ │
│ ┌──────▼────────────────▼──────┐ │
│ │ Tool Executor │ │
│ │ (MCP Servers, Integrations) │ │
│ └──────────────┬───────────────┘ │
│ │ │
│ ┌──────────────▼───────────────┐ │
│ │ SQLite Database │ │
│ │ (messages, config, state) │ │
│ └──────────────────────────────┘ │
└──────────────────────────────────────────────────────┘

Data Flow

  1. Message arrives — from WhatsApp, Slack, CLI, or any connected platform
  2. Router dispatches — identifies the user, platform, and conversation context
  3. Agent processes — the configured agent picks up the message, loads relevant context (memory, integrations, previous conversations)
  4. Tools execute — the agent calls tools as needed (calendar, Jira, file operations, MCP servers)
  5. Response sent — the result flows back to the originating platform

Key Components

Message Connectors

Each platform has a dedicated connector that handles authentication, message format conversion, and delivery. Connectors are stateless — all state lives in the database.

  • WhatsApp — uses the WhatsApp Web multi-device protocol
  • Slack — uses the Slack Bolt framework with Socket Mode
  • CLI — direct terminal interface for development and power users
  • MCP — Model Context Protocol for IDE integration

Agent Engine

The agent engine manages conversation flow, context windows, and tool calling. Each agent can be configured independently with:

  • Custom system prompts
  • Specific tool permissions
  • Platform-specific behaviors
  • Memory and context settings

Tool Executor

Tools are organized as MCP (Model Context Protocol) servers. This means Orient's tools are compatible with any MCP client, and you can connect external MCP servers to extend functionality.

Built-in tool categories:

  • Scheduling — create, update, delete scheduled messages and reminders
  • Calendar — Google Calendar integration for events and availability
  • Jira — ticket management, sprint queries, updates
  • Mini-Apps — generate and host lightweight web applications
  • File operations — read, write, and manage files
  • Webhooks — receive and process external events

Database

Orient uses SQLite for all persistent storage:

  • Conversation history
  • Agent configuration
  • Scheduled messages
  • Integration credentials (encrypted)
  • Feature flags
  • Webhook configurations

SQLite was chosen for simplicity — no external database server needed. The entire database is a single file on your machine.

Self-Hosted Deployment

Orient can be installed with a single command:

curl -fsSL https://orient.bot/install.sh | bash
orient start

This starts:

  • Orient server — the main application
  • Dashboard — web UI at localhost:4098

For Docker-based deployments, see the docker/ directory in the repository.

No external services are required. All AI inference uses your configured LLM provider (OpenAI, Anthropic, etc.) with your own API keys.

No Cloud Dependency

Orient has zero cloud dependencies:

  • No telemetry or analytics
  • No license server
  • No remote configuration
  • No automatic updates
  • All data stays on your machine

The only external calls are to your configured LLM provider, and those are made directly from your infrastructure.