UI First is a Penpot-first VS Code extension that turns a prompt into:
- a Copilot-engineered design prompt
- a Replicate mockup
- a strict Penpot DSL payload
- an editable Penpot board
- a generated Next.js + Tailwind app from the selected Penpot board
- Open
UI Firstin the Activity Bar and use thePenpot Studioview. - Configure
uiFirst.penpotBaseUrlto your local Penpot instance. - Configure a Replicate API key with
UI First: Configure Replicate API Key. - Run
UI First: Start Penpot Flow. - Open the embedded Penpot editor or your local Penpot instance.
- Open the
UI First Bridgeplugin in Penpot, save the bridge URL and session token, then sync the queued design. - Edit the board in Penpot.
- Select exactly one Penpot board and export it through the plugin.
- Run
UI First: Convert Selected Frame To Codeto scaffold a Next.js app.
- Penpot-first control panel inside VS Code
- Embedded Penpot editor with strict in-panel embed checks
- Local bridge server for Penpot plugin communication
- Companion Penpot plugin for syncing DSL and exporting the selected board
- Copilot prompt engineering and structured JSON generation
- Replicate mockup generation with SecretStorage-backed API token handling
- Next.js + Tailwind scaffold generation from Penpot board export JSON
UI First: Start Penpot FlowUI First: Open Penpot EditorUI First: Sync Design To PenpotUI First: Convert Selected Frame To CodeUI First: Configure Replicate API KeyUI First: Open Penpot Studio
uiFirst.penpotBaseUrlBase URL of the local Penpot instance embedded inside the editor panel.uiFirst.penpotBridgePortLocal port used by the extension bridge and Penpot plugin.uiFirst.outputFrameworkCurrent code target. Right now onlynextjsis supported.
Each flow writes artifacts into:
.ui-first-flow/<session-token>/
Current contents:
mockup.pngpenpot.dsl.jsonflow.meta.jsonREADME.md
The generated flow README includes the session token, bridge URL, plugin manifest URL, prompts, and manual next steps for the Penpot plugin.
- VS Code with Copilot chat models available through the VS Code LM API
- A reachable local Penpot deployment
- Replicate API token for mockup generation
- Penpot embedding must not be blocked by
X-Frame-Optionsor restrictiveframe-ancestorsCSP on your local Penpot proxy
npm install
npm run build
npm test
npm run package:vsixnpm run release:localThis runs lint, build, tests, VSIX packaging, and isolated install/uninstall smoke checks.
Strict gate:
npm run release:strict- Manual signoff checklist:
docs/BATCH6_LOCAL_SIGNOFF.md - Deferred release checklist:
docs/MARKETPLACE_PREP.md
- Replicate API tokens are stored in VS Code SecretStorage under
uiFirst.replicateApiToken. - Prompts and mockup requests are sent to Copilot and Replicate during flow execution.
- Penpot board export data moves over a local HTTP bridge between the extension and the Penpot plugin.
- The extension does not implement custom telemetry.