acme
ACME protocol implementation in Python
Decision gist · record as of 2026-08-14
Yes. This is a production-stable (Development Status 5), actively maintained package with no known vulnerabilities, low install friction, and permissive licensing. Install it if you need to automate certificate provisioning from Let's Encrypt or other ACME services, either as part of Certbot or as a library for custom certificate management workflows. The only caveat is that it requires Python 3.10+ and is designed for server-side use, not client machines.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Typically run on a web server with direct access to domain control; not designed for personal computers or hosted environments without certificate upload capability.
- Low friction installation with a pure-Python wheel.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing use in commercial and private projects with minimal restrictions beyond attribution and liability disclaimers.
last release 2026-07-15 (30 days) · last repo commit 2026-08-12 · 33,201 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 6,392,096 downloads/mo, #1,917 on PyPI
Alternatives
Verify before relying
pip install acme
from acme import client
from acme import messages
# Instantiate a client and interact with an ACME server
my_client = client.ClientV2(directory_url, net=net_obj)- Whether the package is suitable for programmatic use in applications versus command-line-only operation (description emphasizes Certbot CLI tool).
- Specific ACME server compatibility beyond Let's Encrypt (description mentions 'other ACME compliant services' but does not detail which ones).
- Whether certificate installation/deployment is handled by this package or delegated to separate plugins.
What it is and what it does
ACME is a Python implementation of the ACME protocol (RFC 8555), the standard used by Let's Encrypt and other certificate authorities to automate the issuance and renewal of TLS certificates. It handles the cryptographic handshake and domain validation flow required to prove control of a domain and obtain a certificate from an ACME-compliant CA.
The package is primarily used as the backend for Certbot, the EFF's command-line tool, but can also be imported and used programmatically by applications that need to automate certificate provisioning. It manages the full lifecycle of certificate requests, including challenge responses, certificate retrieval, and revocation. It depends on cryptography for cryptographic operations, PyOpenSSL for certificate handling, requests for HTTP communication, and josepy and pyrfc3339 for ACME-specific protocol details.
Use it for
- Automate TLS certificate provisioning and renewal for web servers without manual intervention.
- Build custom certificate management tools that integrate with Let's Encrypt or other ACME CAs.
- Implement domain validation workflows in applications that need to prove control of domains.
- Revoke or manage certificates programmatically as part of infrastructure automation.
- Support multi-domain and wildcard certificate issuance through ACME challenge automation.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
This is a production-stable (Development Status 5), actively maintained package with no known vulnerabilities, low install friction, and permissive licensing. Install it if you need to automate certificate provisioning from Let's Encrypt or other ACME services, either as part of Certbot or as a library for custom certificate management workflows. The only caveat is that it requires Python 3.10+ and is designed for server-side use, not client machines.
Install
acme on PyPI
Before you install
Low friction installation with a pure-Python wheel. Actively maintained with a release within 30 days and last commit on 2026-08-12. Depends on five well-established runtime packages: cryptography, josepy, PyOpenSSL, pyrfc3339, and requests.
Requires Python 3.10 or later. Typically run on a web server with direct access to domain control; not designed for personal computers or hosted environments without certificate upload capability.
License in practice
Licensed under Apache-2.0 (permissive), allowing use in commercial and private projects with minimal restrictions beyond attribution and liability disclaimers.
Quickstart
pip install acme
from acme import client
from acme import messages
# Instantiate a client and interact with an ACME server
my_client = client.ClientV2(directory_url, net=net_obj)
Verify before relying
- Whether the package is suitable for programmatic use in applications versus command-line-only operation (description emphasizes Certbot CLI tool).
- Specific ACME server compatibility beyond Let's Encrypt (description mentions 'other ACME compliant services' but does not detail which ones).
- Whether certificate installation/deployment is handled by this package or delegated to separate plugins.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagescryptographyjosepyPyOpenSSLpyrfc3339requests |
| Maintenance | Actively maintained 30 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 6,392,096 / month, #1,917 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Internet :: WWW/HTTPTopic :: Security |
Evidence: acme-5.7.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “ACME protocol client”
- acmeImplements the ACME protocol to automate certificate provisioning and…
- certbotCertbot is a command-line client that automatically obtains TLS…
- certbot-dns-multiA Certbot DNS plugin that automates ACME DNS challenges across 117+…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also certbot · certbot-dns-cloudflare · certbot-nginx · certbot-dns-route53 · certbot-dns-directadmin · certbot-dns-multi · trustme · pem · aws-cdk.aws-certificatemanager · certbot-dns-duckdns