Skip to main content
Protostar Logo

PyPI Version CI Release Codecov Python Documentation License


Simple Python project scaffolding that understands your tools


| Get Started | Docs | Why Protostar? | Design Principles | Authoring Templates | Troubleshooting |

Pick your tools, and Protostar writes their configuration, hooks, and CI. When your template improves, updates merge into your files by meaning, so your edits stay.

Protostar init interactive demo

Why Protostar?

Already know Cookiecutter or Copier? The detailed comparison runs the same template and the same update through both tools and compares them in more depth.

Plenty of tools can create a Python project. What sets Protostar apart is that it understands the tools it sets up and the files they live in, and that keeps everything simple:

  • Say what you want, not how to build it. A template is a short list of the tools you want and the packages you need. Protostar writes every configuration file, commit hook, and CI step those tools require.

  • Every tool is a switch. Want Docker but not direnv? Pass --docker --no-direnv. Change your mind a year later, and Protostar adds or removes that tool's setup cleanly.

  • Updates that understand your files. When a template improves, Protostar merges the change into your project by meaning, not line by line. Your own edits stay, and if you and the update changed the same setting, you get one clear choice instead of a mess to untangle.

  • Nothing breaks halfway. Protostar shows you every change before making it, and undoes everything if a step fails.

  • Fits the project you already have, and runs from scripts, CI, and coding agents without stopping to ask questions.

In a terminal, protostar sync shows each conflict with both sides before anything is applied:

Protostar sync resolving conflicts

Protostar is Python-only and builds on uv. It's young, and it grows with the people using it: feature requests shape what comes next.


Get Started

Install Protostar with uv on any platform:

uv tool install protostar

Or with Homebrew on macOS:

brew install jacksonfergusondev/tap/protostar

Protostar needs uv and git. Homebrew installs both for you, and the installation guide covers every platform.

Then make a folder for your project and run protostar init inside it:

mkdir my-project
cd my-project
protostar init

Choose a template and the tools you want, look over a preview of every file it will create, and apply. When it's done, protostar guide shows how to run, test, and check the project. New to Python projects? Your First Project walks through every step.


Start From a Template

Each built-in template is a project shape. Pick one, then switch its tools on or off:

Template For
cli A command-line app, with Typer and Rich
api A web API, with FastAPI
lib A library other people install from PyPI
ml Machine learning and data science, with PyTorch and Jupyter
astro Astronomy and astrophysics data analysis, with Astropy

Every built-in template comes in two tiers. Workbench keeps the tooling light, for exploring and analysis. Production adds the full quality gate for something you'll publish: type checking, tests, commit hooks, CI, and releases. A project can move up whenever it's ready:

protostar sync --tier production

What It Can Set Up

Area Tools
Code quality Ruff, plus a type checker: mypy, ty, or Pyrefly
Tests pytest, with coverage reports on Codecov
Commit checks pre-commit or prek hooks, and Commitizen for commit messages
Automation GitHub Actions CI, releases to PyPI, and Renovate for dependency updates
Documentation Zensical sites, and publishing on Read the Docs
Everyday work just for short commands, direnv for environments, and Docker images
Collaboration An AGENTS.md for coding assistants, and contributing guides and issue forms
Markdown rumdl or markdownlint

The tooling matrix lists every tool, its flag, and the files it writes.


Everyday Commands

Command What it does
protostar init Set up a new project, or bring Protostar into one you already have
protostar status Show what an update would change, and anything waiting for your decision
protostar sync Apply updates from your template and from Protostar, keeping your edits
protostar guide Show how to run, test, check, and document this project
protostar eject Stop tracking the project, and keep every file

Make Your Own Template

A template is a short TOML file. This one gives every new service a team's tools, with stricter type checking than the default:

name = "Service"
description = "Our team's FastAPI service"

dependencies = ["fastapi", "uvicorn"]

ruff = true
mypy = true
pytest = true
ci = true

[dev.pyproject.strict_typing]
requires = "mypy"
content = '''
[tool.mypy]
strict = true
'''

Share it as a file, a URL, or a Git repository, and start projects from it:

protostar init --from https://github.com/your-org/service-template

Tag its releases, and every project made from it can move to the newest one with protostar sync --to latest. The authoring guide covers starter files, options, tiers, and checking a template in CI.

To see it all working, protostar-example-templates holds two templates, a one-file one and a fuller service, and protostar-example-project was made from one. When the template tagged a new release, a scheduled workflow in the project opened this update pull request on its own.


Go Deeper

Written for people who already know Python tooling:

If you want to Read
Compare Protostar with Copier, Cookiecutter, and uv init Why Protostar?
Review and settle updates in a project Project Lifecycle
Open update pull requests and check projects in CI Automating Updates
Drive Protostar from scripts or coding agents Agent & Machine Interface
Write and publish templates for a team Authoring Templates
Look up every command and flag CLI Reference
See how planning, merging, and rollback work Design Principles

How It's Built

Protostar edits other people's work, so it's built to be careful:

  • It plans before it acts. Every change is worked out in memory and shown to you first. If a step fails or you press Ctrl+C, every file it wrote is restored exactly as it was.
  • The engine is separate from the interface. The same core runs behind the interactive editor, the command line, and coding agents, which is why every command can also answer in JSON.
  • It's tested thoroughly. Over 3,500 tests, including runs of the real tools, pass on Linux, macOS, and Windows, with strict type checking and at least 85% coverage.
  • Its docs are checked against its code. Before every push, a script confirms that the commands, errors, exit codes, and file paths the docs mention still match the code.
  • Performance stays visible. CI tracks help-command startup and the recipe editor's first frame, flagging large regressions; see the CI performance history.

Contributing

Bug reports and feature requests are welcome in GitHub issues. To work on Protostar itself, start with CONTRIBUTING.md and the developer guide.


Contact

GitHub LinkedIn Email


License

This project is licensed under the MIT License. See the LICENSE file for details.

Metadata

Release files for protostar 0.10.2

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

Source distribution (sdist)

Source distribution for protostar 0.10.2
File Size Uploaded
protostar-0.10.2.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for protostar 0.10.2
File Interpreter ABI Platform
protostar-0.10.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / protostar-0.10.2.tar.gz

Download URL protostar-0.10.2.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
ca004855ee58acc67751c1f2b91ce4d171497c7688f6596ad3823c2e3daaacb5
BLAKE2b-256 checksum
How to use checksums
14ebba89bd736992eb9334b6a6bd501095458247821c3c2bf29048ebdac1e93d
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 2, 2026.

Transparency log

Release files / protostar-0.10.2-py3-none-any.whl

Download URL protostar-0.10.2-py3-none-any.whl
Size 479.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
889e51f20b020bcfa22a5d40bf049f9129bfd878d1c0d6960ea391c20a8141ca
BLAKE2b-256 checksum
How to use checksums
81d301ca397f374a5d0764b8c7e9a27ab291488b47033f65474b49dec43bc1fd
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 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.10.2 This release

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

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