--- title: CLI Reference description: Complete reference for all open-pencil commands, options, and flags. --- # CLI Reference All commands accept a `.fig` file as a positional argument. When omitted, the CLI connects to the running desktop app via RPC. ## info Show document info — pages, node counts, fonts, file size. ```sh open-pencil info [file] [--json] ``` | Option | Description | |--------|-------------| | `--json` | Output as JSON | ## tree Print the node hierarchy. ```sh open-pencil tree [file] [options] ``` | Option | Description | |--------|-------------| | `--page` | Page name (default: first page) | | `--depth` | Max depth (default: unlimited) | | `--json` | Output as JSON | ## find Search nodes by name or type. ```sh open-pencil find [file] [options] ``` | Option | Description | |--------|-------------| | `--name` | Node name (partial match, case-insensitive) | | `--type` | Node type: `FRAME`, `TEXT`, `RECTANGLE`, `INSTANCE`, etc. | | `--page` | Page name (default: all pages) | | `--limit` | Max results (default: 100) | | `--json` | Output as JSON | ## node Show detailed properties of a node. ```sh open-pencil node [file] --id [--json] ``` | Option | Description | |--------|-------------| | `--id` | **Required.** Node ID (e.g. `1:23`) | | `--json` | Output as JSON | ## pages List all pages in the document. ```sh open-pencil pages [file] [--json] ``` | Option | Description | |--------|-------------| | `--json` | Output as JSON | ## variables List design variables and collections. ```sh open-pencil variables [file] [options] ``` | Option | Description | |--------|-------------| | `--collection` | Filter by collection name | | `--type` | Filter by type: `COLOR`, `FLOAT`, `STRING`, `BOOLEAN` | | `--json` | Output as JSON | ## export Export to PNG, JPG, WEBP, SVG, or JSX. ```sh open-pencil export [file] [options] ``` | Option | Alias | Description | |--------|-------|-------------| | `--format` | `-f` | `png` (default), `jpg`, `webp`, `svg`, `jsx` | | `--output` | `-o` | Output file path (default: `.`) | | `--scale` | `-s` | Export scale (default: 1) | | `--quality` | `-q` | Quality 0–100, JPG/WEBP only (default: 90) | | `--page` | | Page name (default: first page) | | `--node` | | Node ID to export (default: all top-level nodes) | | `--style` | | JSX style: `openpencil` (default), `tailwind` | | `--thumbnail` | | Export page thumbnail instead of full render | | `--width` | | Thumbnail width (default: 1920) | | `--height` | | Thumbnail height (default: 1080) | ## eval Execute JavaScript with the Figma Plugin API. ```sh open-pencil eval [file] [options] ``` | Option | Alias | Description | |--------|-------|-------------| | `--code` | `-c` | JavaScript code to execute | | `--stdin` | | Read code from stdin | | `--write` | `-w` | Write changes back to the input file | | `--output` | `-o` | Write to a different file | | `--json` | | Output as JSON | | `--quiet` | `-q` | Suppress output | ## analyze colors Analyze color palette usage across the document. ```sh open-pencil analyze colors [file] [options] ``` | Option | Description | |--------|-------------| | `--limit` | Max colors to show (default: 30) | | `--threshold` | Distance threshold for clustering similar colors, 0–50 (default: 15) | | `--similar` | Show similar color clusters | | `--json` | Output as JSON | ## analyze typography Analyze font family, size, and weight distribution. ```sh open-pencil analyze typography [file] [options] ``` | Option | Description | |--------|-------------| | `--group-by` | Group by: `family`, `size`, `weight` (default: show all styles) | | `--limit` | Max styles to show (default: 30) | | `--json` | Output as JSON | ## analyze spacing Analyze gap and padding values across auto-layout frames. ```sh open-pencil analyze spacing [file] [options] ``` | Option | Description | |--------|-------------| | `--grid` | Base grid size to check against (default: 8) | | `--json` | Output as JSON | ## analyze clusters Find repeated node patterns — potential components. ```sh open-pencil analyze clusters [file] [options] ``` | Option | Description | |--------|-------------| | `--limit` | Max clusters to show (default: 20) | | `--min-size` | Min node size in px (default: 30) | | `--min-count` | Min instances to form a cluster (default: 2) | | `--json` | Output as JSON |