CLI Reference
The goon CLI is your project companion. It configures services, adds features, applies themes, and deploys your app.
Installation
npm install -g goon
Or use via npx (no install needed):
npx goon setup payments
Commands Overview
| Command | Description |
|---|---|
goon setup <service> | Configure a service interactively |
goon init | One-shot setup (all services at once) |
goon add <feature> | Add optional features to your project |
goon add list | List all available features |
goon deploy | Deploy to a hosting provider |
goon setup
Configure individual services. Each command validates credentials and writes to .env.
goon setup app
Set your app's identity:
goon setup app
Configures: NEXT_PUBLIC_APP_NAME, NEXT_PUBLIC_APP_URL, NEXT_PUBLIC_APP_DESCRIPTION, SUPPORT_EMAIL, NEXT_PUBLIC_TWITTER_HANDLE
goon setup auth
Generate auth secrets and configure OAuth:
goon setup auth
- •Generates a 256-bit cryptographic secret
- •Sets
BETTER_AUTH_SECRETandBETTER_AUTH_URL - •Optionally configures Google OAuth inline
goon setup db
Connect your database:
goon setup db
- •Validates connection string format
- •Supports Neon, Supabase, PlanetScale, custom
- •Sets
DATABASE_URL(andDATABASE_URL_UNPOOLEDfor migrations)
goon setup payments
Configure payments (multi-provider):
goon setup payments
Providers: Stripe, Polar, LemonSqueezy, DodoPayments
Each provider:
- •Validates your API key with a real API call
- •Fetches products/prices for interactive selection
- •Configures webhook secrets
- •Updates
.goon/manifest.json
goon setup email
Configure email sending (multi-provider):
goon setup email
Providers: Resend, Postmark, SendGrid, Mailgun, Nodemailer (SMTP)
Each provider:
- •Validates credentials with a real API call
- •Sets from name and address
- •Updates
.goon/manifest.json
goon setup ratelimit
Configure Upstash Redis for API rate limiting:
goon setup ratelimit
- •Validates connection via ping
- •Sets
UPSTASH_REDIS_REST_URLandUPSTASH_REDIS_REST_TOKEN
goon setup theme
Apply a UI theme to your project:
goon setup theme
10 themes available:
| Theme | Tier | Vibe |
|---|---|---|
| Default | Free | Clean black & white |
| Zinc | Free | Neutral grays |
| Slate | Free | Cool blue-gray |
| Midnight | Free | Deep navy |
| Ocean | Pro | Teal & cyan |
| Aurora | Pro | Purple-to-green |
| Ember | Pro | Warm amber |
| Forest | Pro | Earthy greens |
| Candy | Bundle | Bubbly pinks |
| Brutal | Bundle | Neo-brutalist |
Themes inject CSS variables between markers in globals.css. Full light + dark mode support.
goon setup google
Standalone Google OAuth setup with step-by-step guidance:
goon setup google
goon init
Run all setup commands in one shot. Designed for non-interactive environments (CI/CD, AI agents):
goon init \
--app-name "My SaaS" \
--app-url "https://mysaas.com" \
--db-url "postgresql://..." \
--payment-provider stripe \
--stripe-key "sk_test_..." \
--email-provider resend \
--resend-key "re_..."
Runs in sequence: app → auth → db → payments → email.
goon add
Add optional features to an existing project:
goon add blog
Available Features
| Feature | Tier | What It Adds |
|---|---|---|
blog | Free | MDX blog engine with syntax highlighting |
waitlist | Free | Email waitlist with landing page |
analytics | Free | PostHog analytics integration |
i18n | Free | next-intl internationalization |
admin | Pro | Admin dashboard with user management |
ai | Pro | AI routes with OpenAI integration |
How It Works
When you run goon add blog, the CLI:
- •Checks your license tier (pro features require pro/bundle)
- •Creates directories and files with content
- •Installs npm dependencies
- •Adds environment variables to
.env - •Updates
.goon/manifest.json
List Available Features
goon add list
Shows all features with their tier requirements and install status.
goon deploy
Deploy your project to a hosting provider:
goon deploy
Supported Providers
| Provider | Deploy Command | Pre-requisite |
|---|---|---|
| Vercel | npx vercel | Vercel account |
| Netlify | npx netlify deploy --prod | Netlify CLI |
| Railway | railway up | Railway CLI |
| Fly.io | fly deploy | Fly CLI |
| Render | render deploy | Render CLI |
What It Does
- •Prompts for provider selection
- •Checks if you're authenticated
- •Warns about uncommitted changes
- •Optionally runs
npm run buildfirst - •Executes the provider's deploy command
Non-Interactive Mode
All commands support non-interactive execution:
# Auto-detected in piped environments
echo "" | goon setup auth
# Explicit flag
goon setup auth --yes
# With values
goon setup db --db-url "postgresql://..." --yes
This makes the CLI work in automated pipelines and with AI coding agents.
The Manifest (.goon/manifest.json)
The CLI reads and writes this file to track your project state:
{
"framework": "next",
"tier": "pro",
"database": "neon",
"features": ["blog", "admin", "analytics"],
"providers": {
"payments": "stripe",
"email": "resend"
}
}
Next Steps
- •create-goon-app — The scaffolding CLI in detail
- •Deployment — Production deployment guide