eni
Interactive CLI for scaffolding and managing Eniem projects.
Installation
npm install -g eniem-cli
Or run directly without installing:
pnpm dlx eniem-cli my-app
npx eniem-cli my-app
Usage
Create a new project
eni [project-name]
--app-name | Display name for the app (skips the interactive prompt) |
--ssh | Clone via SSH instead of auto-detecting gh/git HTTPS |
--git-host | SSH host alias from ~/.ssh/config (implies --ssh, default: github.com) |
--help, -h | Show help message |
--version, -v | Show version number |
eni my-app
eni my-app --app-name "My App"
eni my-app --git-host github.com-work
The wizard configures project name, OAuth providers (GitHub, Twitter), payments (Polar), storage (DigitalOcean Spaces), and analytics (Umami, PostHog).
Generate a production .env
Run from inside an Eniem project directory. Walks you through filling in each environment variable interactively and writes the result to .env.production.
eni ready
Manage Polar products
Run from inside an Eniem project directory.
eni products [options]
--env | Environment: sandbox or production (default: sandbox) |
--prod | Shorthand for --env=production |
--token | Polar access token (bypasses .env lookup) |
eni products
eni products --prod
eni products --prod --token=polar_xxx
Products are stored in polar/products.sandbox.json and polar/products.production.json, with TypeScript exports generated in src/features/billing/generated/products.generated.ts.
Import generated helpers from the billing generated module:
import { getCheckoutProducts } from "@/features/billing/generated/products.generated";
Migration note: Older Eniem projects may have a stale generated products file under the former subscription feature. Regenerate with the current CLI, update imports to @/features/billing or @/features/billing/generated/products.generated, then remove the stale file.
License
MIT