Skip to main content

Spin up projects in seconds — clone your own repos as templates, layer on add-ons, and land in your editor.

Project description

cast — outline

Spin up projects in seconds. Save your own repos (local or from GitHub) as templates, scaffold new projects from them, layer on add-ons like Tailwind, Supabase, or Prisma, and land straight in your editor.

Install

coming soon!

Usage

Run cast with no arguments for the interactive menu:

cast

Or use it directly:

cast init myapp nextjs      # scaffold 'myapp' from the 'nextjs' template
cast add nextjs ~/code/my-starter   # save a local directory as a template
cast list                   # list saved templates
cast info nextjs            # show a template's variables, add-ons, and docs
cast remove nextjs          # delete a template
cast starter                # install the bundled starter templates

init is fully scriptable: --var KEY=VALUE sets template variables without prompting, --addons tailwind,prisma runs add-ons, and --open launches your editor.

Works with AI coding agents

Every command runs headless, so agents like Claude Code can drive cast directly: discover templates with cast list --json, inspect a template's variables and add-ons with cast info <template> --json, then scaffold with cast init <name> <template> --var KEY=VALUE --addons .... No plugin needed — the CLI is the integration.

New here? Just run cast — on first run it offers to install two starter templates: starter, a dependency-free mini site whose README explains how templating works, and web, a minimal Vite app. Scaffold one and you've seen the whole workflow.

Templates live in ~/.project_templates. When scaffolding, files are rendered with Jinja2 ({{ project_name }} is available), git init runs automatically, and dependency installs (npm install, pip install, cargo build, …) are detected and run for you.

Template manifest (cast.json)

Optionally drop a cast.json at the root of a template to customize scaffolding. Every field is optional, and templates without a manifest work exactly as described above. The manifest itself is never copied into generated projects.

{
  // shown in the template picker and `cast list`
  "description": "Next.js 15 + App Router starter",

  // prompted at init; every value is available to Jinja, e.g. {{ db_name }}
  "variables": [
    { "name": "db_name", "prompt": "Database name", "default": "app_db" }
  ],

  "addons": {
    "recommended": ["tailwind", "shadcn"],  // pre-checked in the add-on picker
    "supported": ["tailwind", "shadcn", "prisma"]  // limits built-ins shown; omit to show all
  },

  // replaces automatic install detection (git init still always runs);
  // use [] to skip installs entirely
  "post_init": ["npm install", "cp .env.example .env"],

  // printed after scaffolding so you never hunt for docs again
  "docs": ["https://nextjs.org/docs"]
}

Without a TTY (scripts, CI), variables fall back to their defaults instead of prompting.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cast_by_matt-0.1.0.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cast_by_matt-0.1.0-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file cast_by_matt-0.1.0.tar.gz.

File metadata

  • Download URL: cast_by_matt-0.1.0.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cast_by_matt-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6176501e9f94657879a1be5dfd3d2b04d29f5efc673c27ca5e6575ec2d835272
MD5 c25282200c8f7a02b56d9b826458c72e
BLAKE2b-256 676544f3e20c9d5b3b5350731cf8345971fedb5e09f8ed9ffdf02a244aafdddc

See more details on using hashes here.

File details

Details for the file cast_by_matt-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cast_by_matt-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for cast_by_matt-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 016799df6c43f57a5bf75bd2df8438609ccaf3e1c1767c63033e7ee12867fbee
MD5 44ba6ba1153c1c75ebfb37127846c3ad
BLAKE2b-256 d044b72877d1204613716b45437ab42b041e75e07ae496597408158429af4c77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page