What is Otto
Otto is a personal assistant you talk to in one chat. It has its own Linux workspace and browser, so it can do real work for you, not only answer questions.
Early preview Expect rough edges and breaking changes.

How Otto fits together
Section titled “How Otto fits together”You have one ongoing conversation with Otto. The app, your web browser, Telegram and WhatsApp all show the same conversation, so you can start a task on your laptop and check on it from your phone.
flowchart LR you([You]):::accent --> chat[One conversation<br/>app · browser · Telegram · WhatsApp] timers[Schedules and<br/>background checks]:::muted --> chat chat --> otto[Otto plans the work]:::accent otto <--> model[Model provider<br/>you choose]:::muted otto --> ws[Linux workspace<br/>files and commands] otto --> br[Browser] otto --> apps[Connected apps]
- Its own computer. Otto runs commands and keeps files in a private Linux workspace. It browses the web in its own browser, which you can take over when a site needs you.
- Your apps. Connect Gmail, Calendar, Slack, Notion, Linear and others, and Otto can read and act in them.
- Work that runs on its own. Otto can run tasks on a schedule. With Gmail connected, it also notices new email that needs you.
- Your computer, your model. Otto runs on your computer. Its model requests go to the provider you choose: OpenAI, Anthropic or OpenRouter.
What Otto can do
Section titled “What Otto can do”| Area | Try asking |
|---|---|
| Research | "Compare three project tools for a team of five. Put the prices in a table." |
| Files | "Turn the attached CSV into a chart and a one-page PDF summary." |
| Email and apps | "Find client emails from this week that still need a reply and draft answers." |
| Websites | "Download last month's invoice from billing.example.com with my saved login." |
| Schedules | "Every Friday at 5 pm, send me a recap of what we finished this week." |
| On the go | Message Otto on Telegram: "Did the supplier reply yet?" |
Otto checks with you before it sends, posts or deletes anything you didn't ask for. Background work that Otto starts on its own only reads and drafts. See Trust and Vault for how that works.
Where Otto runs
Section titled “Where Otto runs”| Desktop app | From source | Hosted | |
|---|---|---|---|
| Best for | Using Otto on your own computer | Running Otto on Linux, or changing its code | A team that runs Otto for several people |
| Runs on | Mac (Apple silicon or Intel), Windows 11 preview | macOS or Linux with Docker | Cloudflare, run by an operator |
| You need | Nothing else installed | Node.js, pnpm, Docker and Git | A Google account |
| Updates | Automatic on Apple silicon Macs | git pull and restart |
The operator deploys them |
| Saved cards and payments | Yes | Yes | No |
Every option needs a model connection: an API key from OpenAI, Anthropic or OpenRouter, or a ChatGPT plan on the desktop app or a source install. To connect Gmail, Calendar, Slack and similar apps on your own computer, you also need a Composio key.
What Otto isn't
Section titled “What Otto isn't”- It doesn't run models on your computer. It needs an internet connection, and your model provider bills you for use.
- It isn't always on. The desktop app runs tasks only while it's open and your computer is awake.
- It isn't shared. Each Otto belongs to one person. The desktop app and source installs don't sync between computers.
- It isn't a public server. A source install has no account login, so never expose it to a network.
- It isn't finished. Otto is an early preview, so features and data formats can change.