Skip to main content
@runchat/cli is a command-line interface for Runchat. It exposes the same canvas + workflow toolset as the MCP server — all commands (list_runchats, create_prompt_node, run_nodes etc) run from the shell, a script, or a CI job without an MCP client. Often the quickest way for a coding agent to build a workflow on its own. The CLI is self-describing. It lists its tools and reads each tool’s parameters live from the server.

Install

The npm package is @runchat/cli; the installed command is runchat. Requires Node.js ≥ 18.

Authenticate

This opens your browser to sign in to Runchat and approve the CLI, then saves a session that refreshes itself. It also works when a coding agent runs it — you just approve in the browser. Use --no-browser to print the sign-in URL instead, and --timeout <seconds> to change how long it waits (default 300).

API keys (CI and headless machines)

To create a key yourself, open runchat.com/dashboard?newkey=true, or the account menu → Get Runchat API Key. Precedence: --api-key flag > RUNCHAT_API_KEY > saved key > saved browser session. See auth.md for details.

Use with Claude Code

Install the Runchat skill so Claude Code knows to use the CLI whenever you mention Runchat:
Or add it as a plugin from inside Claude Code:
Then ask “use Runchat to build a workflow that …”. The first time, Claude runs runchat login and a sign-in page opens in your browser.

Tool and command discovery

You can list available tools (broadcast from the MCP server) and get help with the following commands: Add --refresh to force-update the cached tool list. Run guide first when building a workflow. This explains node types, the create → connect → organize → run order, choosing models, code nodes, and publishing.

Quickstart

run_nodes and execute_tool consume credits, just like in the app. Confirm before running anything with real cost.

Passing arguments

Arguments are plain --flags, and values are smart-typed — numbers, booleans, and JSON arrays/objects are parsed; everything else stays a string:
Bare words stay strings (--model gpt-5.5 → "gpt-5.5") and id-like values are preserved (--x 007 → "007"). Dashes and underscores in argument names are interchangeable (--runchat-id == --runchat_id). Pass the whole argument object at once with --json (individual --flags override its keys):
Read large values (code, prompts) from a file or stdin with @:

Output & exit codes

Results print as pretty JSON. Use --raw for the server’s exact text — handy for piping into jq:

Configuration

The config file lives at %APPDATA%\runchat\config.json (Windows) or ~/.config/runchat/config.json (macOS/Linux) and stores your API key or browser session. Set RUNCHAT_NO_BROWSER=1 to never open a browser.

Use it from an agent

The CLI ships an AGENTS.md so coding agents can drive it without prior knowledge: set RUNCHAT_API_KEY, run runchat guide then runchat tools, read runchat <tool> --help as needed, and branch on the exit codes above.

MCP Server

Connect Claude, ChatGPT, or Cursor to your canvas over the Model Context Protocol.

Canvas API

The same operations as a plain REST API.