Meetily

meetily-pro CLI

Install meetily-pro and use it to call the Meetily Gateway: global flags, token resolution, exit codes, and the full command tree.

A thin client, not a second implementation

meetily-pro has no business logic of its own. Every command resolves a server URL and a bearer token, sends one HTTP request to the Gateway, maps the outcome to an exit code, and prints the result. The default Gateway address is http://127.0.0.1:8420.

Before any command works beyond health, turn on Allow for the auto-created loopback key under Settings > Integrations > Apps & scripts - see Enable & connect. That loopback key ("Meetily's own", Read) is what the CLI uses; the token file already exists on disk, but like every key it stays "Not allowed yet" until you flip its Allow toggle.

Install

meetily-pro reaches your PATH through one command, install-cli, regardless of how you got the binary:

Standalone download

A single binary plus a SHA256SUMS file, built for one target triple.

In-bundle

The same binary ships inside the Meetily desktop app as a Tauri sidecar.

Get the binary. Either download the standalone build for your platform, or use the copy that already lives inside your installed Meetily app.

Run install-cli from that binary. install-cli is a local filesystem operation only - it never talks to the Gateway, and it always installs whichever binary you ran it from, so the standalone and in-bundle paths behave identically:

./meetily-pro install-cli          # symlink into ~/.local/bin (unix default)
./meetily-pro install-cli --copy   # copy the binary instead of symlinking
./meetily-pro install-cli --dir /usr/local/bin --force

Confirm it: open a new shell and run meetily-pro version.

Global flags and token resolution

These flags work with every subcommand, before or after it:

FlagMeaning
--server <url>Gateway URL. Overrides MEETILY_PRO_SERVER and the default http://127.0.0.1:8420.
--token-file <path>Read the bearer token from a file. This is the recommended way to pass a token - it never touches argv, process listings, or shell history.
--jsonPrint the raw server JSON instead of the human-readable rendering.
--timeout <secs>Request timeout in seconds. Default 10.
--quietSuppress non-essential (success/decorative) output. Errors still print.

--token is retired

An older --token <value> flag is gone. The CLI no longer accepts it - use --token-file or the MEETILY_PRO_TOKEN environment variable instead.

How the token is resolved

--token-file, if passed.
The MEETILY_PRO_TOKEN environment variable.
The loopback token file Meetily writes for the built-in CLI key.

If --token-file points at a path that can't be read, the CLI prints a warning to stderr rather than silently falling through to the next option.

~/Library/Application Support/pro.meetily.ai/gateway-token

meetily-pro health is the one command that needs no token at all. Every other command needs a token with the right scope, or the Gateway returns 401/403 - exit code 4 below.

Exit codes

CodeMeaning
0Success.
1Error - a non-2xx HTTP status other than 401/403, an invalid response body, or a CLI usage/parse error (bad flags, unknown subcommand).
2Request timed out.
3Could not connect to the server - connection refused/reset, or a DNS failure.
4Denied - the Gateway returned 401 or 403: a missing token, or a token without the required scope.

--help and --version exit 0. A 200 response with an empty body (several write/control endpoints return one) is parsed as JSON null, not treated as a parse error.

Scopes

Meetily has four scopes: read, record, write, and delete. There is no admin scope.

Unless a command below says otherwise: a GET route needs read, and a route that creates, changes, or removes data needs write. Recording control needs record instead of write, and deleting a meeting needs delete instead of write.

Commands

Read commands print a human-readable rendering by default, or the raw JSON with --json. Write and control commands do the same for their response body (often null).

Examples

meetily-pro whoami

Prints the identity and scopes attached to the resolved token. Add --json to get the raw response instead of the human-readable rendering.

meetily-pro meetings list

Lists meetings using the same pagination the desktop app uses. Add --limit and --offset to page through a large list.

What the CLI does not have

  • No schema command. There's no meetily-pro schema for GET /openapi.json. Fetch that route directly with curl if you need the manifest.
  • No --wait / SSE support. recording --wait is not wired into the CLI. The long-poll wait endpoints (GET /v1/jobs/:id/wait, GET /v1/recording/wait) have no CLI equivalent - use curl with -N, or reach them through the MCP server's wait_for_job / wait_for_recording tools.
  • No webhooks command. Webhook registration, listing, deletion, and delivery logs are HTTP-only from the CLI's perspective.
  • No pairings admin command. Listing or revoking existing pairings is HTTP-only; requesting and completing a new pairing is covered by meetily-pro pair above.
  • No recording-state read command. GET /v1/recording (the current recording state) has no CLI subcommand - only the four control verbs under recording exist. Reach it with curl, or with the MCP server's get_recording_state tool.

Last updated on

On this page