Nitro CLI
A static site generator that lets you build websites using Python and nitro-ui.
Installation
pip install nitro-cli
AI Assistant Integration
Add Nitro CLI knowledge to your AI coding assistant:
npx skills add nitro-sh/nitro-cli
This enables AI assistants like Claude Code to understand Nitro CLI and generate correct nitro-ui code.
Quick Start
nitro new my-site
cd my-site
nitro dev
Visit http://localhost:3000. Build for production with nitro build.
Writing Pages
Pages are Python files in src/pages/ that export a render() function:
# src/pages/index.py
from nitro_ui import HTML, Head, Body, Title, Meta, H1
from nitro import Page
def render():
return Page(
title="Home",
content=HTML(
Head(
Meta(charset="UTF-8"),
Meta(name="viewport", content="width=device-width, initial-scale=1.0"),
Title("Home"),
),
Body(H1("Welcome!"))
)
)
Output paths mirror the file structure: src/pages/about.py → build/about.html
Features
- Python-Powered - Write pages in Python with nitro-ui instead of template languages
- Live Reload - Development server with automatic browser refresh
- Incremental Builds - Only rebuild changed pages
- Dynamic Routes - Generate pages from data with
[slug].pypattern - Draft Pages - Mark pages as drafts to exclude from production builds
- Environment Variables - Auto-load
.envfiles withfrom nitro import env - Image Optimization - Responsive images with WebP/AVIF conversion
- Islands Architecture - Partial hydration for interactive components
- Plugin System - Extend the build lifecycle with nitro-dispatch hooks
- One-Click Deploy - Netlify, Vercel, or Cloudflare Pages
Dynamic Routes
Generate multiple pages from data using [param].py naming:
# src/pages/blog/[slug].py
from nitro import Page
from nitro_datastore import NitroDataStore
def get_paths():
data = NitroDataStore.from_file("src/data/posts.json")
return [{"slug": p.slug, "title": p.title} for p in data.posts]
def render(slug, title):
return Page(title=title, content=...)
Commands
| Command | Description |
|---|---|
nitro new <name> |
Create new project |
nitro init |
Initialize Nitro in current dir |
nitro dev |
Start dev server with live reload |
nitro build |
Build for production |
nitro preview |
Preview production build |
nitro routes |
List all routes |
nitro check |
Validate site without building |
nitro export |
Export site as zip archive |
nitro clean |
Remove build artifacts |
nitro deploy |
Deploy to hosting platform |
nitro info |
Show project and environment info |
Run nitro <command> --help for options.
Configuration
# nitro.config.py
from nitro import Config
config = Config(
site_name="My Site",
base_url="https://mysite.com",
renderer={"minify_html": True},
plugins=[],
)
Ecosystem
- nitro-ui - Build HTML with Python, not strings
- nitro-datastore - Schema-free JSON data store with dot notation access
- nitro-dispatch - Framework-agnostic plugin system
- nitro-image - Fast, friendly image processing for the web
- nitro-validate - Dependency-free data validation
License
This project is licensed under the BSD 3-Clause License. See the LICENSE file for details.
Metadata
Release files for nitro-cli 1.0.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nitro_cli-1.0.17.tar.gz | 77.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nitro_cli-1.0.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 150.6 kB
Release files / nitro_cli-1.0.17.tar.gz
| Download URL | nitro_cli-1.0.17.tar.gz |
|---|---|
| Size | 77.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe8b435a3f3dbfe712b613d3c022cb64262aa8cd2ad03de47585115b06ba2098
|
|
BLAKE2b-256 checksum How to use checksums |
e1269951091d63c604bcb07d8cbf49dbaaf43bbe13a86e442de0a11b675f81cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nitro_cli-1.0.17-py3-none-any.whl
| Download URL | nitro_cli-1.0.17-py3-none-any.whl |
|---|---|
| Size | 72.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9fe67f2469cb69e120491f057a37dabd8e04662ebd98a71ccde42c50c53cff14
|
|
BLAKE2b-256 checksum How to use checksums |
25eaaa007f70c9f1266326c7a6ecdad521cc5edd552b2285c9b45171792e9eb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|