figma-jev-console
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JEV_MODE | No | Local, local-first or cloud mode for the tie-breaking model | local |
| JEV_PORTS | No | WebSocket ports for Jev Bridge | 9340,…,9344 |
| JEV_FINE_TUNE | No | Set to 'headless' to run a separate 'claude -p' run instead of the channel hand-off | channel |
| JEV_LOCAL_URL | No | Local Jev-compatible server URL | http://127.0.0.1:8009 |
| JEV_MODEL_DIR | No | Where the local model is installed | <plugin dir>/local-model |
| JEV_AUTO_APPLY | No | Minimum confidence to write a tie-broken edit without review | 0.6 |
| JEV_PLUGIN_DIR | No | Where the plugin files are kept | ~/.figma-jev-console/plugin |
| JEV_MIN_FREE_PCT | No | Memory floor for starting or keeping the local model | 12 |
| TYPESAFE_API_KEY | No | Optional cloud Jev key for TypeSafe's cloud Jev | |
| JEV_CHROME_CHANNEL | No | Chrome channel for headless capture | chrome |
| JEV_MODEL_IDLE_MIN | No | Minutes before the idle local model stops | 5 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| experimental | {
"claude/channel": {}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jev_statusA | Connection status: Jev Bridge plugin in Figma, Jev backend, and the live session (screens, pending reviews). |
| jev_push_screensA | Push the app's screens into Figma as auto-layout frames and components, then keep them in live two-way sync. The app's dev server must be running. Call this when the user says 'push to Figma'. |
| jev_sync_nowA | One-click sync: write all queued Figma edits into the code, then refresh every screen in Figma from the code. |
| jev_list_pendingA | Figma edits that were not written to code automatically (Jev was unsure where they go, or a design token is involved), with the reason for each. |
| jev_changelogB | Figma changes that need an LLM to finish in code (deletes, moves, reorders, expression-driven variants, anything the rules and Jev could not write), with layer codes, Figma node ids, code hints and a ready prompt. |
| jev_resolve_pendingA | Decide a pending item: 'apply' writes the best guess, 'reject' drops it, 'element' / 'token' choose the scope for a design-token color, 'llm' hands it to the LLM, 'done' marks it finished after you changed the code yourself (Figma is then redrawn). |
| jev_sync_logB | Recent Figma → code edits: what changed, which file and line, and whether Jev or a rule decided the location. |
| jev_locateA | Find the source file and line for a Figma layer code such as @a3.0.2.1. |
| jev_progressA | During a Fine-tune (sent to you through the figma-jev-console channel): report a step to the designer's Figma panel. Call with done: true when every item is fixed; Figma is then redrawn from the code and the changelog is cleared. |
| jev_contractA | The CSS ↔ Figma property table the sync supports, and which direction each property syncs. |
| jev_stop_liveA | Stop the live session: stop watching files and close the headless browser. Figma layers stay. |
| jev_executeA | Escape hatch: run Figma plugin API code inside the Jev Bridge plugin (async function body with |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
While each tool has a specific name, several overlap in function and timing: jev_sync_now, jev_push_screens, and jev_resolve_pending all trigger writes to code or Figma, and jev_status, jev_sync_log, jev_progress, jev_changelog, and jev_list_pending all report state, making it hard to select the right one. Descriptions are detailed but the boundaries are blurred.
All tool names start with 'jev_' followed by a simple verb (status, sync_now, list_pending, changelog, push_screens, resolve_pending, sync_log, locate, progress, contract, stop_live, execute), following a consistent, predictable pattern. All are lowercase with underscores, no mixing of conventions.
With 12 tools, the set is well-scoped for the Figma-Jev integration console. Each tool addresses a distinct aspect of the workflow (status, sync, pending, changelog, push, resolve, log, locate, progress, contract, stop, execute), and the count is within the ideal 3-15 range, with no redundancy.
The set covers core lifecycle operations: status, sync, pending resolution, push, stop, and a progress reporting mechanism. However, there is a notable gap: no explicit tool to start or manage a live session (only stop_live exists), and the fine-tune workflow relies on an external channel rather than a dedicated tool. The escape hatch jev_execute partially mitigates gaps, but the surface feels incomplete for the stated purpose.