Skip to main content

stario-create

The project tool and agent guidance for building apps with Stario. This repo tracks Stario 5. The framework itself lives at bobowski/stario.

Two things ship from here:

  • The stario-create CLI (uvx stario-create, or uv tool install stario-create). It scaffolds apps, adds screens, installs the skills, updates the guide, and runs the dev tasks.
  • The files it installs: AGENTS.md (the always-on guide an app keeps at its root) and skills/<name>/SKILL.md (on-demand procedures an agent loads when the task matches).

New app

uvx stario-create new my-app
cd my-app
just dev     # http://127.0.0.1:8000, reloads on change
just check   # lint, format, types, tests — run before done

new creates a uv project on Python 3.14, adds stario>=5,<6 and the dev tools, writes the feature-folder layout with one static home screen, vendors static/js/datastar.js, writes AGENTS.md, a CLAUDE.md that imports it, and a justfile (dev, serve, check, fix, test), installs the four skills into .agents/skills/, and runs the tests once. Without just, the recipes in the justfile are plain commands — run them directly.

Before the first PyPI release, run from git:

uvx --from git+https://github.com/bobowski/stario-create stario-create new my-app

curl -fsSL https://stario.dev/setup.sh | sh -s -- my-app does the same through a shim.

Growing an app

Run these at the app root:

stario-create screen settings            # static page
stario-create screen notes --live        # GET + live stream + one command
stario-create skills install             # skills into .agents/skills/
stario-create guide --check              # is AGENTS.md stale?
stario-create guide --write              # update it, keep '## This app'
stario-create check                      # ruff, format, pyright, pytest
stario-create dev                        # hot reload, no `just` needed

Every command prints JSON when stdout is piped, takes --json or --text, and writer commands take --dry-run and --force.

Skills

Skill Use it when
stario-feature You add or remove one screen: a page or a resource with its own URL.
stario-auth The app needs login: a signed session cookie, c.state["user"], protected screens.
stario-litewriter The app stores data in SQLite through litewriter: one writer thread, watch repaints a live screen from a commit.
stario-tailwind-daisyui The app is styled with Tailwind v4 and DaisyUI through the standalone binary. No Node.

npx skills add bobowski/stario-create also works — it reads the skills/ tree at this repo root.

Served copies

stario.dev serves these files: /AGENTS.md, /setup.sh, /llms.txt, /llms-full.txt (the guide and the skills in one file), /skills/, and /skills/<name>/SKILL.md.

Repo layout

AGENTS.md, llms.txt, setup.sh, and skills/ sit at the root — npx skills, stario.dev, and repo browsing all read them there. The wheel embeds copies under stario_create/_data/ (hatchling force-include), so uvx works without a checkout. In a checkout, the CLI reads the root files directly, so there is one canonical copy of each file.

Changing the guide

The guide is checked against real code. examples/chat-room in the stario repo follows it. When a rule changes here, change the example there, and run its tests. A code snippet in AGENTS.md must run as written; the package tests scaffold a project and compile every generated file, and stario-create new runs the new app's tests.

Metadata

Release files for stario-create 5.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stario-create 5.0.0
File Size Uploaded
stario_create-5.0.0.tar.gz 48.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stario-create 5.0.0
File Interpreter ABI Platform
stario_create-5.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 107.7 kB

Release files / stario_create-5.0.0.tar.gz

Download URL stario_create-5.0.0.tar.gz
Size 48.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a7d5c2a875c9ee65c76c180f8bde6bddc983047e7c200c61757b16ed3a604682
BLAKE2b-256 checksum
How to use checksums
2acfe27ee120110fa3d524a251ad5ffb9a220c81ab02a247c6e93209ab112770
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / stario_create-5.0.0-py3-none-any.whl

Download URL stario_create-5.0.0-py3-none-any.whl
Size 59.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f50f75197274de394bddd6ddd88d6daaba532cf72dc77acf2b638efbfdfbd9dd
BLAKE2b-256 checksum
How to use checksums
077dc42d22574c33ba276124d145a52df091cfbc75a4b3a278b781475967ed3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

5.0.1

2 release files

This release

5.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page