Plumb · query
plumb_queryQuery a Figma subtree by pattern—skeleton, buttons, text by font size, components, or semantic roles—instead of dumping the entire tree.
Instructions
Query a Figma subtree by pattern instead of dumping the whole tree. Use this on dense screens where plumb_node would be too big — pull a skeleton (structure only, no text/fills/effects), every button, every TEXT node above a size, every instance of a component, or every node Plumb classified with a given semantic role (nav/hero/footer/sidebar/card — select: "role"). Mirrors the same scope-resolution as plumb_node: pass id or name with the plugin paired, or fileKey + id (or a Figma URL) on the REST path.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Node/screen id to query within. | |
| max | No | Maximum font size for select: "text". | |
| min | No | Minimum font size for select: "text". | |
| url | No | Paste a full Figma URL — fileKey and node-id auto-extracted. | |
| name | No | Screen name — plugin path, resolved against the paired file. | |
| role | No | Required for select: "role" — which semantic role to match against the node's `pattern` field (the same field select:"buttons" reads). | |
| select | Yes | Query pattern. "skeleton" = structure-only (drops chars, fills, effects, vectorPath, text refs). "buttons" = nodes Plumb tagged with pattern: button (equivalent to select:"role", role:"button"; kept for backward compatibility). "text" = TEXT nodes, optionally filtered by font-size min/max. "components" = INSTANCE nodes, optionally filtered to a specific componentId. "role" = nodes carrying a given semantic role — see the `role` param. | |
| fileKey | No | Figma file key — REST path. Omit when the plugin is paired. | |
| componentId | No | Filter for select: "components" — return only instances of this component. |