create-fedi-app
CLI

CLI Options

Complete reference for every create-fedi-app prompt, default value, validation rule, and conditional logic.

Prompts appear in this fixed order. Press Ctrl+C at any prompt to cancel cleanly.

1. Project name

PropertyValue
Typetext
Defaultmy-fedi-app
Validation/^[a-z0-9-]+$/ — lowercase letters, numbers, hyphens only

The CLI creates a directory with this name in the current working directory. If the directory already exists, the CLI exits with an error.

2. Database

OptionValueDescription
None (default)noneNo persistence layer
TursotursolibSQL edge database via Drizzle ORM
SupabasesupabasePostgres via Drizzle ORM

Selecting Turso or Supabase applies the database module automatically with the matching driver files (index.turso.ts vs index.supabase.ts).

3. Optional modules

Module IDLabelHint
payment-gated-contentPayment-gated contentLock content behind a Lightning payment
lnurlLNURLLNURL-pay and LNURL-withdraw
ai-chat-gatedAI chat (gated)AI chat locked behind ecash payment
ai-assistantAI assistantFree AI chat with Vercel AI SDK
multispend-demoMultispend demoFedi multispend wallet UI
nostr-feedNostr feedRead/post to a Nostr relay
databaseDatabase demoDrizzle ORM CRUD example

Multiselect — space to toggle, enter to confirm. Empty selection is valid.

4. AI rules directory

PropertyValue
Typeconfirm
Defaulttrue

When enabled, applies the ai-rules module: generates .cursorrules, CLAUDE.md, and .ai/rules/ with Fedi API context for AI-assisted development.

5. AI provider (conditional)

Only shown when ai-chat-gated or ai-assistant is selected.

OptionValueDescription
Agnostic (default)agnosticVercel AI SDK default — swap any provider
AnthropicanthropicClaude via @ai-sdk/anthropic
OpenAIopenaiGPT via @ai-sdk/openai
GroqgroqFast inference via @ai-sdk/groq
OllamaollamaLocal models via ollama-ai-provider

Sets default values in .env.local for AI_PROVIDER and related keys.

6. Package manager

OptionValueHint
bun (default)bunRecommended — fastest
pnpmpnpmEfficient disk usage
npmnpmBroadest compatibility

Replaces {{PACKAGE_MANAGER}} in generated package.json scripts and runs the corresponding install command.

Environment variables injected

Each selected module may add keys to .env.local from its module.json envVars array. See individual module guides for required keys.

Exit codes

CodeMeaning
0Success or user cancelled
1Directory exists, scaffold failure, or unhandled error

On this page