Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions openhands/usage/agent-canvas/backend-setup/vm.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
| Setup | Start Command | How You Use It |
|-------|---------------|----------------|
| **Backend only** | `agent-canvas --backend-only --public` | Run only the agent server on the VM. Start `agent-canvas --frontend-only` on your laptop and add the VM URL in **Manage Backends**. |
| **Backend only + ngrok** | `agent-canvas --backend-only --public` and `ngrok http 8000` | Use your ngrok domain as the backend URL. Do not add ngrok OAuth for this mode; rely on `LOCAL_BACKEND_API_KEY`. |

Check warning on line 19 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L19

Did you really mean 'ngrok'?

Check warning on line 19 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L19

Did you really mean 'ngrok'?

Check warning on line 19 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L19

Did you really mean 'ngrok'?
| **Full Canvas** | `agent-canvas --public` | Serve both the Agent Canvas UI and the backend from the VM. Open the VM, reverse proxy, or ngrok URL in a browser. |

Check warning on line 20 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L20

Did you really mean 'ngrok'?
| **Full Canvas + ngrok OAuth** | `agent-canvas --public` and `ngrok http 8000 --traffic-policy-file ~/policy.yml` | Protect the full Canvas URL with an ngrok login policy before users reach Agent Canvas. |

Check warning on line 21 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L21

Did you really mean 'ngrok'?

Check warning on line 21 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L21

Did you really mean 'ngrok'?

<Tip>
Use **backend only** when you want to keep the UI on your laptop and switch between backends. Use **full Canvas** when the VM should serve the browser UI too.
Expand All @@ -31,29 +31,29 @@
Before starting Agent Canvas, restrict inbound traffic:

- **SSH (`22`)** — allow only your IP address or VPN CIDR.
- **Agent Canvas (`8000`)** — keep closed unless you are using an SSH tunnel. If you expose it through ngrok, nginx, or another proxy, expose only that proxy.

Check warning on line 34 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L34

Did you really mean 'ngrok'?

Check warning on line 34 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L34

Did you really mean 'nginx'?
- **HTTP/HTTPS (`80`, `443`)** — open only if you configure a reverse proxy and TLS.

## 2. Install Prerequisites

Agent Canvas requires:

- [Node.js](https://nodejs.org/en/download) 22.12 or later, including `npm`.
- [Node.js](https://nodejs.org/en/download) 24 or later, including `npm`.
- [`uv`](https://docs.astral.sh/uv/getting-started/installation/) for the agent server runtime.
- `git` and `curl`.
- Optional: [`ngrok`](https://ngrok.com/download) for a public URL on a free ngrok domain or your own custom domain.

Check warning on line 44 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L44

Did you really mean 'ngrok'?
- Optional: `tmux` to keep Agent Canvas and ngrok running after disconnecting from SSH.

Check warning on line 45 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L45

Did you really mean 'ngrok'?

### Ubuntu 22.04 / 24.04

Install Node.js 22.x, `uv`, and Agent Canvas:
Install Node.js 24.x, `uv`, and Agent Canvas:

```bash
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg git

# Node.js 22.x from NodeSource.
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
# Node.js 24.x from NodeSource.
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt-get install -y nodejs

# uv for the agent server runtime.
Expand All @@ -69,7 +69,7 @@
```

<Note>
If your `npm` global prefix is user-writable, omit `sudo` from `npm install -g`. For macOS or other Linux distributions, use the official Node.js, `uv`, and ngrok installation links above instead of the Ubuntu-specific commands.

Check warning on line 72 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L72

Did you really mean 'ngrok'?
</Note>

Install optional runtime helpers if needed:
Expand All @@ -78,7 +78,7 @@
sudo apt-get install -y tmux
```

Install ngrok only if you plan to expose the VM through ngrok:

Check warning on line 81 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L81

Did you really mean 'ngrok'?

Check warning on line 81 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L81

Did you really mean 'ngrok'?

```bash
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
Expand All @@ -93,7 +93,7 @@
ngrok config add-authtoken <YOUR_NGROK_AUTHTOKEN>
```

Get the authtoken from the [ngrok dashboard](https://dashboard.ngrok.com/get-started/your-authtoken).

Check warning on line 96 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L96

Did you really mean 'authtoken'?

## 3. Set the Backend API Key

Expand Down Expand Up @@ -152,28 +152,28 @@
</Tab>
</Tabs>

### Keep It Running with tmux

Check warning on line 155 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L155

Did you really mean 'tmux'?

Use `tmux` when you want Agent Canvas to keep running after your SSH session disconnects.

<Tabs>
<Tab title="Backend Only">
```bash
tmux new-session -d -s canvas

Check warning on line 162 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L162

Did you really mean 'tmux'?
tmux send-keys -t canvas 'source ~/.agent-canvas.env && agent-canvas --backend-only --public' Enter

Check warning on line 163 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L163

Did you really mean 'tmux'?
tmux attach-session -t canvas

Check warning on line 164 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L164

Did you really mean 'tmux'?
```
</Tab>
<Tab title="Full Canvas">
```bash
tmux new-session -d -s canvas

Check warning on line 169 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L169

Did you really mean 'tmux'?
tmux send-keys -t canvas 'source ~/.agent-canvas.env && agent-canvas --public' Enter

Check warning on line 170 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L170

Did you really mean 'tmux'?
tmux attach-session -t canvas

Check warning on line 171 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L171

Did you really mean 'tmux'?
```
</Tab>
</Tabs>

Detach from tmux with `Ctrl-b`, then `d`. Reattach later with `tmux attach-session -t canvas`.

Check warning on line 176 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L176

Did you really mean 'tmux'?

## 5. Choose an Access Method

Expand All @@ -189,13 +189,13 @@

Then use `http://localhost:8000` as the backend URL in **Manage Backends**.

### Option B: ngrok Without OAuth

Check warning on line 192 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L192

Did you really mean 'ngrok'?

Use ngrok without OAuth for personal access or a small, trusted backend. Keep `--public` enabled and use a strong `LOCAL_BACKEND_API_KEY`.

Check warning on line 194 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L194

Did you really mean 'ngrok'?

Every ngrok account—including the free plan—comes with a free static domain that looks like `your-domain.ngrok-free.app`. It stays the same across restarts, so `ngrok http 8000` starts on it by default and you can save the URL once and keep reusing it. You can view your domain on the [**Domains**](https://dashboard.ngrok.com/domains) page of the ngrok dashboard.

Check warning on line 196 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L196

Did you really mean 'ngrok'?

Check warning on line 196 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L196

Did you really mean 'ngrok'?

On the VM, in a second terminal or tmux pane:

Check warning on line 198 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L198

Did you really mean 'tmux'?

```bash
ngrok http 8000
Expand All @@ -214,16 +214,16 @@
ngrok http 8000 --url https://your-canvas.ngrok.app
```

What you can use depends on your ngrok plan:

Check warning on line 217 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L217

Did you really mean 'ngrok'?

- **Hobbyist plan:** an ngrok-branded domain such as `your-canvas.ngrok.app`.
- **Pay-as-you-go plan:** your own custom domain such as `canvas.acme.com`.

### Option C: ngrok With Google OAuth

Check warning on line 222 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L222

Did you really mean 'ngrok'?

Use ngrok OAuth with **full Canvas** deployments when the ngrok URL may be reachable by a team or a broader audience. OAuth is an additional gate in front of Agent Canvas; it does not replace `LOCAL_BACKEND_API_KEY`.

Check warning on line 224 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L224

Did you really mean 'ngrok'?

Check warning on line 224 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L224

Did you really mean 'ngrok'?

For backend-only deployments, use ngrok without OAuth and keep `--public` enabled. OAuth is best suited to the full Canvas URL where the UI and backend share the same origin.

Check warning on line 226 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L226

Did you really mean 'ngrok'?

Create `~/policy.yml`, replacing `openhands.dev` with your allowed Google Workspace domain:

Expand All @@ -244,7 +244,7 @@
status_code: 403
```

Start ngrok with the traffic policy:

Check warning on line 247 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L247

Did you really mean 'ngrok'?

```bash
ngrok http 8000 --traffic-policy-file ~/policy.yml
Expand All @@ -254,7 +254,7 @@
To run OAuth on a domain you choose, add `--url` as shown in [Use Your Own Domain](#use-your-own-domain).
</Note>

To run full Canvas and ngrok side by side in tmux:

Check warning on line 257 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L257

Did you really mean 'ngrok'?

Check warning on line 257 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L257

Did you really mean 'tmux'?

```bash
tmux new-session -d -s canvas
Expand All @@ -266,9 +266,9 @@

### Option D: Reverse Proxy With TLS

Use a reverse proxy when you need a stable domain instead of an ngrok URL. Point a domain at the VM, proxy it to `127.0.0.1:8000`, and terminate TLS at the proxy.

Check warning on line 269 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L269

Did you really mean 'ngrok'?

On Ubuntu, install nginx and Certbot:

Check warning on line 271 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L271

Did you really mean 'nginx'?

Check warning on line 271 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L271

Did you really mean 'Certbot'?

```bash
sudo apt-get install -y nginx certbot python3-certbot-nginx
Expand Down Expand Up @@ -324,11 +324,11 @@
Before exposing Agent Canvas beyond an SSH tunnel:

1. **Run with `--public`** and set a strong `LOCAL_BACKEND_API_KEY`.
2. **Restrict network access** with a firewall, VPN, ngrok OAuth, or an identity-aware proxy.

Check warning on line 327 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L327

Did you really mean 'ngrok'?
3. **Use HTTPS** for any internet-reachable URL.
4. **Limit who can SSH to the VM** and keep the OS patched.
5. **Protect the VM filesystem** because it stores settings, secrets, conversations, and working copies.
6. **Rotate keys** if an ngrok URL, API key, or VM login is shared too broadly.

Check warning on line 331 in openhands/usage/agent-canvas/backend-setup/vm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/backend-setup/vm.mdx#L331

Did you really mean 'ngrok'?

## Related Guides

Expand Down
8 changes: 8 additions & 0 deletions openhands/usage/agent-canvas/conversations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

## Child Conversations

When an agent uses `launch_child_conversation`, Agent Canvas can launch a child conversation on a local or Cloud target. Local children can use either an isolated worktree or the parent's shared workspace. Cloud children use the repository and branch selected for the launch.

Check warning on line 10 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L10

Did you really mean 'worktree'?

The child remains linked to its parent, and its result is returned to the parent conversation. Agent Canvas validates the launch inputs before creating the child conversation.

Expand All @@ -15,12 +15,18 @@

Use the conversation list controls to manage automation runs and visible tags:

- Choose `All`, `Hide`, or `Only` to include, exclude, or show only automation-run conversations. You can further select individual automation names, including unnamed automations.

Check warning on line 18 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L18

Did you really mean 'automations'?
- Pinned conversations remain visible when automation-run filtering would otherwise hide them.
- Enable the `Tags` preference to show conversation tag chips. Tags are off by default. Each chip shows the tag key and value as a `Key: value` pair, such as `Artifacts: 1`. When there are more tags than fit, Agent Canvas shows a `+N` chip with the remaining count.

Agent Canvas omits reserved tags and raw automation IDs from the chips. LLM metadata is also hidden by default.

### Collapse or Expand All Workspace Folders

When conversations are grouped by workspace, the `Conversations` header in the sidebar doubles as a bulk control for the visible folders. Select it to collapse every visible workspace folder at once, then select it again to expand them all.

Only the folders currently visible are affected; folders scrolled out of view keep their own state.

## Follow Agent Activity

While an agent is running, the composer shows a live activity chip for its current unresolved action, such as reading a file or running a command. If no action-specific label is available, it shows `Thinking`. The chip disappears when the agent pauses or completes its work.
Expand All @@ -31,17 +37,19 @@

A "Failed to send" bubble can appear while the connection is slow or reconnecting. Once the server confirms the message and it appears in the conversation, Agent Canvas clears the stale bubble automatically. Select `Retry` only if the message never arrives.

Reloading conversation history does not hide a newer failed message: the failed bubble and its `Retry` control are preserved across the reload.

## Inline Markdown Artifact Previews

When an agent creates a Markdown file, Agent Canvas renders it inline as a height-limited rich preview with an internal scrollbar instead of showing only the raw file content. Select `View` to open the full file in the Files drawer.

Check warning on line 44 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L44

Did you really mean 'scrollbar'?

## Image Attachments

When you upload an image as part of a message or an image is produced in a conversation, Agent Canvas displays it as a thumbnail. Click the thumbnail to open the image full size in a lightbox overlay. Dismiss the lightbox by pressing Escape, clicking the close button, or clicking the backdrop.

Check warning on line 48 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L48

Did you really mean 'lightbox'?

Check warning on line 48 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L48

Did you really mean 'lightbox'?

## Conversation Overview Panel

The conversation overview panel displays project context for the active conversation, including workspace information, git state, and loaded resources such as skills, MCP servers, and automations.

Check warning on line 52 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L52

Did you really mean 'automations'?

Toggle the overview using the info control in the conversation header. The panel peeks beside the chat area and closes when you open the Files drawer.

Expand All @@ -56,9 +64,9 @@

### Files View

The **Files** tab is a focused file browser with open-file tabs and close controls. The file tree is resizable and persists its state across refreshes.

Check warning on line 67 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L67

Did you really mean 'resizable'?

Above the file tree, the active workspace path is displayed with a copy button. Hover the truncated path to see the full value in a tooltip, then click to copy it.

Check warning on line 69 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L69

Did you really mean 'tooltip'?

<Note>
The workspace path row is hidden when the conversation has no working directory.
Expand Down Expand Up @@ -190,7 +198,7 @@

## Archive a Conversation

Archiving a conversation hides it from the sidebar list without deleting it. The conversation's full history stays on the backend, and you can unarchive it at any time.

Check warning on line 201 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L201

Did you really mean 'unarchive'?

**To archive a conversation:**

Expand All @@ -212,7 +220,7 @@
</Note>

<Note>
After an installation switches from host-local conversation runtimes to Docker runtimes, conversations created under the previous local runtime have no Docker provisioning identity. Agent Canvas presents these conversations as archived. Their persisted event history remains readable, and Agent Canvas does not open a WebSocket connection for them.

Check warning on line 223 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L223

Did you really mean 'runtimes'?

Check warning on line 223 in openhands/usage/agent-canvas/conversations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/conversations.mdx#L223

Did you really mean 'runtimes'?
</Note>

## Related Guides
Expand Down
4 changes: 4 additions & 0 deletions openhands/usage/agent-canvas/managing-automations.mdx
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
---
title: Managing automations

Check warning on line 2 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L2

Did you really mean 'automations'?
description: Browse, export, import, enable, disable, and run automations from the Agent Canvas Automate view.

Check warning on line 3 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L3

Did you really mean 'automations'?
---

The **Automate** view in Agent Canvas is the in-app control center for your automations. From here you can see all automations on the active backend, inspect their configuration and run history, and manage their lifecycle without leaving the app.

Check warning on line 6 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L6

Did you really mean 'automations'?

Check warning on line 6 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L6

Did you really mean 'automations'?

<Note>
Automations run on the active backend. Switch backends from [Connect and Manage Backends](/openhands/usage/agent-canvas/backends) to see automations on a different backend.

Check warning on line 9 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L9

Did you really mean 'Automations'?

Check warning on line 9 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L9

Did you really mean 'automations'?
</Note>

## Browse and inspect automations

Check warning on line 12 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L12

Did you really mean 'automations'?

Open the **Automate** tab in the sidebar to see all automations on the active backend. Each row shows the automation name, trigger type, and enabled state. When the active backend is healthy but has no automations, the Automate pane remains available and includes an option to add one.

Check warning on line 14 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L14

Did you really mean 'automations'?

Check warning on line 14 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L14

Did you really mean 'automations'?

Click an automation to open its detail view. The detail view shows:

- The full prompt the automation runs
- The automation's script, for automations that run a script bundle instead of a prompt

Check warning on line 19 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L19

Did you really mean 'automations'?
- Trigger configuration (schedule, webhook, or event)
- LLM profile used for runs
- Recent run history and status
Expand All @@ -29,6 +29,10 @@

Automation runs surface a live **phase** that reflects a run's current state: `PENDING`, `RUNNING`, or `FAILED`. The phase appears on automation cards, in the Activity Log, and on the home screen, and updates live as a run progresses. A failed run retains its last phase after it stops.

### Shared Automation Conversations on Cloud

On OpenHands Cloud, a run's conversation can be viewed read-only by other members of your organization. Open the run's link — from the Activity Log or a `/conversations/<id>` URL — and, if you are not the owner, Agent Canvas renders the conversation in read-only mode instead of reporting that it does not exist. Read-only viewers can follow the conversation history but cannot send messages or change the automation.

### Script Automation Run Logs

An automation that runs a script bundle executes its entrypoint directly instead of starting a conversation. For these runs, the run record has no conversation. Use **View logs** on the run to read the script's output; Agent Canvas resolves the logs from the run's sandbox on cloud backends. A run that executed a script shows `No conversation — this run executed a script. Use View logs for its output.` instead of `No Conversation`.
Expand All @@ -37,7 +41,7 @@
On cloud backends, a run's sandbox is deleted shortly after the run finishes unless the backend keeps it for a cleanup delay. Once the sandbox is gone, the logs are no longer available and the run shows a deleted-sandbox message. Open **View logs** while the run is in progress to read its output.
</Note>

To see what a script automation runs, open its detail view and read the **Script** section, which replaces the prompt section for prompt-less automations and lists the bundle's files.

Check warning on line 44 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L44

Did you really mean 'automations'?

### Activity Log Costs and Exports

Expand All @@ -45,9 +49,9 @@

Use the Activity Log export controls to download run data as CSV or JSON. Both formats include a raw numeric `cost` field for every run, as well as the run's `phase`. An unavailable cost is exported as `null`.

## Enable and disable automations

Check warning on line 52 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L52

Did you really mean 'automations'?

Toggle an automation on or off from the kebab menu (⋮) on the automation row, or from the detail view. Disabled automations do not fire on their scheduled trigger or in response to events, but their configuration is preserved.

Check warning on line 54 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L54

Did you really mean 'automations'?

### Disablement reasons

Expand Down Expand Up @@ -123,7 +127,7 @@

5. Confirm to create the automation.

Imported automations are created **disabled**. After importing, open the automation from the list, review its configuration, and enable it when ready.

Check warning on line 130 in openhands/usage/agent-canvas/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/managing-automations.mdx#L130

Did you really mean 'automations'?

## Related guides

Expand Down
2 changes: 1 addition & 1 deletion openhands/usage/agent-canvas/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
description: Understand Agent Canvas, how it runs agents, and which setup path to choose.
---

Agent Canvas is an open-source control surface for agentic work. From one place, you can manage conversations, files, terminals, model configuration, backends, and automations.

Check warning on line 6 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L6

Did you really mean 'agentic'?

Check warning on line 6 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L6

Did you really mean 'automations'?

The browser interface connects to one or more backends that run the agent and its tools. By default, that backend runs on your machine, but you can instead use Docker, a VM, Modal, or [OpenHands Cloud](/openhands/usage/cloud/openhands-cloud). The LLM models can run locally, through a provider API or be accessed through an ACP agent.

Expand All @@ -14,7 +14,7 @@
| If you want to... | Start here |
|-------------------|------------|
| Run OpenHands locally in a browser | [Install Agent Canvas](/openhands/usage/agent-canvas/setup) |
| Use a sandboxed local environment | [Use Docker with Agent Canvas](/openhands/usage/agent-canvas/backend-setup/docker) |

Check warning on line 17 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L17

Did you really mean 'sandboxed'?
| Run agents on an always-on machine | [VM / Self-Hosted Installation](/openhands/usage/agent-canvas/backend-setup/vm) |
| Connect to managed cloud sandboxes | [Cloud Backend](/openhands/usage/agent-canvas/backend-setup/cloud) |
| Use Claude Code, Codex, Gemini CLI, or another ACP agent | [ACP Agents](/openhands/usage/agent-canvas/acp-agents) |
Expand All @@ -27,8 +27,8 @@

| Concept | What It Means | Why It Matters |
|-------|---------------|----------------|
| **Browser UI** | The web interface you open in your browser. | This is where you chat, inspect files, manage settings, and configure automations. |

Check warning on line 30 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L30

Did you really mean 'automations'?
| **Backend** | The agent server that runs conversations, tools, settings, secrets, and automations. | This determines where the agent runs and what machine or sandbox it can access. |

Check warning on line 31 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L31

Did you really mean 'automations'?
| **Workspace** | The folder, repository, container mount, or cloud sandbox the agent works in. | This determines which files the agent can read and write. |
| **Agent and model** | The OpenHands agent or an ACP agent, plus the model credentials it uses. | This determines which LLM or provider receives conversation context and powers the agent. |

Expand Down Expand Up @@ -62,7 +62,7 @@
| Setup | Trust Boundary | Best For |
|-------|----------------|----------|
| **npm local install** | Runs directly on your machine. The agent server can operate on the local filesystem. | Fastest local setup when you trust the machine and understand the file access. |
| **Docker** | Runs inside a container and only sees the directories you mount. | Local sandboxing and clearer file boundaries. |

Check warning on line 65 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L65

Did you really mean 'sandboxing'?
| **VM or dedicated machine** | Runs on the remote host you control. | Always-on agents, heavier compute, team-shared backends, or personal/work separation. |
| **OpenHands Cloud** | Runs in managed OpenHands Cloud sandboxes. | Cloud execution without maintaining your own machine or VM backend. |

Expand All @@ -72,7 +72,7 @@

## What Happens When You Close the Terminal?

For a local npm or npx installation, closing the terminal stops the Agent Canvas process, so the browser UI can no longer use its local backend. Start Agent Canvas again with the same command to continue. A Docker container, VM, or cloud backend continues running until that backend is stopped.

Check warning on line 75 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L75

Did you really mean 'npx'?

See [Install](/openhands/usage/agent-canvas/setup#run-agent-canvas-again) to restart Agent Canvas and [Troubleshooting](/openhands/usage/agent-canvas/troubleshooting) if the browser cannot reconnect.

Expand All @@ -83,7 +83,7 @@
- **Direct provider key** — enter an API key from Anthropic, OpenAI, Google, or another supported provider.
- **OpenHands LLM API key** — use an OpenHands LLM API key for verified hosted models.
- **ACP agent subscription login** — use a signed-in provider, such as Claude Code, Codex, or Gemini, when the backend runs on the same machine as that login.
- **Local or OpenAI-compatible provider** — connect providers such as Ollama, LM Studio, LiteLLM, or a compatible gateway through model settings.

Check warning on line 86 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L86

Did you really mean 'Ollama'?

See [Configure a Model](/openhands/usage/agent-canvas/model-configuration), [Manage LLM Profiles](/openhands/usage/agent-canvas/llm-profiles), and [ACP Agents](/openhands/usage/agent-canvas/acp-agents) for details.

Expand All @@ -103,12 +103,12 @@

| Surface | Best for | Where it runs |
|---------|----------|---------------|
| **Agent Canvas** | Browser-first agent work, workspace access, and automations | The backend you select: your machine, Docker, a VM, Modal, or Cloud |

Check warning on line 106 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L106

Did you really mean 'automations'?
| **OpenHands SDK** | Building agent-powered Python applications | Your application and the workspace you configure |
| **OpenHands Cloud** | Fully managed hosted execution | Managed OpenHands Cloud infrastructure |
| **Local GUI (Legacy)** | Following older Docker-based Local GUI documentation | Your local Docker environment |

### Agent Canvas vs "openhands serve"

Check warning on line 111 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L111

Did you really mean 'openhands'?

`agent-canvas` starts the current Agent Canvas UI and backend stack. `openhands serve` starts the legacy OpenHands CLI GUI server and will not run if you have only installed agent-canvas.

Expand All @@ -120,12 +120,12 @@

For the normal local setup, you need:

- Node.js 22.12 or later
- Node.js 24 or later
- `npm`
- A model access path, such as a provider API key, OpenHands Cloud LLM key, ACP subscription login, or local model server
- A folder, repository, or project workspace for the agent to work in

For a sandboxed local setup, use Docker instead of the direct npm backend path.

Check warning on line 128 in openhands/usage/agent-canvas/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/overview.mdx#L128

Did you really mean 'sandboxed'?

## Where To Go Next

Expand Down
4 changes: 2 additions & 2 deletions openhands/usage/agent-canvas/setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
description: Install, run, update, or uninstall Agent Canvas.
---

The `agent-canvas` launcher can run the Canvas client with Agent Server, Automation Server, and ingress as an all-in-one local stack. Use npm or npx for direct local execution, or Docker for a containerized stack with explicit project mounts. You can also run the client separately and connect it to an existing backend.

Check warning on line 6 in openhands/usage/agent-canvas/setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/setup.mdx#L6

Did you really mean 'npx'?

<Warning>
Treat agents and ACP processes as untrusted: they can run shell commands, read files, write files, and use connected tools within their execution environment. Agent Canvas is the client and does not provide isolation. If the backend runs directly on your machine, the agent can act with your user account's permissions. Use a container, sandbox, or VM to define a tighter boundary. Before exposing backend services to a network you do not control, review [VM / Self-Hosted Installation](/openhands/usage/agent-canvas/backend-setup/vm).

Check warning on line 9 in openhands/usage/agent-canvas/setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/setup.mdx#L9

Did you really mean 'untrusted'?
</Warning>

## Choose An Install Method
Expand All @@ -15,12 +15,12 @@
|--------|-------------|---------------------------|
| **npm local install** | You want the quickest local browser setup. | Runs directly on your machine and can work in local workspaces you open. |
| **Docker** | You want a local sandbox with clearer file boundaries. | Runs inside a container and can access mounted project directories. |
| **npx** | You want to try Agent Canvas without installing the package globally. | Runs directly on your machine and can work in local workspaces you open. |

Check warning on line 18 in openhands/usage/agent-canvas/setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/setup.mdx#L18

Did you really mean 'npx'?
| **VM / self-hosted** | You want an always-on backend, stronger hardware, or a team-accessible server. | Runs on the VM or dedicated host you configure. |
| **From source** | You are contributing to Agent Canvas or changing the frontend/backend stack. | Runs your local development checkout. |

<Note>
If you are new to Agent Canvas, use `npx` for a quick first run or npm local install if you want a reusable `agent-canvas` command. Use Docker when you specifically want sandboxing.

Check warning on line 23 in openhands/usage/agent-canvas/setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/setup.mdx#L23

Did you really mean 'sandboxing'?
</Note>

## Verify Prerequisites
Expand All @@ -28,7 +28,7 @@
<Tabs>

<Tab title="npm">
Install [Node.js](https://nodejs.org/en/download) 22.12 or later and [`uv`](https://docs.astral.sh/uv/getting-started/installation/), then verify both tools are available:
Install [Node.js](https://nodejs.org/en/download) 24 or later and [`uv`](https://docs.astral.sh/uv/getting-started/installation/), then verify both tools are available:

```bash
node --version
Expand All @@ -51,7 +51,7 @@
</Tab>

<Tab title="npx">
Install [Node.js](https://nodejs.org/en/download) 22.12 or later and [`uv`](https://docs.astral.sh/uv/getting-started/installation/), then verify the tools are available:
Install [Node.js](https://nodejs.org/en/download) 24 or later and [`uv`](https://docs.astral.sh/uv/getting-started/installation/), then verify the tools are available:

```bash
node --version
Expand All @@ -65,7 +65,7 @@
</Tabs>

<Note>
Termux and other mobile Linux environments are not a primary supported target. For the most reliable local setup, use macOS, Linux, Windows with PowerShell, or Windows with WSL2.

Check warning on line 68 in openhands/usage/agent-canvas/setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/setup.mdx#L68

Did you really mean 'Termux'?
</Note>

## Install And Run
Expand Down Expand Up @@ -121,7 +121,7 @@
PowerShell uses backticks (`` ` ``) for line continuation. If Docker reports that it cannot connect to the daemon, start Docker Desktop and run the command again.
</Note>
</Tab>
<Tab title="npx">

Check warning on line 124 in openhands/usage/agent-canvas/setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/setup.mdx#L124

Did you really mean 'npx'?
Run the latest published package without installing it globally:

```bash
Expand Down Expand Up @@ -308,7 +308,7 @@

## Desktop App (Preview Build)

The Agent Canvas desktop app for macOS, Windows, and Linux is an early preview build ready for user testing. It bundles the Node.js and `uv` runtimes, so you do not need to install prerequisites or keep a terminal open.

Check warning on line 311 in openhands/usage/agent-canvas/setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/setup.mdx#L311

Did you really mean 'runtimes'?

<Note>
Please [join the OpenHands Slack community](https://openhands.dev/joinslack) to share feedback and [open an issue](https://github.com/OpenHands/OpenHands/issues) for problems you find while testing the preview.
Expand All @@ -324,7 +324,7 @@
2. Open the disk image and drag **Agent Canvas** to **Applications**.
3. Launch Agent Canvas from Applications.

The universal disk image runs on both Apple silicon and Intel Macs, and bundles the `uv` and Node.js runtimes for each architecture. You do not need a separate install method on an Intel Mac.

Check warning on line 327 in openhands/usage/agent-canvas/setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/agent-canvas/setup.mdx#L327

Did you really mean 'runtimes'?

**Windows**

Expand Down
2 changes: 2 additions & 0 deletions openhands/usage/automations/creating-automations.mdx
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
title: Creating Automations

Check warning on line 2 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L2

Did you really mean 'Automations'?
description: Learn how to create scheduled automations using the Automation Skill.

Check warning on line 3 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L3

Did you really mean 'automations'?
---

The easiest way to create an automation is to ask OpenHands directly. The Automation Skill handles all the details—you just describe what you want.

## Prompt vs Plugin Automations

Check warning on line 8 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L8

Did you really mean 'Automations'?

There are two types of automations:

Check warning on line 10 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L10

Did you really mean 'automations'?

<Tabs>
<Tab title="Prompt-based">
Most automations are prompt-based. Just describe the task in natural language:

Check warning on line 14 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L14

Did you really mean 'automations'?

```
Create an automation called "Daily Standup Summary" that runs every weekday
Expand Down Expand Up @@ -121,12 +121,14 @@
- "first day of each month"
- "twice a day at 9 AM and 5 PM"

The agent converts this to the appropriate cron schedule.

Check warning on line 124 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L124

Did you really mean 'cron'?

<Tip>
If you're familiar with cron expressions, you can specify them directly: "Run on cron schedule `0 9 * * 1-5`"

Check warning on line 127 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L127

Did you really mean 'cron'?

Check warning on line 127 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L127

Did you really mean 'cron'?
</Tip>

Cron fields also accept a single-start step, written as `start/step`. The validator expands it from the start value up to the field maximum, so `2/2` in the month field means February, April, June, August, October, and December. For example, `0 0 31 2/2 *` is accepted as a valid schedule. A step with a wildcard start, such as `*/2`, remains valid.

Check warning on line 130 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L130

Did you really mean 'Cron'?

Check warning on line 130 in openhands/usage/automations/creating-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/creating-automations.mdx#L130

Did you really mean 'validator'?

## Run Timeouts

Each run stops after its timeout. The default is 10 minutes; you can request up to 30 minutes, for example: "Use a 20-minute timeout."
Expand Down
2 changes: 2 additions & 0 deletions openhands/usage/automations/managing-automations.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Managing Automations

Check warning on line 2 in openhands/usage/automations/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/managing-automations.mdx#L2

Did you really mean 'Automations'?
description: List, update, enable, disable, and delete your automations.

Check warning on line 3 in openhands/usage/automations/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/managing-automations.mdx#L3

Did you really mean 'automations'?
---

You can manage your automations by asking OpenHands directly—just like you created them.

Check warning on line 6 in openhands/usage/automations/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/managing-automations.mdx#L6

Did you really mean 'automations'?

## Viewing Your Automations

Check warning on line 8 in openhands/usage/automations/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/managing-automations.mdx#L8

Did you really mean 'Automations'?

```
List my automations
Expand Down Expand Up @@ -82,9 +82,11 @@
In an automation's `Activity Log`, use `Export JSON` or `Export CSV` to download its complete run history.

<Tip>
Automations are user-scoped, so all your automation runs appear alongside your regular conversations. Look for them in your conversations list after each scheduled run.

Check warning on line 85 in openhands/usage/automations/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/managing-automations.mdx#L85

Did you really mean 'Automations'?
</Tip>

On OpenHands Cloud, organization members can open a link to an automation-run conversation owned by another member and view it read-only. Start from the run link in the automation's activity log or a conversation URL of the form `/conversations/<id>`. Read-only viewers can follow the full history but cannot send messages or change the agent configuration.

### Run Statuses

- **Pending**: Scheduled, waiting to start
Expand All @@ -92,7 +94,7 @@
- **Completed**: Finished successfully
- **Failed**: Something went wrong—check the run details

## Deleting Automations

Check warning on line 97 in openhands/usage/automations/managing-automations.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/automations/managing-automations.mdx#L97

Did you really mean 'Automations'?

```
Delete the "Old Report" automation
Expand Down
2 changes: 2 additions & 0 deletions openhands/usage/settings/llm-settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
## Overview

The LLM settings allows you to bring your own LLM and API key to use with OpenHands. This can be any model that is
supported by litellm, but it requires a powerful model to work properly.

Check warning on line 9 in openhands/usage/settings/llm-settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/settings/llm-settings.mdx#L9

Did you really mean 'litellm'?
[See our recommended models here](/openhands/usage/llms/llms#model-recommendations). You can also configure some
additional LLM settings on this page.

Expand Down Expand Up @@ -85,6 +85,8 @@
- **Set as Active**: Make this profile the default for new conversations
- **Delete**: Remove the profile

If a saved profile references a managed model that is no longer available in the installation, OpenHands shows a `Model not listed` warning next to the profile on the LLM settings page and in the conversation picker. The profile and your current selection remain unchanged; select a listed model to clear the warning.

<Note>
You can save up to 10 LLM profiles per account. Delete unused profiles if you need to create new ones.
</Note>
Expand Down Expand Up @@ -172,7 +174,7 @@
Implement a simple web page on the features of OpenHands with Claude Opus 4.7, and then switch to GPT-5.5 and review the code.
```

![Agent Canvas showing example switch_llm tool calls that move a task between saved profiles](/openhands/static/img/model-selection-tool-agent-canvas.png)

Check warning on line 177 in openhands/usage/settings/llm-settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/settings/llm-settings.mdx#L177

Did you really mean 'switch_llm'?

The model selection tool behaves as follows:

Expand Down
2 changes: 2 additions & 0 deletions openhands/usage/settings/mcp-settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
servers can provide additional functionality to the agent, such as specialized data processing, external API access,
or custom tools. MCP is based on the open standard defined at [modelcontextprotocol.io](https://modelcontextprotocol.io).

## Supported MCPs

Check warning on line 13 in openhands/usage/settings/mcp-settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/settings/mcp-settings.mdx#L13

Did you really mean 'MCPs'?

OpenHands supports the following MCP transport protocols:

Expand Down Expand Up @@ -54,7 +54,7 @@
- Description: API key for authentication.
</Tab>
<Tab title="SHTTP Servers">
SHTTP (Streamable HTTP) servers are configured using either a string URL or an object with the following properties:

Check warning on line 57 in openhands/usage/settings/mcp-settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/settings/mcp-settings.mdx#L57

Did you really mean 'Streamable'?

- `url` (required)
- Type: `str`
Expand Down Expand Up @@ -143,7 +143,7 @@
"http://localhost:8081/sse",

# External MCP service with authentication
{url="https://api.example.com/mcp/sse", api_key="your-api-key"}

Check warning on line 146 in openhands/usage/settings/mcp-settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/settings/mcp-settings.mdx#L146

Did you really mean 'mcp'?
]

# SHTTP Servers - Modern streamable HTTP transport (recommended)
Expand All @@ -167,7 +167,7 @@
```toml
[mcp]
# Direct stdio servers - use only for development/testing
stdio_servers = [

Check warning on line 170 in openhands/usage/settings/mcp-settings.mdx

View check run for this annotation

Mintlify / Mintlify Validation (allhandsai) - vale-spellcheck

openhands/usage/settings/mcp-settings.mdx#L170

Did you really mean 'stdio_servers'?
# Basic stdio server
{name="fetch", command="uvx", args=["mcp-server-fetch"]},

Expand Down Expand Up @@ -212,6 +212,8 @@
3. **Token storage**: After authorization, tokens are securely stored locally in `~/.fastmcp/oauth-mcp-client-cache/`
4. **Automatic refresh**: FastMCP automatically refreshes tokens as needed

On OpenHands Cloud, saving MCP settings keeps the OAuth credential and its token state instead of flattening it into a request header, so installed servers keep their authorization across saves. When a server already holds working tokens, OpenHands probes them and skips the consent prompt; the browser window only opens when authorization is actually required.

### Configuration

<Tabs>
Expand Down
Loading