charm-tools

Install command:
brew install charm-tools

Tools for authoring and maintaining juju charms

https://github.com/juju/charm-tools

License: GPL-3.0-only

Development: Pull requests

Formula JSON API: /api/formula/charm-tools.json

Formula code: charm-tools.rb on GitHub

Bottle (binary package) installation support provided for:

macOS on
Apple Silicon
golden gate ✅
tahoe ✅
sequoia ✅
Linux ARM64 ✅
x86_64 ✅

Current versions:

stable ✅ 3.0.9

Revision: 1

Depends on:

certifi 2026.10.23 Mozilla CA bundle for Python
charm 2.5.2 Tool for managing Juju Charms
cryptography 50.0.2 Cryptographic recipes and primitives for Python
libyaml 0.2.5 YAML Parser
python@3.15 3.15.2 Interpreted, interactive, object-oriented programming language

Binaries: charm-build, charm-create, charm-help, charm-layers, charm-proof, charm-pull-source, charm-version

Analytics:

30 days90 days365 days
Installs1440276
Installs on Request1440276
Build Errors0

Known vulnerabilities in the current version:

PYSEC-2026-4013 (high) virtualenv bash and fish activation scripts execute commands embedded in paths
GHSA-94p9-xgh2-xp45 virtualenv: Downloaded seed wheels (pip/setuptools) are not integrity-checked before use
GHSA-9h9j-4vrj-gf7g virtualenv writes prompt values into pyvenv.cfg without sanitizing line boundaries, allowing conf...
GHSA-6627-m3xw-93mp (medium) filelock: StrictSoftFileLock creates its claim directories without the lock mode, so another loca...
GHSA-69hj-f68j-2879 (medium) filelock: UnixFileLock truncates and chmods any regular file another user renames or hard-links o...
GHSA-9c4x-gm8v-wgc4 (medium) filelock: StrictSoftFileLock and SoftReadWriteLock adopt a protocol directory another user create...
GHSA-9j6q-wvj5-jgjg (low) filelock: Symlink swap during SoftFileLock's writability check leaks whether a path exists and is...
GHSA-cwqr-hh33-gh44 (medium) filelock ReadWriteLock: a crafted lock database makes every acquire stall or hang regardless of t...
GHSA-fq56-3cx3-fjxp (medium) filelock: SoftFileLock stale-lock break removes a live lock file on a reused inode number and adm...
GHSA-j8f7-rjxc-mr56 (medium) filelock: ReadWriteLock follows a symlink at the lock path into SQLite
GHSA-m462-7rxw-wvpg (medium) filelock: StrictSoftFileLock follows a symbolic link swapped in at <path>.filelock and creates cl...
GHSA-rfpc-qcw5-3pc4 (medium) filelock: SoftFileLock removes a live holder's marker when another user forges the PID in a writa...
GHSA-v4x8-3wr5-3wq8 (high) filelock ReadWriteLock: SQLite reopens the lock database by name, so a planted symlink or journal...
GHSA-qmx5-4p3x-wvqf virtualenv: Venv configuration readback can reinterpret path boundaries
GHSA-cw65-gx24-rc82 (medium) virtualenv: Builtin creation follows linked environment directories
GHSA-cx28-75q4-x26q virtualenv: Pip seeding with download omits wheel digest verification
GHSA-hhxq-47xx-j5xx (medium) virtualenv: Seed replacement does not contain metadata deletion paths
GHSA-fc2g-4w5p-6whm virtualenv: Seeded files retain permissions from an older cache
GHSA-558c-9hv2-4prj (medium) virtualenv: Generated files can follow existing destination links
GHSA-c978-59m8-c77v (high) virtualenv: Generated POSIX console launchers interpret destination paths as shell syntax
GHSA-6w3r-xr62-4xcp virtualenv: Bash prompt values can change meaning under older compatibility modes
GHSA-vxj4-q4g9-crj7 (high) virtualenv bash activate runs commands from an environment name with a backslash before $
GHSA-5vjq-rrrf-7h2q (high) virtualenv activate runs commands from the environment name in zsh with PROMPT_SUBST
GHSA-c947-3pg5-gm8q (high) virtualenv activate.fish runs commands from a path or prompt with a backslash before a quote
GHSA-8rjx-v5ww-45pp (high) virtualenv activation scripts run code from a path that contains a placeholder name
GHSA-h35f-9h28-mq5c (medium) setuptools: MANIFEST.in exclusion bypass in sdist via Unicode normalization collision (NFC/NFD) o...
GHSA-xmj3-9gf7-h52w setuptools: Windows path escape via namespace_packages.txt during legacy wheel installation Desc...

Data from Homebrew/advisory-database. Run brew vulns charm-tools for a live check.