create-caspian-app
Create a new Caspian app, a high-performance Python web framework built on FastAPI and the PulsePoint browser runtime.
The installer and application tooling use Python.
Caspian is in alpha. APIs and generated project structure may change as Caspian develops.
Create an app
With uv (recommended, nothing to install first):
uvx create-caspian-app@latest my-app
Use @latest to check for the newest published installer. Without it, uvx can reuse
a cached older version. Verify with uvx create-caspian-app@latest --version;
use @0.0.7 instead to run that exact release.
Or install the command once:
uv tool install create-caspian-app # or: pipx install create-caspian-app
create-caspian-app my-app
You'll be asked which features you want:
? What is your project named? (my-app)
? Would you like to use Tailwind CSS? y/N
? Would you like to use MCP (Model Context Protocol)? y/N
? Would you like to use Prisma ORM (Caspian DB)? y/N
? Would you like to use WebSocket? y/N
The installer writes the project, generates a .env with fresh secrets, runs
uv sync --group dev, and builds the CSS.
When Tailwind is on, the installer runs settings/build.py setup before the CSS
build. Setup installs Tailwind's pinned official standalone executable and verifies
its checksum. The shared user cache is reused by every project, so the same
version/platform is downloaded once. Existing verified project-local downloads
can seed that cache. PulsePoint and Tailwind Merge are bundled scaffold files.
Then:
cd my-app
uv run dev
uv run dev is a shortcut for uv run python main.py; both start the development server.
The other everyday tools have short commands too; arguments pass through unchanged:
| Command | Same as | Does |
|---|---|---|
uv run dev |
uv run python main.py |
Start the development server |
uv run restart |
uv run python settings/restart.py |
Apply edits: graceful restart of the dev server (--stop to stop) |
uv run test |
uv run python settings/test.py |
Quality gate: ty, Ruff, templates, pytest |
uv run format |
uv run python settings/format.py |
Format markup and Python (--check to report only) |
uv run fix |
uv run python settings/fix.py |
Format, apply lint fixes, run the gate |
uv run build |
uv run python settings/build.py |
Build CSS and validate sources (css, pages, --check) |
uv run browser-log |
uv run python settings/browser_log.py |
Browser errors from the dev session |
uv run generate |
uv run python settings/generate.py |
Add a component, route, layout, or route.py endpoint to the app |
Skip the questions
Pass flags and -y. Only the flags you pass are turned on:
uvx create-caspian-app@latest my-app --tailwindcss --mcp --prisma --websocket -y
uvx create-caspian-app@latest my-app --prisma --websocket -y
| Flag | Feature |
|---|---|
--tailwindcss |
Tailwind CSS v4 (pinned standalone compiler in a shared user cache) |
--mcp |
MCP server mounted in FastAPI (src/lib/mcp) |
--prisma |
Caspian DB: prisma/schema.prisma + generated Python client |
--websocket |
Named sockets (src/lib/websocket) |
--skip-install |
Write files only; skip uv sync and the CSS build |
-y |
No prompts |
Update an existing app
Run this from the project folder:
uvx --from create-caspian-app@latest casp update project # latest
uvx --from create-caspian-app@latest casp update project 0.0.1 # a specific version
Running create-caspian-app <name> inside a folder that has a caspian.config.json
does the same. The update asks about any features that aren't enabled yet and re-pins
the managed dependencies.
It replaces only the template files nobody changed. caspian.config.json keeps a
scaffold ledger: the SHA-256 of every template file as the installer wrote it. Edit
any file freely, by hand or with an AI agent; on the next update:
| File on disk | Update |
|---|---|
| Unchanged since the installer wrote it | Replaced with the new template version |
| Edited | Kept, and listed as yours |
| Deleted | Stays deleted |
| New in this template | Written |
| No longer in the template (or its feature was turned off) | Removed when unchanged, kept when edited; prisma/ is never removed |
Take the template version of a file you edited with --force (repeatable):
uvx --from create-caspian-app@latest casp update project -y --force src/app/index.py
Some files follow fixed rules instead: .env and uv.lock are never written,
public/css/styles.css is rebuilt by the update's CSS build,
src/app/globals.css only gains or loses the Tailwind directives, pyproject.toml only
has the managed requirements re-pinned and missing uv run aliases added, and
AGENTS.md only has its <!-- caspian:start --> block replaced, so your notes around it
stay.
A project created before the ledger existed gets one on its first update: the installer re-runs the version recorded in its config into a temporary folder to learn exactly which files are unchanged.
Requirements
- Python 3.14+ for the installer and generated apps. uv can download Python 3.14 if it is missing.
- uv. If it's missing, the installer tries
python -m pip install uv.
Metadata
Release files for create-caspian-app 0.0.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| create_caspian_app-0.0.14.tar.gz | 692.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| create_caspian_app-0.0.14-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.4 MB
Release files / create_caspian_app-0.0.14.tar.gz
| Download URL | create_caspian_app-0.0.14.tar.gz |
|---|---|
| Size | 692.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
30ad0620a434e2cb3ab854aca8f0504035f83688de4ed1d6c35b08df0a2bd2d8
|
|
BLAKE2b-256 checksum How to use checksums |
280a2e95504537c28445fca0b73f565d5d8c122b7faafe5b58cfe5771921e7ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / create_caspian_app-0.0.14-py3-none-any.whl
| Download URL | create_caspian_app-0.0.14-py3-none-any.whl |
|---|---|
| Size | 723.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
13c7847cfe98b9ad7f7f57d60ce656ddf7396d8454bc3a158d75448a8e8d5c26
|
|
BLAKE2b-256 checksum How to use checksums |
0de791688d66d3cd762e20f92190a727e7cb565ab5a698c81cb279d0766312a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|