@unoff/cli
v0.1.4
Published
A CLI tool to create plugins for Figma, Penpot, Sketch, and Framer
Downloads
443
Maintainers
Readme
Unoff CLI
A CLI tool to quickly scaffold plugins for Figma, Penpot, Sketch, and Framer with built-in development tools and best practices.
Prerequisites
- Node.js ≥ 18
- npm ≥ 9
- git — required for
unoff create(initializes a git repository) and for allunoff addcommands (workers, skills, specs use git submodules)
Installation
Install globally:
npm install -g @unoff/cliOr use with npx (no installation required):
npx @unoff/cli create figma-pluginQuick Example
# Install globally
npm install -g @unoff/cli
# Create a new Figma plugin (will prompt for name)
unoff create figma-plugin
# Navigate to the plugin directory
cd color-palette-generator
# Install dependencies
npm install
# Start development
unoff dev
# Open Figma and load the plugin:
# Plugins > Development > Import plugin from manifest...
# Select manifest.json from the plugin folderCLI Commands
unoff help
Show all commands, available platforms, and workers.
unoff create <platform>
Scaffold a new plugin project.
| Platform | Status |
| -------- | ------ |
| figma-plugin | ✅ Available |
| penpot-plugin | 🚧 Coming soon |
| sketch-plugin | 🚧 Coming soon |
| framer-plugin | 🚧 Coming soon |
The interactive prompt will ask for plugin name, output directory, GitHub username, author, license, and which external services to enable:
| Service | Default | | ------- | ------- | | Supabase (Database & Authentication) | ✅ | | Mixpanel (Analytics) | ✅ | | Sentry (Error Monitoring) | ✅ | | Notion (Announcements & Onboarding) | ✅ |
Selected services update the is*Enabled flags in global.config.ts. All environment variable placeholders are always generated in .env.local.
unoff create figma-pluginunoff dev
Start development mode (npm run start:dev).
unoff build
Build for production (npm run build:prod).
unoff check
Run lint and type checking sequentially.
unoff format
Format source code with Prettier.
unoff add worker <name>
Add a Cloudflare Worker as a git submodule. Automatically updates package.json workspaces and injects the corresponding start script. You will be prompted for the destination path.
| Worker | Script | Port |
| --------------- | --------------------- | ---- |
| announcement | start:announcements | 8888 |
| auth | start:token | 8787 |
| cors | start:cors | 8989 |
unoff add worker announcement
npm install
npm run start:announcementsunoff add skills
Add the unoff-skills repository as a git submodule. You will be prompted for the destination path (default: skills/).
unoff add skills
git submodule update --init --recursiveunoff add specs
Create a local specs/ folder (or any path you choose) with an empty skill template in Markdown. Useful for documenting project-specific conventions in the same format as unoff-skills.
unoff add specs
# prompts for folder path and spec name
# creates specs/my-spec.md with frontmatter skeletonunoff remove worker <name>
Remove a worker submodule and clean up package.json (workspaces + scripts).
unoff remove worker announcementunoff remove skills
Remove the skills submodule from the project.
unoff remove skillsunoff remove specs
Remove the local specs folder and all its contents.
unoff remove specsFeatures
- 🚀 Quick setup with interactive CLI
- 📦 Multiple platform support (Figma ✅, Penpot 🚧, Sketch 🚧, Framer 🚧)
- 🔧 Built-in development server with hot reload
- 🏗️ Production-ready build system
- 🎛️ Toggleable external services (Supabase, Mixpanel, Sentry, Notion)
- 🔐 Authentication scaffolding (Supabase)
- 💳 License management (LemonSqueezy)
- 📊 Analytics and monitoring (Mixpanel, Sentry)
- 🌍 Internationalization (Tolgee)
- 📢 Announcement & onboarding system (Notion + Cloudflare Workers)
- ⚙️ Worker management via git submodules (
add worker/remove worker) - 📚 Skills library integration via git submodule (
add skills/remove skills) - 📝 Project specs scaffolding (
add specs/remove specs) - 📚 Comprehensive AI-assistant documentation
What's included in the template?
UI & Components
- @unoff/ui — Pre-built UI components for design tool plugins
Authentication & Database
- Supabase — Backend as a Service for authentication and database
Licensing & Payments
- LemonSqueezy — License management and payments
Monitoring & Analytics
Content & Communication
- Notion — CMS for announcements and onboarding
- Cloudflare Workers — Proxy layer for Notion API (auth + CORS)
Localization
- Tolgee — Translation management and i18n
Documentation
For detailed usage instructions, see USAGE.md.
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub.
License
MPL-2.0
