> For the complete documentation index, see [llms.txt](https://docs.tillforty.com/oaura/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tillforty.com/oaura/readme.md).

# Oaura

Oaura is a multi-tenant AI agent platform. You configure an agent in the dashboard, drop a single `<script>` tag onto your site, and your visitors get a chat widget that can hold a conversation, run tools, surface your own data inside tabs, and hand off to a human when it matters.

This documentation is for operators — the people building products on top of Oaura. If you just want to chat with an existing agent, you don't need this.

## Where to start

* **New to Oaura** → [Introduction](https://github.com/tillforty/oaura-documentation/blob/main/introduction/what-is-oaura.md), then [Quickstart](https://github.com/tillforty/oaura-documentation/blob/main/getting-started/quickstart.md).
* **Embedding the widget** → [Widget](https://github.com/tillforty/oaura-documentation/blob/main/widget/embedding.md).
* **Authenticating your users** → [Identity](https://github.com/tillforty/oaura-documentation/blob/main/identity/overview.md).
* **Building data tabs (lists, messaging threads)** → [Tabs](/oaura/tabs/tabs.md).
* **Wiring tools and webhooks** → [Connectors](https://github.com/tillforty/oaura-documentation/blob/main/connectors/overview.md).
* **Per-locale, per-domain configuration** → [Environments](https://github.com/tillforty/oaura-documentation/blob/main/environments/overview.md).

## What the platform looks like

Oaura is three surfaces sharing one codebase:

1. **Dashboard** — where operators configure agents, connectors, identity, tabs.
2. **Embeddable widget** — what your end-users see on your site. Loaded by `embed.js`, rendered inside a sandboxed iframe.
3. **Edge functions** — every request from the widget hits a Supabase edge function, never your operator backend directly. Identity is verified there, secrets stay server-side, and PII never lands in the browser-visible URL.

The widget speaks to the edge functions over HTTPS + WebSockets. The edge functions speak to your operator backend (n8n, HTTP webhooks, MCP servers, Slack, Discord, Teams) using credentials you provide.
