Skip to content

yelbolt/unoff-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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 all unoff add commands (workers, skills, specs use git submodules)

Installing Prerequisites

Homebrew (macOS only)

If you don't have Homebrew installed, open Terminal and install it:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Then verify:

brew --version

Node.js and npm

On macOS: Open Terminal and run:

# Using Homebrew (requires Homebrew to be installed)
brew install node

On Windows:

  1. Download the installer from nodejs.org
  2. Run the installer and follow the setup wizard
  3. Open Command Prompt (cmd.exe) or PowerShell and verify installation:
    node --version
    npm --version

On Linux (Ubuntu/Debian): Open Terminal and run:

sudo apt update
sudo apt install nodejs npm

On Linux (Fedora/CentOS): Open Terminal and run:

sudo dnf install nodejs npm

Git

On macOS: Open Terminal and run:

# Using Homebrew
brew install git

On Windows:

  1. Download the installer from git-scm.com
  2. Run the installer and follow the setup wizard
  3. Open Command Prompt (cmd.exe) or PowerShell and verify installation:
    git --version

On Linux (Ubuntu/Debian): Open Terminal and run:

sudo apt update
sudo apt install git

On Linux (Fedora/CentOS): Open Terminal and run:

sudo dnf install git

Installation

Install globally:

npm install -g @unoff/cli

Or use with npx (no installation required):

npx @unoff/cli create figma-plugin

Quick 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 folder

CLI 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-plugin

unoff 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:announcements

unoff 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 --recursive

unoff 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 skeleton

unoff remove worker <name>

Remove a worker submodule and clean up package.json (workspaces + scripts).

unoff remove worker announcement

unoff remove skills

Remove the skills submodule from the project.

unoff remove skills

unoff remove specs

Remove the local specs folder and all its contents.

unoff remove specs

Features

  • πŸš€ 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

Monitoring & Analytics

  • Sentry β€” Error tracking and performance monitoring
  • Mixpanel β€” Product 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

About

A CLI tool to quickly scaffold plugins for Figma, Penpot, Sketch, and Framer with built-in development tools and best practices.

Topics

Resources

License

Stars

Watchers

Forks

Contributors