Seed & Source CLI (sscli)
The unified scaffold tool for the Seed & Source template library. Pick a base, bolt on features, ship faster.
🎯 What is sscli?
sscli is a code-generation CLI that pulls production-ready project templates and injects optional premium modules into them. Every template is a complete, opinionated starting point — not a toy boilerplate.
- ✅ Production-ready bases — Rails API, Python SaaS, React, Astro, mobile, and more
- ✅ Optional feature injection — Commerce, Auth, Admin, Tunnels, and others added at scaffold time
- ✅ Clean architecture — Hexagonal (Python), standard Rails conventions, functional React
- ✅ Docker-first — Every template ships with a multi-stage production
Dockerfile
📦 Install
# Recommended
pipx install sscli
# Or via pip
pip install sscli
# Verify
sscli --version
🚀 Quick Start
# Interactive mode — guided setup with template picker
sscli interactive
# Or go direct
sscli new --template rails-api --name my-api
New to Seed & Source? Start here: ../../docs/public/GETTING_STARTED.md
✅ Quick Validation
Before committing changes, run the test suite:
pytest
Expected output: Exit code 0 + coverage ≥ 90%
Results:
- Coverage report:
coverage_report/index.html - Coverage XML:
coverage.xml
For details, see Quick Start Validation Guide.
🗂️ Templates
Run
sscli exploreto browse all templates interactively in your terminal.
🛤️ Rails API · rails-api · FREE
A production-grade JSON API built on Rails 8 — opinionated, deployable on day one.
app/
├── controllers/api/v1/ # Versioned JSON endpoints
├── models/ # ActiveRecord (PostgreSQL)
├── services/ # Business logic layer
└── serializers/ # JSON serialization
What's in the base:
- Rails 8.0 + PostgreSQL + Devise (authentication)
- RSpec test suite + FactoryBot
- HMAC webhook validation scaffolding
- Docker +
.envsecrets management - RuboCop enforced
sscli new --template rails-api --name my-api
🧱 Rails API Hex · rails-api-hex · FREE
A production-grade JSON API built on Rails 8 with an explicit hexagonal architecture.
app/
├── domain/ # Pure domain entities and ports
├── use_cases/ # Application business flows
├── infrastructure/ # Repositories, persistence, external adapters
├── controllers/api/v1/ # HTTP entrypoints
└── serializers/ # JSON serialization
What's in the base:
- Rails 8.0 + PostgreSQL + Devise (authentication)
- Hexagonal layering via
routes -> use_cases -> entities - RSpec test suite + FactoryBot
- Docker +
.envsecrets management - RuboCop enforced
sscli new --template rails-api-hex --name my-hex-api
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Generic commerce adapter pattern, webhook infrastructure, commerce models |
--with-payment |
PAID | Stripe Checkout + webhook scaffold |
--with-tunnel |
PRO | Available (tier-gated) |
--with-auth |
PRO | Available (tier-gated) |
--with-sidekiq |
PRO | Swap solid_queue for Sidekiq |
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Generic commerce adapter pattern, webhook infrastructure, commerce models |
--with-merchant-dashboard |
PRO | Available (tier-gated) |
--with-tunnel |
PRO | Available (tier-gated) |
--with-auth |
PRO | Available (tier-gated) |
--with-landing |
PRO | Injects a companion Astro landing page alongside the API |
--with-admin |
PRO | Available (tier-gated) |
Commerce example:
sscli new \
--template rails-api \
--name commerce-backend \
--with-commerce
Request Flow:
Provider Webhook → HMAC Validator → Adapter (fake/stripe/mercado_pago)
→ Provisioning::IssueResource → CommercialAgreement + SecurityToken
🏗️ Rails Fullstack · rails-fullstack · PRO
A Hotwire / Turbo fullstack Rails 8 application — session auth, server-rendered HTML, and the full hexagonal domain layer shared with rails-api-hex via rails-hexagonal-base.
app/
├── domain/ # Pure Ruby ports + entities (shared with rails-api-hex)
├── use_cases/ # Business logic — no HTTP dependency
├── infrastructure/ # AR repositories (shared with rails-api-hex)
├── controllers/ # ActionController::Base, flash & redirects
├── views/ # ERB layouts + Turbo Stream partials
└── components/ # ViewComponent
What's in the base:
- Rails 8 + Hotwire (Turbo + Stimulus) + Tailwind CSS
- Devise session auth (no JWT — full cookie/CSRF stack)
- ViewComponent + Capybara system specs
- Hexagonal domain layer from
rails-hexagonal-base(zero drift guarantee) - RuboCop + Brakeman gate via
bin/ci - Docker +
.envsecrets management
sscli new --template rails-fullstack --name my-app
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Commerce models, product/order ports, provider-agnostic adapters |
--with-tunnel |
PRO | Available (tier-gated) |
--with-auth |
PRO | Available (tier-gated) |
🐍 Python SaaS · python-saas · ALPHA
A Hexagonal Architecture Python service — ports and adapters enforced from project root.
src/
├── core/
│ ├── entities/ # Pure domain models (no I/O)
│ └── use_cases/ # Business logic (depends only on entities)
└── infrastructure/
├── adapters/ # DB, HTTP, external services
└── ui/ # FastAPI / Django routes
What's in the base:
- Python 3.11+ with FastAPI or Django
- SQLAlchemy ORM + Pydantic v2 validation
ruff+mypystrict mode enforced- Multi-tier secrets management (Dotenv, Doppler, Env-only)
- pytest with coverage gate (target 95% on codemods)
sscli new --template python-saas --name my-service
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Commerce adapter wired into the hexagonal ports |
--with-admin |
PRO | Available (tier-gated) |
--with-sqlite |
ALPHA | Local SQLite persistence via SQLAlchemy + Alembic (dev/test) |
--with-ingestor |
PRO | Available (tier-gated) |
--with-tunnel |
PRO | Available (tier-gated) |
--with-auth |
PRO | Available (tier-gated) |
sscli new \
--template python-saas \
--name data-service \
--with-sqlite
🌐 Static Landing · static-landing · ALPHA
An Astro-powered static site built for SaaS marketing pages — multi-theme, blueprint-driven.
src/
├── components/ # Astro/React island components
├── pages/ # File-based routing
└── content/ # Markdown + JSON content layer
blueprint.json # Content & theme configuration file
What's in the base:
- Astro 5.0 + Tailwind CSS
- Multi-theme system (Emerging Emerald, Midnight Azure, Crimson Bloom, Vibrant Amber)
blueprint.jsonmanifest for content/theme customization- Static build → Nginx Docker image
- Playwright smoke tests
sscli new --template static-landing --name my-landing
# With custom content & theme
sscli new \
--template static-landing \
--name my-landing \
--content ./my-blueprint.json \
--theme midnight
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Storefront components (cart, product, checkout UI) |
--with-auth |
PRO | Available (tier-gated) |
⚛️ React Client · react-client · ALPHA
A React 18 + Vite frontend with the full modern stack, ready to connect to any of the backend templates.
src/
├── components/ # Functional components only
├── hooks/ # Custom hooks for all business logic
├── pages/ # Route-level components
└── api/ # React Query client bindings
What's in the base:
- React 18 + Vite (JSX-first template; TypeScript can be added post-generate)
- React Query for server state
- Tailwind CSS
- ESLint + Prettier strict mode
- Jest + Playwright
sscli new --template react-client --name my-frontend
➕ Available Features (click to expand)
| Flag | Tier | Description |
|---|---|---|
--with-commerce |
PRO | Commerce UI components (cart, order flow) |
--with-merchant-dashboard |
PRO | Available (tier-gated) |
--with-auth |
PRO | Available (tier-gated) |
sscli new \
--template react-client \
--name merchant-ui \
--with-commerce
📊 Data Pipeline · data-pipeline · ALPHA
A dbt + Python data stack for SaaS analytics and data transformation pipelines.
sscli new --template data-pipeline --name my-pipeline
What's included (click to expand)
- dbt Core with modular transformation layers (staging → marts)
- Python ingestion scripts
- Docker orchestration
- Pre-configured profiles for PostgreSQL / BigQuery
📱 Mobile · ALPHA
| Template | Stack | Command |
|---|---|---|
mobile-android |
Kotlin + Jetpack Compose | sscli new --template mobile-android --name my-app |
mobile-ios |
Swift + SwiftUI | sscli new --template mobile-ios --name my-app |
🏗️ Infrastructure · ALPHA
| Template | Stack | Command |
|---|---|---|
terraform-infra |
Terraform multi-cloud IaC | sscli new --template terraform-infra --name my-infra |
wiring |
Docker Compose multi-service orchestration | sscli new --template wiring --name my-stack |
🔧 CLI Reference
| Command | Description |
|---|---|
sscli new |
Scaffold a new project from a template |
sscli inject |
Inject features into an existing project |
sscli setup |
Run setup scripts for templates |
sscli interactive animated |
Guided interactive setup with a robust animated experience |
sscli ready |
Check if your project is ready for local development |
sscli explore |
Browse all templates in an interactive tree view |
sscli verify |
Verify template integrity and run smoke tests |
sscli health |
Check configuration and template health |
sscli validate |
Run smoke test suite against a template |
sscli upgrade |
Upgrade a generated project to a newer template version using AST |
sscli auth login |
Authenticate with GitHub to unlock ALPHA/PRO templates |
sscli auth logout |
Clear authenticated session for the auth namespace |
sscli whoami |
Show current authenticated user and license tier |
sscli logout |
Clear local credentials |
sscli feedback |
Submit feedback, bugs, and feature requests |
sscli obs diff |
3-way diff between base template and current code |
sscli obs workspace |
Manage feature isolation workspaces |
Feature Flags for sscli new
| Flag | Templates | Tier |
|---|---|---|
--with-commerce |
rails-api, rails-api-hex, rails-fullstack, python-saas, react-client, static-landing | PRO |
--with-merchant-dashboard |
react-client | PRO (tier-gated) |
--with-auth |
rails-api, rails-api-hex, python-saas, react-client, static-landing | PRO (tier-gated) |
--with-admin |
rails-api, python-saas | PRO (tier-gated) |
--with-tunnel |
rails-api, rails-api-hex, python-saas | PRO (tier-gated) |
--with-landing |
rails-api, python-saas | PRO |
--with-ingestor |
python-saas | PRO (tier-gated) |
--with-sqlite |
python-saas | ALPHA |
--with-payment |
rails-api, rails-api-hex, rails-fullstack, python-saas, react-client | PAID |
--with-sidekiq |
rails-api, rails-api-hex, rails-fullstack | PRO (tier-gated) |
--secrets <strategy> |
all | FREE |
--use-ast-injection |
all (where supported) | ALPHA |
--content <file> |
static-landing | ALPHA |
--theme <name> |
static-landing | ALPHA |
--dry-run |
all | FREE |
--json |
all | FREE |
🔄 Updates
pipx upgrade sscli
# or
pip install --upgrade sscli
❓ Troubleshooting
Command not found after install
sscli --version
# If missing, reinstall via pipx
pipx uninstall sscli
pipx install sscli
Template not generating correctly
# Check template integrity first
sscli verify --template rails-api
# Preview without writing files
sscli new --template rails-api --name test --dry-run
📞 Support
- Docs: docs.seedsource.dev
- GitHub: seed-source/stack-cli
- Email: support@seedsource.dev
📄 License
MIT
Metadata
Release files for sscli 4.0.26
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sscli-4.0.26-py3-none-any.whl | Python 3 | none | any | Details |
Release files / sscli-4.0.26-py3-none-any.whl
| Download URL | sscli-4.0.26-py3-none-any.whl |
|---|---|
| Size | 533.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a73ae51c431ce1b9c3dac84936010446528ae4daf1edd69e0437af39c0fc5a27
|
|
BLAKE2b-256 checksum How to use checksums |
3955c0481f1d43a1a586a3eb60d022f1be14e9d25f4ca825a4bee725a81eeea2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|