Charmcraft

Charmcraft is a tool designed to simplify the creation, building, and sharing of a Juju charm.

When you initialise a charm with Charmcraft, you automatically get all the crucial project files, pre-populated with helpful template content. These files are such that they can be packed right away; however, to make them meaningul for the application you are charming, you’ll want to customise the YAML and ops-powered Python in these files. For certain types of applications (Django, FastAPI, Flask, Go), if you initialise with a suitable Charmcraft extension, things are even easier – just tweak a few values in the YAML and you get a fully functioning charm. Either way, once you’re pleased with what you’ve got, you can again use Charmcraft to publish your charm on Charmhub.

You can create, build, and share a charm any way you want, but with Charmcraft you get state-of-the-art results in record time.

If you’re a charm author, you must use Charmcraft!

In this documentation

Tutorial

Start here: a hands-on introduction to Example Product for new users

Tutorial
How-to guides

Step-by-step guides covering key operations and common tasks

How-to guides
Reference

Technical information - specifications, APIs, architecture

Reference

Project and community

Charmcraft is a member of the Canonical family. It’s an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.

Indices and tables