# Installing the CLI [<span class="proPill"></span>](/curio/docs/#curio-professional) [<span class="sustainerPill"></span>](/curio/docs/#curio-sustainers)

Curio supports automation through a separately downloaded command line tool named `curio`. The CLI can inspect and modify Curio projects from Terminal, scripts, and [AI agents](agents.md).

!!! tip "See what you can build"
    Visit the [Curio CLI overview](/curio/cli/) to explore the CLI Examples, with downloadable recipes and practical tutorials for dashboards, AI-agent workflows, and more.

!!! important "Availability and Updates"
    1️⃣ The Curio CLI is an extra perk for Curio Professional [sustainers](/curio/docs/#curio-sustainers) with either an active Mac App Store subscription or a traditional Curio license within its current update window. If your subscription or update window has lapsed, renew from the appropriate online store.

    2️⃣ You are also expected to keep current with Curio CLI and app releases so we can ship timely security and data-integrity fixes, protocol updates, bug fixes, and new features. This is enforced: see [Updating the CLI](#updating-the-cli) below.

## What the CLI Does

The `curio` command gives you a second way into your projects. Anything you would normally do by clicking around a project&mdash;finding figures, reading and changing their content, filing them into Organizer sections, bringing content in and sending it back out&mdash;you can also do with a command, from a script, or through an AI agent:

- **Query.** Search a project with Curio&rsquo;s [query language](/curio/docs/search/), spanning text, tags, dates, status, ratings, flags, and metadata.
- **Read and update.** Inspect and change titles, text, checkboxes, tags, dates, meta values, figure geometry, and dozens of other figure and Organizer item fields.
- **Organize.** Create Organizer sections, folders, and idea spaces, then move figures and Organizer items where they belong.
- **Import and export.** Bring files, text, and structured content into a project, spread PDF pages across idea spaces, and export figures and idea spaces back out.
- **Inspect.** List the Organizer hierarchy, project assets, available tags, available fields, Project Center categories, and the state of the running app.
- **Navigate.** Send the Curio app to a specific figure or idea space, open deep links, or work with whatever is currently selected.

There are [two ways to work](working.md#two-ways-to-work): by default the CLI talks to the running Curio app, which supports the full command set including selection-aware reads and every write operation. You can also point it at a `.curio` file directly with `--project`, which reads the project from disk without launching Curio&mdash;useful for read-only scripts and scheduled jobs.

Results print as readable text for people, or as JSON with meaningful exit codes for scripts and agents. See [JSON Output and Exit Codes](working.md#json-output-and-exit-codes).

For AI, the CLI ships bundled [skill files](agents.md#ai-agent-skills) that teach command-line agents such as Codex and Claude Code how to drive the `curio` command, plus a built-in [MCP server](agents.md#mcp-server) so MCP hosts such as ChatGPT Desktop, Claude Desktop, and Antigravity can work with your Curio data directly.

## Downloading and Installing

The Curio CLI is a separate download from the main Curio application. Installing the Curio app does **not** automatically install the `curio` command line tool.

The Curio CLI installer is code-signed with our Apple Developer ID certificate and notarized by Apple, which means macOS has verified that it comes from Zengobi and is free of known malicious content.

You can install or update the CLI from within Curio using the **Curio > Install Curio CLI** or **Curio > Update Curio CLI** menu item.

- In the website edition, Curio downloads the signed installer, verifies it, reveals it in Finder, and opens it.
- In the Mac App Store edition, Curio opens the CLI web page so you can download and install it yourself.

Alternatively, download the latest CLI release directly from [zengobi.com/curio/cli/download](https://www.zengobi.com/curio/cli/download).

## Verifying the Install

After installing it, open Terminal and run:

```text
curio --version
```

The signed installer places the release payload like this:

```text
/
|-- Library/
|   `-- Application Support/
|       `-- CurioCLI/
|           |-- bin/
|           |   |-- curio
|           |   `-- Frameworks/
|           |-- skills/
|           |   |-- curio/
|           |   |-- curio-query/
|           |   `-- curio-mcp/
|           `-- resources/
|               `-- MCPB/
`-- usr/
    `-- local/
        `-- bin/
            `-- curio -> /Library/Application Support/CurioCLI/bin/curio
```

The CLI stores its update cache in `~/Library/Application Support/CurioCLI/config.json`. User-facing CLI preferences live separately in `~/.curio/settings.json`; see [Settings](working.md#settings).

If Terminal still reports that `curio` cannot be found, make sure the installer completed successfully and verify that `/usr/local/bin/curio` exists.

## Updating the CLI

!!! important "Important"
    To ensure robust handling of your project data, you are expected to keep up with both Curio CLI releases and Curio app releases.

To review what changed in recent CLI releases, see the [Curio CLI release notes](https://www.zengobi.com/curio/cli/releasenotes/).

The CLI checks for updates automatically once per day before handling normal commands such as `query` and `get`. The first such command of the day fetches the latest CLI release metadata and caches it locally; later commands that same day reuse that cached result.

If a newer CLI release is available, the CLI prints an update notice to standard error before handling the request and tells you how many days remain before the update becomes mandatory. For the first 30 days after a newer CLI release is published, the command still runs. After that 30-day grace period, the CLI stops the request and returns an error until you upgrade.

Use this command at any time to refresh the update state immediately:

```text
curio update
```

If an update is available and the CLI was installed with the signed installer, `curio update` asks whether to download and launch the installer. Press `y` or Return to download the installer to your Downloads folder, reveal it in Finder, and open it. Press any other key to leave the installer untouched.

Before opening a downloaded installer, the CLI verifies the package against the SHA-256 checksum in the update metadata, checks its installer signature with macOS `pkgutil`, requires the Zengobi Developer ID Installer identity, and runs a Gatekeeper installer assessment with `spctl`. If any verification step fails, the CLI removes the downloaded package and does not open it.

When `curio update` is run from a script, through redirected input/output, or through an MCP host, it does not prompt; it only reports the update details and download URL.

Some commands remain available even when an update is required: `curio docs`, `curio help`, `curio --help`, `curio --version`, `curio fields`, `curio skills`, `curio settings`, `curio claude`, and `curio update`.

Each CLI release also declares the minimum Curio app version it requires. If your installed Curio app is too old, the CLI will refuse the request and tell you which Curio version is required.

## Next Steps

- Read [Using the CLI](working.md) for querying projects, reading and updating content, importing and exporting, navigation, settings, command output, and troubleshooting.
- Read [AI Agents](agents.md) to install Curio skills or connect ChatGPT, Codex, Claude, Antigravity, and other MCP hosts.
