Curio CLI
Installation and Integrations
Looking for how to use the CLI?
See Working with the Curio CLI for querying projects, reading and updating content, importing and exporting, navigating, and other day-to-day CLI workflows.
Curio supports automation through a separately downloaded command line tool named curio. The CLI can query projects, read figure and Organizer item properties, inspect sections, assets, and tags, update selected content, export results, import files and content, navigate directly to figures or idea spaces, install AI agent skill files for AI coding assistants, and run a stdio MCP server for AI clients.
The CLI is designed for Terminal users, scripts (ex: shell, Python), AI agents (ex: ChatGPT Desktop, codex, claude, agy, OpenClaw), and MCP hosts (ex: Claude Desktop). It prints JSON responses, JSONL for batch output, uses the same query language as Curio’s Search shelf and Quick Find, and works either with the running Curio app or directly against a .curio project file on disk.
Availability and Updates
1️⃣ The Curio CLI is an extra perk for Curio Professional 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 below.
Installing the CLI
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, to download the latest CLI release directly, visit: https://www.zengobi.com/curio/cli/download
Verifying the Install
After installing it, open Terminal and run:
curio --version
The signed installer places the release payload like this:
/
|-- 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 CLI 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
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.
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:
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 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.
After Installing the CLI
You can use curio on its own from Terminal, scripts, or other tools that can run command line programs.
If you want an AI coding assistant to work with Curio projects more directly, you may also want to:
- Install AI Agent Skills with the Installing skills workflow, which places CLI-oriented skills in the shared
~/.agentsfolder or a platform-specific folder for agents such as Claude Code, Codex, or Antigravity CLI. - Install the Claude Desktop connector with
curio claude installfor Claude Desktop’s Chat and Cowork tabs.
Two Ways to Work
By default, curio talks to the running Curio app. This mode supports everything, including selection-based queries, Organizer creation, property changes, import/export, and navigation by UUID.
curio query "#active" --fields id,title
You can also point the CLI at a project file directly using --project:
curio query --project ~/Documents/MyProject.curio "#active" --fields id,title
This direct mode is read-only, so it is ideal for scripts and automations that need to inspect a project without launching Curio first.
Important
--project mode is read-only.
You can use it with query, get, sections, assets, and tags, but not set, create, export, import, navigate, or status.
Note
Direct project access requires a recent activation token.
If you see a NotActivated error, simply launch the Curio app once and try again.
Finding Help
The CLI is self-documenting. These commands are the quickest way to inspect the capabilities of the version you have installed:
curio help
curio --help
curio fields
curio fields due_date
curio tags
curio settings list
curio skills list
curio claude doctor
curio mcp-server --log ~/Library/Logs/curio-mcp.log
curio status
curio --version
Use --verbose with most commands if you want diagnostic details about transport selection, repository discovery, or activation handling.
CLI Settings
The CLI supports user settings in:
~/.curio/settings.json
Use curio settings to inspect and update the file instead of editing it by hand:
curio settings list
curio settings get query.max_chars
curio settings set query.max_chars=4000
curio settings set output.pretty_json=no
curio settings remove query.max_chars
curio settings path
curio settings reveal
Settings are addressed by dotted keys and stored as nested JSON.
Explicit command-line flags still win over settings.
Boolean settings accept true/false, yes/no, on/off, and 1/0.
Use curio settings reveal to create the settings file if needed and reveal it in Finder.
| Setting | Type | Default | Description |
|---|---|---|---|
query.max_chars |
integer | unset | Default text truncation for curio query; explicit --max-chars wins. |
output.pretty_json |
boolean | true |
Pretty-print normal JSON responses. Set to no for compact script output. |
output.color |
string | auto |
Terminal styling: auto, always, or never. |
diagnostics.verbose |
boolean | false |
Enable verbose diagnostics by default. |
batch.continue_on_error |
boolean | false |
Continue batch execution after a failed line unless stopped by another fatal condition. |
mcp.log_path |
string | unset | Default log path for curio mcp-server; explicit --log wins. |
transport.send_timeout_seconds |
number | 10.0 |
Timeout for sending requests to the running Curio app. |
transport.receive_timeout_seconds |
number | 10.0 |
Timeout while waiting for the running Curio app to reply. |
curio.install_preference |
string | auto |
Preferred Curio install for direct project reads when both editions are present: auto, direct, or mas. |
AI Agent Skills
The Curio CLI bundles skill files that teach CLI-capable AI agents how to use the curio command effectively.
The installable CLI skills are linked into each platform’s skill directory as symlinks pointing at the bundled files under /Library/Application Support/CurioCLI/skills/, so they always reflect the latest installed CLI version automatically.
Two skills are installed by curio skills install ...:
- curio — general CLI skill covering all commands, transport modes, fields, workflows, and error handling.
- curio-query — query language skill covering boolean logic, tags, dates, comparisons, and result-shaping commands.
A third bundled skill, curio-mcp, remains in the installation for reference and for legacy/manual hosts that support separate uploaded skill packages.
Claude Desktop users should normally use the MCPB connector installed by curio claude install instead of uploading curio-mcp-upload.zip.
Codex and Claude Code can invoke these skills automatically when your request matches the skill’s description, or you can invoke them explicitly.
In Codex, mention a skill with $curio or $curio-query, or type /skills and choose the skill from the Skills UI.
In Claude Code, use /curio or /curio-query.
See OpenAI’s Codex skills documentation and Anthropic’s Claude Code skills documentation for platform-specific details.
Listing platforms
Use curio skills or curio skills list to see which platforms are available and whether skills are currently installed:
curio skills list
The output shows each supported platform with its install status: installed, partial, or not installed.
Install status is determined dynamically from the platform’s current skill symlinks, not from a separate manifest.
Platforms are detected automatically based on whether their configuration directory exists (e.g., ~/.agents/ for the common agents folder or ~/.claude/ for Claude Code).
When a platform is partial, the CLI prints which installable skills are missing.
Installing skills
Install skills into the common ~/.agents folder used by most AI agents, including ChatGPT/Codex and Gemini/Antigravity but not Claude:
curio skills install agents
Or install only for a specific platform:
curio skills install claude
curio skills install codex
curio skills install agy
curio skills install antigravity
Or auto-detect all installed platforms and install skills for all of them at once:
curio skills install --all
Each install creates symlinks from the platform’s skill directory to the bundled skill files.
For example, curio skills install agents creates:
~/.agents/skills/curio→/Library/Application Support/CurioCLI/skills/curio~/.agents/skills/curio-query→/Library/Application Support/CurioCLI/skills/curio-query
The bundled curio-mcp skill is not installed as a platform symlink by this command.
It remains available in the bundled skills folder as legacy/reference material, but Claude Desktop users should normally install the MCPB connector with curio claude install.
Installing is idempotent — running it again when skills are already installed is a safe no-op.
If a non-CLI-managed file or directory already exists at the symlink location, the installer skips it and prints a warning rather than overwriting your data.
Uninstalling skills
Remove skills for a specific platform:
curio skills uninstall claude
Or uninstall CLI-managed skill symlinks for all Curio CLI-managed platforms:
curio skills uninstall --all
Uninstall only removes symlinks that point to the CLI’s bundled skills directory. It will not remove files or symlinks that were created manually or by another tool.
Browsing bundled skills
To open the bundled skills folder in Finder for manual inspection or copying to an unsupported platform:
curio skills reveal
Supported platforms
| Platform | Skill directory |
|---|---|
| Agents (common folder used by most AI agents) | ~/.agents/skills/ |
| Claude Code | ~/.claude/skills/ |
| Codex | ~/.codex/skills/ |
Antigravity CLI (agy) |
~/.gemini/skills/ |
| Antigravity Desktop | ~/.antigravity/skills/ |
Platforms that support manual skill copying can use curio skills reveal to access the bundled skill files directly.
The ChatGPT desktop app can use these skills when they are installed in either ~/.agents/skills/ or ~/.codex/skills/.
Skills subcommands
curio skills
curio skills install <platform>
curio skills install --all
curio skills uninstall <platform>
curio skills uninstall --all
curio skills reveal
MCP Server
The same curio binary can also run as a stdio MCP server:
curio mcp-server
curio mcp-server --log ~/Library/Logs/curio-mcp.log
This mode is intended to be launched by an MCP host such as Claude Desktop.
It is not a daemon and does not run as a background service.
The host starts curio mcp-server on demand, communicates with it over stdin/stdout for the life of the session, and then shuts it down.
The MCP server exposes Curio commands as MCP tools with shared command-runner behavior, so the MCP surface stays aligned with the CLI.
Tool names are MCP-style names such as curio_query, curio_get, curio_create, curio_move, curio_batch, curio_set, curio_status, curio_fields, and curio_docs.
| MCP tool | CLI equivalent | Purpose |
|---|---|---|
curio_query |
curio query |
Search figures using Curio’s query language or inspect a live selected target. |
curio_get |
curio get |
Read properties for a figure, idea space, or Organizer item. |
curio_set |
curio set |
Update writable properties on a figure, idea space, or Organizer item. |
curio_create |
curio create |
Create Organizer sections, folders, and idea spaces in the running app. |
curio_move |
curio move |
Move a figure to a canvas coordinate or move an Organizer item using placement hints. |
curio_batch |
curio batch |
Run a command batch file or inline batch content with pseudo-variable references. |
curio_fields |
curio fields |
List available automation fields. |
curio_field_detail |
curio fields <name> |
Show type, writability, and usage guidance for one field. |
curio_docs |
bundled MCP docs | Read bundled MCP guidance when resources are not exposed directly. |
curio_tags |
curio tags |
List actual tags in the current or offline project. |
curio_export |
curio export |
Export a figure or live selection to a file or the clipboard. |
curio_import |
curio import |
Import a file, inline content, or Spread PDF pages. |
curio_navigate |
curio navigate |
Navigate the running Curio app to a URL, project path, idea space, section, or figure. |
curio_sections |
curio sections |
List the Organizer section hierarchy. |
curio_assets |
curio assets |
List figures and assets within a section or project. |
curio_status |
curio status |
Check app state, open projects, transport mode, and selected target availability. |
curio_help |
curio help |
Show CLI help text. |
curio_version |
curio --version |
Show CLI version information. |
curio_update |
curio update |
Check CLI update status and report available update details. |
curio_docs is a read-only tool that returns bundled MCP guidance for hosts that do not expose MCP resources directly to the chat model.
It supports these topics: overview, query-language, workflows, and transport-modes.
The server also exposes MCP-native guidance:
Resources via curio-mcp://docs/... URIs such as:
curio-mcp://docs/overviewcurio-mcp://docs/query-languagecurio-mcp://docs/workflowscurio-mcp://docs/transport-modes
Prompts for common workflows such as:
build_curio_queryinspect_curio_selectionupdate_curio_item
These resource URIs are MCP-internal identifiers, not Curio app deep links.
They are passed from the MCP client back to the Curio MCP server during resources/read; they are not opened by macOS or by the Curio app.
Important
Use an MCP-specific resource namespace such as curio-mcp://docs/... for server resources.
This is intentionally separate from Curio’s real curio:// link scheme.
Manual MCP Host Configuration
Claude Desktop users should normally install the packaged connector with curio claude install, described below.
For other MCP hosts, or for users who want to configure Claude Desktop manually, use this stdio server configuration:
{
"mcpServers": {
"curio": {
"command": "/Library/Application Support/CurioCLI/bin/curio",
"args": ["mcp-server"]
}
}
}
If your host expects just the server entry rather than a full mcpServers object, use:
{
"command": "/Library/Application Support/CurioCLI/bin/curio",
"args": ["mcp-server"]
}
Use the installed binary under /Library/Application Support/CurioCLI/bin/curio for host-launched MCP connections.
That path remains stable across CLI updates.
Integrating with AI Clients
Agents
Many AI agent tools, including ChatGPT/Codex and Gemini/Antigravity but not Claude, use the common ~/.agents/ folder for shared items such as skills.
curio skills install agents
This installs the CLI-oriented Curio skills under ~/.agents/skills/.
You can remove the Curio CLI skills with curio skills uninstall agents
To remove all Curio CLI skill installations at once, use curio skills uninstall --all.
Codex CLI
For the Codex CLI (codex), the simplest integration today is CLI-based skills.
Install into the common ~/.agents folder if you want the Curio skills visible to most AI agents:
curio skills install agents
Or install only for Codex:
curio skills install codex
The Codex-specific command installs the CLI-oriented curio and curio-query skills under ~/.codex/skills/.
You can verify the installation by launching codex and typing $curio or $curio-query to invoke a Curio skill directly.
Typing a dollar sign $ shows an autocomplete popup of installed skills, where you should see Curio’s skills in the list.
You can also type /skills to list or manage the installed skills.
Codex can also choose a skill automatically when your request matches the skill’s description.
Since codex can call CLI tools directly, unlike apps which rely on MCP connections, using these CLI-oriented skills are much more efficient and work best for agents like codex.
You can remove the Curio CLI skills with curio skills uninstall codex
ChatGPT Desktop
The ChatGPT desktop app offers both Codex and Work modes. Use the selector in the top-left corner of the window to switch between them.
Which mode should you use?
Choose Work when you want ChatGPT to use the Curio skills directly with your projects—for example, to search, inspect, organize, or modify Curio content, or to produce research and other deliverables.
Choose Codex when you want to develop software with codebase context and developer tools—for example, when writing Python scripts that use the Curio CLI to automate project workflows.
To make Curio CLI skills available in ChatGPT, install them into the shared ~/.agents/skills/ folder if you want them available to most AI agents:
curio skills install agents
Or install them only for ChatGPT’s Codex mode:
curio skills install codex
You can verify the installation in ChatGPT by opening Settings, choosing Plugins in the sidebar, and then selecting Skills. The Curio CLI skills should appear there when they are installed in either folder.
First Prompt
After installing the skills, a good first prompt in ChatGPT is:
What can you do with the Curio skills available to you? Summarize what you can do with my Curio projects.
ChatGPT Web
When you use ChatGPT on the web instead of the ChatGPT desktop app, you can connect to Curio through OpenAI’s Secure MCP Tunnel. This is useful when you want ChatGPT’s web interface to use Curio’s local stdio MCP server without exposing your Mac or Curio project data through a public inbound network port.
Secure MCP Tunnel
Unsupported feature
Curio does not support configuring or troubleshooting OpenAI’s Secure MCP Tunnel. Using it may involve your organization’s infrastructure, security policies, or firewall, so proceed only if you are comfortable managing those requirements and consult OpenAI’s documentation for assistance.
In this setup:
- Curio provides the local MCP server command:
/Library/Application Support/CurioCLI/bin/curio mcp-server - OpenAI’s
tunnel-clientruns on your Mac and launches that command over stdio. tunnel-clientopens an outbound HTTPS connection to OpenAI’s tunnel service.- ChatGPT sends MCP requests through the tunnel, and
tunnel-clientforwards them to Curio locally.
Because the connection is outbound-only, you do not need to open a firewall port or run a public web server for Curio. However, ChatGPT can still request Curio data through the MCP tools you allow, so treat this as giving ChatGPT controlled access to your local Curio automation surface.
Requirements
You need:
- The Curio CLI installed and up to date.
- OpenAI access to Secure MCP Tunnel and ChatGPT custom connectors.
- A tunnel created in OpenAI’s Platform tunnel settings.
- A runtime OpenAI API key with permission to read and use that tunnel.
- OpenAI’s
tunnel-clientutility installed on the Mac that can run Curio. - The Curio app running if you want ChatGPT to use live-app features such as the current selection, current idea space, navigation, import/export, or property changes.
For read-only offline queries against a .curio project file, Curio’s --project mode can still be used by MCP tools that expose project_path.
For anything involving the current selection or changes to your project, run tunnel-client as your normal logged-in Mac user while Curio is open.
Setup outline
Follow OpenAI’s official Secure MCP Tunnel reference page to create the tunnel and install tunnel-client.
When creating the local stdio profile, point --mcp-command at Curio’s installed MCP server:
export CONTROL_PLANE_API_KEY="sk-..."
tunnel-client init \
--sample sample_mcp_stdio_local \
--profile curio \
--tunnel-id tunnel_0123456789abcdef0123456789abcdef \
--mcp-command "/Library/Application Support/CurioCLI/bin/curio mcp-server"
Then validate and run the tunnel:
tunnel-client doctor --profile curio --explain
tunnel-client run --profile curio
Keep tunnel-client run --profile curio running while ChatGPT discovers or uses the Curio connector.
In ChatGPT’s connector settings, create a custom connector, choose Tunnel as the connection type, and select or paste the tunnel ID you created in OpenAI Platform.
To verify the connection, start with read-only Curio tools such as status, fields, docs, and query. Only enable write/delete tools such as set, import, export, navigate, create, move, or batch if you are comfortable with ChatGPT asking to perform those actions against your local Curio projects.
Claude Code CLI
For the Claude Code CLI (claude), the simplest integration today is CLI-based skills:
curio skills install claude
This installs the CLI-oriented curio and curio-query skills under ~/.claude/skills/.
You can verify the installation by launching claude and typing /curio or /curio-query to invoke a Curio skill directly, or /skills to list all installed skills.
Claude Code can also choose a skill automatically when your request matches the skill’s description.
Since Claude Code can call CLI tools directly, unlike apps which rely on MCP connections, using these CLI-oriented skills are much more efficient and work best for agents like claude.
You can remove the Curio CLI skills with curio skills uninstall claude
To remove all Curio CLI skill installations at once, use curio skills uninstall --all.
Claude Desktop
Claude Desktop has three tabs, each with different integration behavior:
- The Code tab behaves identically to the Claude Code CLI (
claude) and reads skills from~/.claude/skills/directly. - Chat and Cowork tabs talk to Curio over MCP using the Curio’s Claude Connector.
Code Tab
Because the Code tab behaves identically to the Claude Code CLI, setup is the same as for claude - just install the CLI-oriented skills:
curio skills install claude
This makes the curio binary callable directly through the installed skills, with no MCP layer required.
See the Claude Code CLI section above for details.
Chat and Cowork Tabs
The Chat and Cowork tabs have to go through the Curio CLI’s MCP interface over stdio.
The easiest setup is the packaged Curio Claude Connector:
curio claude install
This creates a .mcpb Claude Connector package, opens it in Claude Desktop, and lets Claude Desktop install the Curio connector with its tool and prompt metadata already included.
No claude_desktop_config.json edit and no manual Skills upload is required.
Alternatively, you can also create the package without opening it immediately:
curio claude package
curio claude package --output ~/Desktop/curio.mcpb
curio claude package reveals the resulting .mcpb file in Finder by default.
Use --no-reveal if you are scripting package creation.
First Prompt
After installing the connector, a good first prompt in Claude Desktop is:
What Curio MCP tools, prompts, and resources are available? Summarize what you can do with my Curio projects.
Troubleshooting the Claude Connector
To verify the installed CLI and connector prerequisites, run:
curio claude doctor
doctor checks the installed curio path, connector template resources, Claude Desktop availability, whether an old mcpServers.curio entry still exists, and whether the MCP server answers an initialize request.
In Claude Desktop’s Connectors UI, Curio’s tools are grouped as read-only tools and write/delete tools. You can set read-only tools such as Query, Get, Docs, and Status to Always Allow, if you wish, so Claude does not ask before performing read-only actions. Tools such as Set, Import, Export, and Navigate can remain set to Needs Approval.
To uninstall the packaged connector from Claude Desktop:
- In Claude Desktop, click Customize in the sidebar.
- Click Connectors .
- Select the Curio connector.
- Click Uninstall .
Note
Do not uninstall the packaged connector via Settings > Connectors. At the time of this writing, that path does not remove the Curio connector reliably; use Customize > Connectors instead.
Manual Claude Desktop Configuration
The packaged connector is preferred.
If you need the older manual setup, edit claude_desktop_config.json, typically located at:
~/Library/Application Support/Claude/claude_desktop_config.json
Add mcpServers to the existing top-level object:
{
"mcpServers": {
"curio": {
"command": "/Library/Application Support/CurioCLI/bin/curio",
"args": ["mcp-server"]
}
}
}
If the file already contains preferences or other top-level objects, add mcpServers beside those objects, separated with a comma.
To remove a manual configuration, quit Claude Desktop, remove the curio entry from mcpServers, then relaunch Claude Desktop.
If nothing else is left inside mcpServers, remove the mcpServers key as well.
Note
Do not use the Settings UI’s Disconnect button to remove a classic manual mcpServers.curio entry.
Claude Desktop’s current Settings UI expects each server to have a UUID or mcpsrv_* ID and can report “Invalid server ID format” when disconnecting a classic mcpServers entry keyed by name.
Editing claude_desktop_config.json directly is the reliable path for manual configurations.
Antigravity CLI
For Antigravity CLI (agy), formerly known as Gemini CLI (gemini), the simplest integration today is CLI-based skills:
curio skills install agy
This installs the CLI-oriented Curio skills under ~/.gemini/skills/.
You can verify the installation by launching agy and typing /curio to see the Curio skills or /skills to list all installed skills.
Since Antigravity CLI can call CLI tools directly, unlike apps which rely on MCP connections, using these CLI-oriented skills are much more efficient and work best for agents like agy.
You can remove the Curio CLI skills with curio skills uninstall agy
To remove all Curio CLI skill installations at once, use curio skills uninstall --all.
Antigravity Desktop
Antigravity Desktop uses a separate skill directory from Antigravity CLI:
curio skills install antigravity
This installs the CLI-oriented Curio skills under ~/.antigravity/skills/.
You can remove the Curio CLI skills with curio skills uninstall antigravity
To remove all Curio CLI skill installations at once, use curio skills uninstall --all.