Charmcraft

Charmcraft is the command-line tool for initializing, packaging, and publishing Juju charms.

When initializing a project, Charmcraft generates all the necessary files, which can be further catered to an application by modifying the YAML and Ops-powered Python in the pre-populated template content. For Django, FastAPI, Flask, and Go applications, Charmcraft’s extensions simplify this process further by only requiring minor YAML changes after initialization. With just a few simple commands, charm authors can then use Charmcraft to package a charm and publish it to Charmhub.

Charmcraft simplifies every step of the charming process, enabling charm authors to bypass boilerplate steps and focus on the contents of their charms. Additionally, Charmcraft’s integration with tools and platforms such as Ops and Charmhub provides charm authors with a complete charm development experience.

Charmcraft offers an efficient and straightforward way for anyone to charm an application for their Juju deployment, regardless of that application’s complexity or scope.

In this documentation

Tutorial

Get started - a hands-on introduction to Charmcraft for new users

Tutorial
How-to guides

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

How-to guides
Reference

Technical information, including commands, extensions, and project files

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.