> ## Documentation Index
> Fetch the complete documentation index at: https://hub.hcompany.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Use HoloDesktop CLI from the terminal

> Run desktop tasks directly from your terminal with holo run.

Running a task from the terminal is the most direct way to use HoloDesktop CLI, and the quickest way to check it works before you wire it into an agent host. One `holo run` and the agent is operating your desktop.

## Before you start

Complete the [Quickstart](/holo-desktop-cli/getting-started/quickstart), then choose a [hosted or local model](/holo-desktop-cli/getting-started/hosted-or-local-models).

For hosted mode:

```bash theme={null}
holo whoami
```

For local mode, make sure your OpenAI-compatible server is running.

## Run a task

Hosted mode uses H Company's Models API:

```bash theme={null}
holo run "Open TextEdit and write a short note saying HoloDesktop CLI is installed"
```

Local mode uses your server:

```bash theme={null}
holo run \
  --base-url http://localhost:8000/v1 \
  "Open TextEdit and write a short note saying HoloDesktop CLI is installed"
```

Add `--model` when the backend needs a specific model.

For hosted mode, use H Company API model IDs such as `holo3-1-35b-a3b` or `holo3-122b-a10b`:

```bash theme={null}
holo run \
  --model holo3-1-35b-a3b \
  "Open TextEdit and write a short note saying HoloDesktop CLI is installed"
```

Local mode uses the model ID exposed by your local server. For example, a server running the Holo 3.1 35B checkpoint might expose `Hcompany/Holo-3.1-35B-A3B`.

```bash theme={null}
holo run \
  --base-url http://localhost:8000/v1 \
  --model Hcompany/Holo-3.1-35B-A3B \
  "Open TextEdit and write a short note saying HoloDesktop CLI is installed"
```

## Useful options

| Option         | Use it when                                                  |
| -------------- | ------------------------------------------------------------ |
| `--base-url`   | You want local mode with an OpenAI-compatible server         |
| `--model`      | Your hosted or local backend needs a specific model ID       |
| `--max-steps`  | You want to cap how many agent steps the CLI can take        |
| `--max-time-s` | You want a wall-clock timeout                                |
| `--runs-dir`   | You want run event logs somewhere other than `~/.holo/runs/` |
| `--profile`    | You want per-step timing output at the end of the run        |
| `--quiet`      | You only want the final answer printed                       |

## Write good task strings

The agent only sees the task string you pass to `holo run`. Include the app, the account or workspace when it matters, the action to take, and what success looks like.

Good:

```bash theme={null}
holo run "Open Calendar, show today's events, and report each event with its time and title. Do not create or edit anything."
```

Too vague:

```bash theme={null}
holo run "What's on today?"
```

## Check it worked

The task prints progress in the terminal, then a final answer. Run logs are written under:

```text theme={null}
~/.holo/runs/
```

Runtime startup logs are written under:

```text theme={null}
~/.holo/logs/
```

## What's next

Use [MCP](/holo-desktop-cli/integrations/use-mcp) when you want Claude Code, Cursor, Codex, or another host to call the CLI as a tool.
