Data and storage
What Syntope Tokens stores, where it is stored, and which hosts it can reach. Syntope Tokens is in early beta, so file metadata can still change. Keep your repository as the durable copy.
What is stored where
| Data | Location | Travels with the Figma file |
|---|---|---|
| Complete project: token sets, tokens, themes | Plugin data on the Figma file | Yes |
| Bindings of a layer | Plugin data on that layer | Yes |
| Git connection: provider, repository, branch, path, last revision | Plugin data on the Figma file | Yes |
| Figma variable links: collection, mode and variable IDs | Plugin data on the Figma file | Yes |
| Personal access token | Figma client storage, per connection | No |
| Syntope Bridge pairing keys | Figma client storage | No |
| Appearance and window size | Figma client storage, per file | No |
| Undo history and unsaved JSON drafts | Memory of the open plugin | No, lost when the plugin closes |
Plugin data lives in the file and only this plugin reads it. Duplicating a file carries the project and its bindings along. Client storage lives on this computer, so a collaborator who pulls or pushes pastes a token on their computer once. Anyone else can edit tokens in the file without Git access.
With a connected repository, Git is the source of truth and the file holds the working copy the plugin reads and applies from. Without one, the plugin shows local document and the file holds the only copy.
How the project is saved
The project is stored as JSON, split into chunks of up to 90,000 bytes, with at most 1,000 chunks. A save writes the complete new version first and switches to it in one step, so a failed save leaves the previous version intact.
If the stored project cannot be read, the plugin shows your tokens could not be loaded. See Troubleshooting.
Bindings on layers
A binding stores the token’s internal ID, a copy of its set and path for display, its type and its apply target. A layer has one binding per target. Bindings are what the inspect tab reads and sync to: selection replays. Above 80,000 bytes on one layer the plugin warns, and at 90,000 it refuses the apply.
In your repository
A pull or push moves the project files only: standard DTCG Format and Resolver documents. Syntope-specific data sits in $extensions under the eu.syntope.* namespace, so the files stay valid DTCG. See Extensions and Storage.
Network access
manifest.json allows exactly these hosts. Figma blocks every other request from the plugin.
| Host | Used for |
|---|---|
https://api.github.com |
GitHub sync |
https://gitlab.com |
GitLab sync |
https://api.bitbucket.org |
Bitbucket Cloud sync |
ws://localhost:41414 |
Syntope Bridge, the local connection to Syntope MCP, which you pair yourself |
No Syntope server sits between the plugin and your Git host. The plugin calls the provider directly from Figma, over HTTPS, and refuses redirects. The connection to Syntope Bridge stays on your computer.
The manifest also declares the currentuser permission. Version 0.2.0 does not read the current user.
Access tokens
Your personal access token stays in client storage on this computer. It is never written to plugin data or to the repository. The plugin does not encrypt it, and it is sent only to the provider. Limit the token to one repository and give it an expiry date. Disconnecting deletes it from this computer.
Undo
| Change | How to take it back |
|---|---|
| Tokens, sets, themes, imports and pulls | Undo in the plugin header, up to 50 steps while the plugin stays open, or Cmd+Z in Figma |
| Apply, sync to: selection, removing a binding, a variable sync | Cmd+Z in Figma, one step per action |
| A push | Revert the commit in Git |
Undo stops working once the project changes from outside its history, for example through Figma undo. Save a change to continue.
Starting over
There is no reset button. To clear a project, delete its token sets and themes. Bindings stay on the layers. Remove them per selection in inspect.
