Grid82
grid82.comJoin the waitlist
CLICLI

The Grid82 CLI

A command for every API operation, JSON output for scripts, exit codes by kind of failure. On npm as grid82.

Install

Node.js 22.12 or later. Run it without installing, or install it once:

Terminal
npx grid82 --version
npm install -g grid82

The binary is grid82.

Commands

Every operation of both APIs is a command, named after it: records.list is grid82 records list. Path parameters come first, in order; everything else is a flag, or --body with the whole request as JSON. A new endpoint is a new command the day it ships, with its help text already correct.

Terminal
grid82 records list tbl_8fj3kq2wmv5d --view-id viw_e4ks9mz2bh7w
grid82 records get tbl_8fj3kq2wmv5d rec_4nqw8e2hzk7s
grid82 records create tbl_8fj3kq2wmv5d --records '[{"Name":"New record","Amount":1000}]'
grid82 files upload tbl_8fj3kq2wmv5d --file ./contract.pdf --record-id rec_4nqw8e2hzk7s
grid82 rules simulate app_5mg8rw2kx4tn --roles rol_v6nh3ta8rk2e --table-id tbl_8fj3kq2wmv5d --op read

Each page of the App API and Builder API references names its command.

Signing in

Three ways, one per situation:

Terminal
grid82 auth login                                            # the Studio, in your browser
grid82 auth login --target https://your-suite.grid82.app/your-app   # one app
grid82 auth login --device                                   # a machine with no browser

In CI, skip the login: set GRID82_TOKEN to one of your keys and GRID82_URL to the Studio or the app it is for. On a desktop, tokens are kept in the system keychain.

Made for scripts and agents

  • Output is JSON whenever it is not going to a terminal, so nobody has to remember --json.
  • Cursor-paginated JSON commands return { data, meta }. Pass meta.nextCursor as --cursor until meta.hasMore is false. Table output shows the next cursor; NDJSON outputs rows only.
  • The exit code says what kind of failure it was: 2 usage, 3 authentication, 4 not found, 5 rate limited, 6 conflict, 7 plan. The API’s error envelope goes to stderr.
  • A document comes from a file: --source @relance.ts sends a workflow’s code from disk and --body @body.json a whole request body (@- reads stdin).
  • Deleting asks for the name, as the Studio does: grid82 tables delete app_5mg8rw2kx4tn tbl_x2c7nw4hq9fk --confirm "Old deals".
  • grid82 mcp bridges a local stdio client to the MCP server, and grid82 doctor checks the connection, the credential, the version and the clock.

More than MCP, by design

Uploading files is possible from the CLI and not from MCP, because a terminal can send bytes and a model cannot. Everything else is at parity by construction.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search Grid82 documentation and read it in full, instead of answering from memory.

https://grid82.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://grid82.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.