Skip to documentation
DocumentationThe workspace

Figma plugin

Link Figma text layers to translation keys, push copy as drafts, preview languages on the canvas, and hand keys to developers through ReRune and MCP.

On this page

Install the plugin

The ReRune plugin is coming soon to Figma Community. Its source code is public on GitHub under the MIT licence.

You need a ReRune account with access to a project; the plugin works on every ReRune plan, Free included. In Figma, the design-side plugin works on every plan, including the free Starter plan, in the desktop app and in the browser. You need edit access to the file, which on paid Figma plans means a Full seat.

Dev Mode comes in a later release

The first release works in Figma Design on every Figma plan, including the free Starter plan: linking, pushing, preview and screenshots don't need Dev Mode. Dev Mode features are planned for a later release and will need a paid Figma plan with a Dev or Full seat.

Sign in with ReRune

  1. In the plugin, choose Sign in with ReRune. The plugin shows a pairing code and opens ReRune in your browser.
  2. Sign in to ReRune if asked, check that the code in the browser matches the one in the plugin, and choose Connect. If the link opened on a different network than the plugin, type the code from the plugin instead.
  3. Back in Figma, the plugin shows the email address of the account it signed in with. Choose Not me if it's the wrong account.

Pairing codes expire after 10 minutes. If you didn't start sign-in yourself, choose This wasn't me in the browser and nothing is connected. ReRune emails you each time the plugin is connected to your account.

Every connection is listed under Connected apps on your Profile page, with the date it was last used; Revoke signs that plugin out. A connection ends after 90 days without use and at the latest after 365 days, and resetting your password ends all of them. An account keeps up to 10 connections: a new sign-in removes the oldest one beyond that. Figma desktop and Figma in the browser sign in separately, and a sandbox connection ends with the sandbox.

Choose the ReRune project for the file first; everyone who opens the file with the plugin then works in the same project. On the Layers screen, scan the selection or the current page.

  • Link a layer to an existing key by searching for the key's name or text.
  • Link exact matches links each selected layer whose text matches exactly one key in the project, and lists the layers with several matches or none.
  • Mark layers without a key to create new keys with a suggested name. Keys are created only when you push.
  • Unlink removes the link from the selected layers. Links are stored in the Figma file, so everyone who opens it with the plugin sees them.

A duplicated linked layer is marked as copied: choose Keep copied links on the Layers screen, or decide per layer in the push review. Text inside an instance inherits the link of its main component unless the instance overrides that text. Keys that hold a group of nested keys can't be linked.

Scans skip layers whose name starts with an underscore and locked layers; change this under Scanning in the plugin's Settings.

Choose key names

The plugin suggests a name for every new key. It copies the dominant naming style of the project's existing keys, such as snake_case, camelCase or dotted names. In a project without a dominant style it builds snake_case names from the screen and the element, such as checkout_pay_button.

Under Key names in the plugin's Settings, choose the case style and a name template built from parts such as the page, frame, layer, element or text, for example frame name, then layer name. You can edit every suggestion before you push. With Create one key for layers with identical text on, which is the default, layers with the same text share one new key.

Names can have up to 200 characters, using letters, digits and _ . - / : and they must start and end with a letter, digit or underscore. The push review flags names that already exist or repeat within the push, and warns about names that Flutter or Android can't use as they are.

Push copy as drafts

Push compares the linked and marked layers with ReRune and lists every change before anything is sent: new keys, changed texts, texts changed in both Figma and ReRune, copied layers and keys that no longer exist. Nothing changes in ReRune until you confirm.

  • New and changed texts arrive as drafts of the project's main language. Nothing is ever published from Figma: publish in ReRune when the copy is ready.
  • New keys get the name of their top-level frame as description and the tag figma, and they count toward your plan's key limit.
  • Placeholders written in double curly braces in a new key's text become string placeholders of the key. When you update an existing key, its text can only use placeholders the key already has.
  • For a text changed in both places, choose Skip, Overwrite ReRune or Take ReRune text. When a key changed only in ReRune, the push can update the layer with the ReRune text.
  • A push never overwrites a plural or ICU message, a disabled key or a key that holds nested keys: edit those in ReRune. Layers that show a language preview can't be pushed until you reset them.

Pushing needs Edit keys

Without the Edit keys permission you can still scan, link layers in the file and preview languages, but you can't push, and your links stay in the file only. Ask an organisation administrator for the Edit keys permission.

Preview languages

Preview writes a project language into the selection or the page, so you can check length and layout. Choose draft or published text and, if the project has variations, a variation. Reset restores the original text and its styles.

Regional languages fall back like they do in ReRune: a de-AT preview shows the de text for keys without their own de-AT value.

Layers whose key has no text in that language keep their text and are listed as missing translations, with Select all missing. Show key names instead of text writes each key's name into its layer.

Text bound to a Figma variable is never changed; change the variable instead. A layer with a missing font is skipped until you install or replace the font. Preview text is never pushed.

Add screenshots for context

Paste the file's link from Share, Copy link on the plugin's Project screen or under Figma file in its Settings. ReRune then knows which layers show each key: the plugin updates those links after every link, unlink and push, and when you choose Sync links on this page. Saving the link in Settings also shares the links on the open page; for other pages, open each one and run Sync links on this page on Layers.

With Upload screenshots of changed frames on, which is the default, a push or Update layers from ReRune ends by uploading an image of each top-level frame whose layers it changed, with a box around every linked layer. Each upload also records the text of every linked layer; ReRune uses it to tell when a screenshot no longer shows a key's current text. ReRune keeps one image per frame and replaces it on the next upload. Images are JPG, or PNG for frames without an opaque background, at most 4096 pixels on the long side and 2 MB; larger frames are exported smaller.

Uploads need the Edit keys permission and aren't available for sandbox accounts. Branch files pause link updates and uploads until the branch is merged, because they share layer IDs with the main file. Files that look like copies of another file pause them until you paste the file's own link or choose This is the same file under Figma file in the plugin's Settings. If the ReRune server doesn't store screenshots, the option is hidden.

In ReRune, the Design tab of a key shows its screenshots with the layer highlighted, an Open in Figma link and the linked layers. Screenshots are shown only to members of the project's organisation, through links that expire. The key list can filter keys that are in a design, and the Figma tab in project settings lists the connected files; Disconnect removes a file's links and screenshots from ReRune.

Open in Figma opens the file in the browser. To open these links in the Figma desktop app instead, turn on Open links in desktop app once in Figma: open any Figma file in the browser and choose Main menu, Preferences, Open links in desktop app. The desktop app must be installed and signed in with the same account; without it, links keep opening in the browser.

In a key's Design tab, Outdated marks a screenshot whose text doesn't match the key's main-language draft in ReRune: the text was edited in ReRune after the upload, or the layer was changed in Figma and not pushed yet.

Any member of the project's organisation, except sandbox accounts, can ask for new screenshots: Request new screenshot under a screenshot in the Design tab, or Request new screenshots on a file in the Figma tab of project settings, which asks for every outdated frame of that file. The next time someone with the Edit keys permission opens the plugin in that file, it says that ReRune asks for new screenshots of those frames. Update screenshots brings in the changed ReRune texts of those frames and uploads their screenshots, even with Upload screenshots of changed frames off; it never overwrites layers changed in Figma or in both places, and tells you how many to review on Push. Every upload of a frame clears its request; the member who asked, or anyone with Edit keys, can also cancel it.

Dev Mode

Dev Mode comes in a later release

The first release works in Figma Design on every Figma plan, including the free Starter plan: linking, pushing, preview and screenshots don't need Dev Mode. Dev Mode features are planned for a later release and will need a paid Figma plan with a Dev or Full seat.

Until then, developers find a key's design context in ReRune: the key's Design tab shows the Figma frames and layers it is linked to, with a screenshot when one was uploaded and an Open in Figma link. Coding agents get the keys of a frame through MCP, as the next section shows.

Use the links with AI agents

Figma's own MCP server doesn't return plugin data, so ReRune stores the plugin's links. Coding agents connected to ReRune's MCP server read them with two read-only tools: list_figma_links pages through a project's links, and get_keys_for_figma_url returns the keys of a Figma frame, page or file link with their values.

  1. Get the frame's layout from Figma's MCP server, for example with get_design_context.
  2. Call get_keys_for_figma_url with the same frame link. It reads drafts by default and returns the main language unless you ask for other languages.
  3. Generate code that calls the returned keys, such as t('checkout_pay_button'), instead of hard-coded strings.

MCP tool call

{
  "name": "get_keys_for_figma_url",
  "arguments": {
    "figma_url": "https://www.figma.com/design/AbCdEf1234567890XyZ/Checkout?node-id=10-1",
    "languages": "en,de"
  }
}

ReRune has the links of a page once the file's Figma link is saved in the plugin: saving it shares the open page's links, and other pages follow when you run Sync links on this page on Layers there. The tools need only membership in the project's organisation. When several of your projects use the same file, pass project_id.

Figma seats and ReRune permissions

Figma decides what you can do in the file. In ReRune the plugin acts with your own permissions in the project's organisation.

TaskFigmaReRune
Scan, link layers and previewEdit access to the file: any plan, including Starter; a Full seat on paid plansMember of the project's organisation
Push drafts and create keysEdit access to the file: any plan, including Starter; a Full seat on paid plansEdit keys
Share links and upload screenshotsEdit access to the file: any plan, including Starter; a Full seat on paid plansEdit keys; no screenshots for sandbox accounts
Request new screenshotsNot neededMember of the project's organisation; not for sandbox accounts
Update requested screenshotsEdit access to the file: any plan, including Starter; a Full seat on paid plansEdit keys; no screenshots for sandbox accounts
Disconnect a file in ReRuneNot neededProject settings
Publish translationsNot possible from FigmaPublishing, in the ReRune dashboard

Troubleshooting

  • Sign-in with ReRune isn't available right now: the ReRune server can't start a sign-in at the moment, so try again later. This code has expired: codes last 10 minutes, so start sign-in again in the plugin.
  • Signed out unexpectedly: the connection was revoked in your profile, ended after 90 days without use or after 365 days, or your password was reset. Sign in again.
  • Can't push: you need the Edit keys permission in the project's organisation. New keys fail with Your plan's key limit is reached when the plan has no keys left.
  • No screenshot option, or no images in ReRune: check the conditions under Add screenshots for context, and the file's status under Figma file in the plugin's Settings. An upload that stops because the project reached its screenshot limit needs support.
  • A screenshot still says Outdated after Update screenshots: a linked layer was changed in Figma or in both places, so the plugin left it alone. Push it, or choose Take ReRune text on Push.
  • A layer can't be previewed or updated: install or replace its missing font, change the Figma variable its text is bound to, or update text that comes from a library component in the library file.
  • The plugin doesn't appear in Dev Mode: the first release works in Figma Design only, and Dev Mode support is planned for a later release.

Diagnostics, under Advanced in the plugin's Settings, includes a network check of the connection to the ReRune API. Mention its result when you contact support.

Related chapters