Turn product ideas into editable Figma designs—with an explicit plan before anything changes.
Layntra is a Codex plugin for product managers and other non-developers. Invoke
$layntra, choose the target, review the plan, and apply only when you are
ready. Every result remains editable in Figma.
Website: lessthanno.github.io/Layntra
Clone Layntra once. The local Codex skill, bridge, and Figma companion then update together from the official repository when Layntra starts. Figma keeps the same imported manifest path, so upgrades do not require another download, file replacement, or import.
Requirements: macOS, Node.js 20+, Codex Desktop or CLI, and Figma Desktop. Use a personal Starter workspace if an organization Dev/Collab/View seat cannot run Design plugins.
- Clone this repository and run
./scripts/install.shto install the Codex plugin. - Open a Design file in Figma Desktop. The installer imports
apps/figma-plugin/manifest.jsonautomatically on macOS. If Accessibility permission prevented that one-time import, choose Plugins → Development → Import plugin from manifest… and select that file from the cloned repository.
- Run Plugins → Development → Layntra for Figma and keep its small window open while you use Codex. Confirm that it shows Connected locally before continuing. This is a required Figma-side step: Auto-connect keeps the local WebSocket connected and retries it, but it cannot run an unopened Figma development plugin in the background. In later editor sessions, use Open Layntra in the Properties panel to reopen it quickly.
- Only after the plugin shows Connected locally, start a new Codex task and enter:
$layntra status
Then inspect without writing:
$layntra review selection
Check hierarchy and missing loading, empty, and error states.
Do not modify Figma.
Plan and apply separately:
$layntra plan selection
Improve hierarchy. Preserve all copy and brand colors.
$layntra apply
Layntra re-reads the result after writing. To recover immediately, enter
$layntra undo; it refuses if the Figma target changed after the apply.
Ordinary conversation is not a reliable control surface. $layntra makes the
active plugin, file, page, selection, mode, and write boundary visible. Read-only
intents never modify Figma; write intents wait for your approval.
- Getting started
- Product manager playbook
- Troubleshooting
- Migration from the development version
- Contributing
- Security
Codex Skill → local stdio/MCP bridge → loopback WebSocket → Layntra for Figma plugin
The bridge binds to 127.0.0.1:3846. Layntra needs no Figma API token, hosted
Layntra account, or telemetry. Codex model data handling remains governed by
your Codex configuration; “local bridge” does not mean the AI model is offline.
When Layntra is active, it does not call Figma's hosted MCP and therefore does
not consume Figma hosted-MCP tool-call quotas. If Figma displays an MCP upgrade
prompt, the request was routed through the wrong transport; stop and run
$layntra status to confirm local_loopback and 127.0.0.1:3846.
At startup, Layntra checks the official Git origin at most once every six hours
and only fast-forwards a clean checkout. Offline checks, local modifications,
untrusted remotes, and diverged branches are left untouched; the installed
version continues to work. Set LAYNTRA_AUTO_UPDATE=0 to disable checks.
Writes are limited to supported editable nodes and batches of at most 100.
Deletion and arbitrary code execution are not exposed in v0.1.0.
npm run verifySee CONTRIBUTING.md for architecture and test expectations.
