GitHub – CrazhHolmes/passive-gen


Passive-Gen Cover

Offline passive income product ideas for any niche β€” no APIs, no keys, no internet required.

Generate Gumroad course ideas, Etsy product concepts, and AI prompts in seconds. 100% deterministic. 100% offline. Free to use.

πŸ”’ 100% Offline β€” Zero network calls, no cloud dependencies, works anywhere
πŸ”‘ No API Keys β€” No authentication, no signup, no accounts required
🎲 Deterministic β€” Same seed always produces identical results (perfect for workflows)
πŸ“Š Scored Ideas β€” Each idea rated on ease, demand, differentiation, and time-to-ship
πŸ“¦ Dual Output β€” Markdown for humans, JSON for automation
🎯 Three Income Streams β€” Gumroad courses, Etsy products, AI prompts (ChatGPT, Claude, etc.)

Try it now (requires Node.js 18+):

git clone https://github.com/yourusername/passive-gen.git
cd passive-gen
npm install && npm run build

node dist/cli.js "your niche here" --out ./ideas --seed 42 --count 5

See output in ./ideas/ folder:

  • gumroad_ideas.md β€” Course ideas with pricing suggestions
  • etsy_ideas.md β€” Product ideas with print-on-demand notes
  • prompts.md β€” Prompts ready for ChatGPT/Claude
  • bundle.json β€” All data in JSON format
  • README.md β€” Market analysis and tips

View example outputs: See /demo-output folder.

# Clone the repository
git clone https://github.com/yourusername/passive-gen.git
cd passive-gen

# Install dependencies
npm install

# Build the project
npm run build

# (Optional) Install globally for direct access
npm install -g .

This project is free and open-source on GitHub.

If you prefer a pre-built, ready-to-use Windows executable with no setup required:
πŸ‘‰ Buy on Gumroad β€” Includes compiled binary, quick-start guide, and priority support

Source (GitHub): https://github.com/CrazhHolmes/passive-gen

Open-source users: Clone and build locally (it’s free).

node dist/cli.js "your niche here" --out ./output
# Generate 10 ideas for digital marketing
node dist/cli.js "digital marketing" --out ./ideas

# Generate 20 ideas with a specific seed (reproducible)
node dist/cli.js "dog training" --out ./ideas --seed 42 --count 20

# Export all template categories
node dist/cli.js "blockchain" --templates --out ./templates
USAGE:
  passive-gen  [OPTIONS]

ARGUMENTS:
            The niche or market to generate ideas for

OPTIONS:
  --out       Output directory (required)
  --count       Number of ideas per category (default: 10, max: 100)
  --seed        Seed for deterministic generation (optional)
  --templates      Export all template categories
  --help           Show this help message
  --version        Show version number

After running the command, you’ll get:

  • gumroad_ideas.md β€” Gumroad course ideas with pricing notes
  • etsy_ideas.md β€” Etsy product ideas with market tips
  • prompts.md β€” AI prompts for ChatGPT, Claude, etc.
  • bundle.json β€” All data in JSON format with metadata
  • README.md β€” Generated guide with niche analysis
# Digital Marketing Ideas

## Gumroad Course Ideas

### Idea 1: [Generated Title]

**Why it will sell:** [Reasoning based on market demand]
**What's included:** [Course structure details]
**Who's it for:** [Target audience description]

**Scores**
| Dimension | Score | Notes |
|-----------|-------|-------|
| Ease | 8/10 | Can be created in 2-3 weeks |
| Demand | 9/10 | High market interest |
| Differentiation | 7/10 | Moderate competition |
| Time to Ship | 6/10 | 4-6 week timeline |

---

Every run includes metadata for perfect reproducibility:

{
  "niche": "digital marketing",
  "seed": 42,
  "count": 10,
  "generatedAt": "2026-01-21T14:30:00Z",
  "gumroadIdeas": [...],
  "etsyIdeas": [...],
  "prompts": [...]
}

To regenerate identical ideas: Use the same --seed value.

# Run dev mode (without compilation)
npm run dev "test niche" --out ./output

# Run tests
npm test

# Watch mode for tests
npm test:watch

# Run tests with UI
npm run test:ui

# Lint and fix code
npm run lint
passive-gen/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ cli.ts           Command-line interface
β”‚   β”œβ”€β”€ generator.ts     Core generation logic with scoring
β”‚   β”œβ”€β”€ writer.ts        File output and markdown formatting
β”‚   └── random.ts        Deterministic RNG (seeded)
β”œβ”€β”€ tests/
β”‚   └── generator.test.ts Comprehensive test suite (25+ tests)
β”œβ”€β”€ dist/                Compiled JavaScript output
β”œβ”€β”€ package.json         Project metadata and scripts
β”œβ”€β”€ tsconfig.json        TypeScript configuration
β”œβ”€β”€ vitest.config.ts     Test runner configuration
└── README.md            This file
  1. Seeded RNG β€” Uses Linear Congruential Generator (LCG) for deterministic randomness
  2. Template System β€” 30 templates each for Gumroad, Etsy, and Prompts
  3. Niche Injection β€” Substitutes your niche into relevant templates
  4. Scoring β€” Automatically scores each idea on four dimensions (1-10)
  5. Output Generation β€” Formats as Markdown, JSON, and readable guide
  • Zero-Cost β€” No paid APIs, no cloud services, no authentication
  • Offline-Only β€” All computation happens locally on your machine
  • Deterministic β€” Same inputs = Same outputs (perfect for workflows)
  • Minimal Dependencies β€” Only TypeScript, Node.js utilities, and Vitest for testing
# Run full test suite (25+ tests)
npm test

# Expected output:
# βœ“ Generator Tests (13 tests)
# βœ“ File Writing Tests (5 tests)
# βœ“ Validation Tests (3 tests)
# βœ“ Output Validation Tests (4 tests)
# PASS tests/generator.test.ts (123ms)

All tests verify:

  • Deterministic generation with seeds
  • Scoring ranges (1-10)
  • File creation and content
  • Niche inclusion
  • Edge cases (special characters, long names, count limits)
  • Guard tests for template escape sequences

“Command not found: passive-gen”

The CLI hasn’t been installed globally. Use:

node dist/cli.js "your niche" --out ./output

Or install globally:

“Output directory doesn’t exist”

The CLI creates it automatically. If you get an error:

mkdir output
node dist/cli.js "niche" --out ./output

“Strange characters in output”

This shouldn’t happen. If you see {{ or }} tokens, it’s a bug. Report with:

If tests fail, the issue is confirmed.

Build fails with TypeScript errors

Verify you have Node.js 18+ installed:

node --version
npm run build

MIT β€” See LICENSE file for details. Free for personal and commercial use.


v1.0.0 β€” Initial Stable Release (Jan 2026)

βœ… Offline passive income idea generator with:

  • 3 output categories (Gumroad, Etsy, AI Prompts)
  • Deterministic seeded randomness for reproducibility
  • Scoring system (ease, demand, differentiation, time-to-ship)
  • Markdown + JSON dual output
  • 25+ comprehensive tests
  • Zero external dependencies
  • Windows, macOS, Linux compatible

Status: Production ready. No breaking changes expected.

Possible future additions (not in v1.0):

  • Database of market research data
  • Category-specific scoring adjustments
  • Custom template support
  • Web UI dashboard
  • API endpoint

These would require external resources and violate the zero-cost constraint, so they’re out of scope.

Contributions welcome! This is a community project. Areas for improvement:

  • Additional template categories (Notion, Substack, etc.)
  • Improved scoring algorithms based on market data
  • Better niche detection and segmentation
  • Performance optimizations

Note: Keep the zero-cost constraint. No external APIs or network calls.

  • GitHub Issues β€” Report bugs or suggest features
  • Questions β€” Check existing issues first
  • Gumroad β€” Private support for paid version

Built with: Node.js, TypeScript, Vitest
Tested on: Windows 10/11, macOS, Linux
Status: Production ready, actively maintained
Last updated: January 2026



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *