> ## Documentation Index
> Fetch the complete documentation index at: https://docs.guild.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To act on a user's behalf in Guild, use the Guild REST API at https://api.guild.ai/v1.
> The OpenAPI spec is unauthenticated: https://docs.guild.ai/openapi.json (or openapi.yaml).
> Authenticate with an account API key, sent as HTTP Basic (key id as username, secret as password) or as `Authorization: Bearer <api_key_id>:<api_key_secret>`. See https://docs.guild.ai/api-reference/introduction#authentication.
> To run one agent on demand without account-wide access, use an API trigger instead: https://docs.guild.ai/platform/api-triggers.
> To act on Guild from an MCP client, connect to https://api.guild.ai/mcp (OAuth) or run `guild mcp` locally. Setup: https://docs.guild.ai/api-reference/mcp.
> To search these docs from an MCP client, connect to https://docs.guild.ai/mcp. The full page index is https://docs.guild.ai/llms.txt.

# Read Figma files and comments from Guild agents

> Connect Guild agents to the Figma REST API with a personal access token to read files, render images, and work with comments, components, and variables.

Integrations · Figma

Guild agents read Figma files and nodes, render frames as images, and read and post comments through the Figma REST API. Guild stores your Figma token and injects it server-side, so agent code never sees it. Credential policies decide which Figma operations each agent may call.

> [card] [Book a demo](https://guild-ai.cal.com/gtm/meeting-with-guild.ai)
>
> See how teams govern agents that use Figma.

> [card] [Talk to sales](https://guild.ai/talk-to-sales)
>
> Get access to Guild, then connect Figma to your first agent.

## What the Figma integration exposes

The integration is `guildai~figma`. Tools cover files, file nodes, image rendering, versions, comments and comment reactions, components, component sets, styles, variables, dev resources, projects, library analytics, and webhooks. Requests go to `https://api.figma.com`.

## How it works

**1. Create a Figma token**

In Figma, open **Settings > Security**, then generate a personal access token under **Personal access tokens**. Choose an expiration and grant the scopes for the endpoints your agent calls.

**2. Connect the token in Guild**

Go to **Access & setup > Credentials**, click **Connect**, select **figma**, and paste the token into **API Key**.

**3. Import the tools you need**

Import `FigmaTools` from `@guildai-services/guildai~figma` and use `pick()` to give the agent only the tools its job needs.

## Why Figma access needs governing

A Figma token can read every file its owner can open, and post or delete comments as that person. Guild keeps the token server-side and checks every request against your [credential policies](https://docs.guild.ai/platform/credential-policies.md) before it reaches Figma. A policy can let a review agent read files and post comments while denying deletes and webhook changes.

## Authentication

* **Type:** API key
* **Header:** Guild sends the token as `X-Figma-Token: <token>`
* **Token:** a Figma personal access token. When it expires, create a new one and reconnect it in Guild.

See [Credentials](https://docs.guild.ai/platform/credentials.md) for workspace, member, and agent-scoped credentials.

## Usage

```typescript theme={null}
import { FigmaTools } from "@guildai-services/guildai~figma"
import { llmAgent, pick } from "@guildai/agents-sdk"

export default llmAgent({
  systemPrompt: "You review Figma files and leave comments on unclear copy.",
  tools: {
    ...pick(FigmaTools, [
      "figma_get_file",
      "figma_get_file_nodes",
      "figma_get_comments",
      "figma_post_comment",
    ]),
  },
})
```

Tools are named with the `figma_` prefix. The `file_key` most tools take is the ID in a Figma file URL, after `/design/` or `/file/`.

## Tools

Tools in the latest published version of `guildai~figma`:

> [accordion] All 55 tools
>
> | Tool | What it does |
> | - | - |
> | `figma_delete_comment` | Deletes a specific comment. |
> | `figma_delete_comment_reaction` | Deletes a specific comment reaction. |
> | `figma_delete_dev_resource` | Delete a dev resource from a file |
> | `figma_delete_webhook` | Deletes the specified webhook. |
> | `figma_get_activity_logs` | Returns a list of activity log events |
> | `figma_get_ai_usage_daily` | Returns per-user, per-day AI credit usage for the plan associated with the calling token. |
> | `figma_get_comment_reactions` | Gets a paginated list of reactions left on the comment. |
> | `figma_get_comments` | Gets a list of comments left on the file. |
> | `figma_get_component` | Get metadata on a component by key. |
> | `figma_get_component_set` | Get metadata on a published component set by key. |
> | `figma_get_developer_logs` | Returns a list of developer log entries for REST API and MCP server requests made within the organization. |
> | `figma_get_dev_resources` | Get dev resources in a file |
> | `figma_get_file` | Returns the document identified by `file_key` as a JSON object. |
> | `figma_get_file_components` | Get a list of published components within a file library. |
> | `figma_get_file_component_sets` | Get a list of published component sets within a file library. |
> | `figma_get_file_meta` | Get file metadata |
> | `figma_get_file_nodes` | Returns the nodes referenced to by `ids` as a JSON object. |
> | `figma_get_file_styles` | Get a list of published styles within a file library. |
> | `figma_get_file_versions` | This endpoint fetches the version history of a file, allowing you to see the progression of a file over time. |
> | `figma_get_folder_files` | Get a list of the files directly within the specified folder. |
> | `figma_get_folder_folders` | Get a list of the direct subfolders within the specified folder. |
> | `figma_get_folder_meta` | Get metadata for a folder (name, thumbnail, file count, timestamps) without enumerating its files. |
> | `figma_get_image_fills` | Returns download links for all images present in image fills in a document. |
> | `figma_get_images` | Renders images from a file. |
> | `figma_get_library_analytics_component_actions` | Returns a list of library analytics component actions data broken down by the requested dimension. |
> | `figma_get_library_analytics_component_usages` | Returns a list of library analytics component usage data broken down by the requested dimension. |
> | `figma_get_library_analytics_style_actions` | Returns a list of library analytics style actions data broken down by the requested dimension. |
> | `figma_get_library_analytics_style_usages` | Returns a list of library analytics style usage data broken down by the requested dimension. |
> | `figma_get_library_analytics_variable_actions` | Returns a list of library analytics variable actions data broken down by the requested dimension. |
> | `figma_get_library_analytics_variable_usages` | Returns a list of library analytics variable usage data broken down by the requested dimension. |
> | `figma_get_local_variables` | Get the local variables in a file, and remote variables it uses. Enterprise only. |
> | `figma_get_me` | Returns the user information for the currently authenticated user. |
> | `figma_get_oembed` | Returns oEmbed data for a Figma file or published Make site URL, following the oEmbed specification. |
> | `figma_get_payments` | There are two methods to query for a user's payment information on a plugin, widget, or Community file. |
> | `figma_get_project_files` | List the files in a project. Deprecated; Figma recommends the folder endpoints. |
> | `figma_get_project_meta` | Get a project's metadata. Deprecated; Figma recommends the folder endpoints. |
> | `figma_get_published_variables` | Get the variables published from a file. Enterprise only. |
> | `figma_get_style` | Get metadata on a style by key. |
> | `figma_get_team_components` | Get a paginated list of published components within a team library. |
> | `figma_get_team_component_sets` | Get a paginated list of published component sets within a team library. |
> | `figma_get_team_folders` | Get a list of the top-level folders (previously called "projects") within the specified team. |
> | `figma_get_team_projects` | List a team's projects. Deprecated; Figma recommends the folder endpoints. |
> | `figma_get_team_styles` | Get a paginated list of published styles within a team library. |
> | `figma_get_team_webhooks` | Returns all webhooks registered under the specified team. |
> | `figma_get_webhook` | Get a webhook by ID. |
> | `figma_get_webhook_requests` | Returns all webhook requests sent within the last week. |
> | `figma_get_webhooks` | Returns a list of webhooks corresponding to the context or plan provided, if they exist. |
> | `figma_post_comment` | Posts a new comment on the file. |
> | `figma_post_comment_reaction` | Posts a new comment reaction on a file comment. |
> | `figma_post_dev_resources` | Bulk create dev resources across multiple files. |
> | `figma_post_variables` | Create, update, or delete variables and collections in a file. Enterprise Editor seats only. |
> | `figma_post_webhook` | Create a new webhook which will call the specified endpoint when the event triggers. |
> | `figma_put_dev_resources` | Bulk update dev resources across multiple files. |
> | `figma_put_webhook` | Update a webhook by ID. |
> | `figma_receive_webhook_event` | Inbound Guild hook for the JSON body Figma POSTs to a webhook endpoint. event\_type is PING, FILE\_UPDATE, FILE\_VERSION\_UPDATE, FILE\_DELETE, LIBRARY\_PUBLISH, FILE\_COMMENT, or DEV\_MODE\_STATUS\_UPDATE. |

## Frequently asked questions

> [accordion] Can a Guild agent edit a Figma design?
>
> No. The Figma REST API reads files and manages comments, variables, dev resources, and webhooks. It can't move layers or change a design's content.

> [accordion] Why does the variables tool return an error?
>
> Figma only serves the variables endpoints to full members of Enterprise organizations. On other plans those tools fail.

> [accordion] Can a new Figma comment trigger a Guild agent?
>
> Not yet. The integration includes Figma's webhook management tools, but Guild doesn't receive Figma events, so you can't create an event trigger for Figma.

## Related

**Also runs on Guild:** [GitHub](https://docs.guild.ai/integrations/github.md) · [Linear](https://docs.guild.ai/integrations/linear.md) · [Jira](https://docs.guild.ai/integrations/jira.md)

**Read:** Docs: [Credential policies](https://docs.guild.ai/platform/credential-policies.md) · [Credentials](https://docs.guild.ai/platform/credentials.md) · [Tools in agents](https://docs.guild.ai/sdk/tools.md)
