taskcluster
Python client for Taskcluster
What it is and what it does
Taskcluster is a Python client library that wraps the Taskcluster API, a distributed task execution and scheduling platform. It provides both synchronous (taskcluster.*) and asynchronous (taskcluster.aio.*) client classes for each Taskcluster service—Queue, Auth, Index, Secrets, and others—allowing you to create tasks, manage credentials, and interact with the platform programmatically.
The library handles authentication via Hawk protocol (through the mohawk dependency), credential generation and temporary credential creation, timestamp handling for task expiration and deadlines, and URL generation for both public and signed API endpoints. It reads standard Taskcluster environment variables automatically and supports scoped authorization, making it suitable for both standalone scripts and tasks running within a Taskcluster deployment.
Use it for:
- Submitting and monitoring tasks to a Taskcluster queue from a CI/CD pipeline or build orchestration system.
- Generating temporary credentials with limited scopes for third-party services or delegated task execution.
- Building task scheduling and workflow automation tools that interact with Taskcluster's task graph and queue APIs.
- Querying task history, logs, and status from the Index and Queue services in monitoring or reporting applications.
- Creating signed URLs for secure API access without embedding long-lived credentials in client code.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A complete Python client library for Taskcluster that provides both synchronous and asynchronous interfaces to all Taskcluster API methods, including authentication, credential generation, and URL building.
Yes. The package is actively maintained, has no known vulnerabilities, supports current Python versions (3.9–3.14), and is widely used (top 5000 PyPI). The MPL-2.0 copyleft license is standard for Mozilla projects and poses no barrier to internal or open-source use. Install it if you need to interact with a Taskcluster deployment from Python.
Install
taskcluster on PyPI
pip
pip install taskclusteruv
uv add taskclusterpoetry
poetry add taskclusterInstalling taskcluster
Before you install
Low install friction with a pure-Python wheel distribution. The package is actively maintained with a recent release and no known vulnerabilities. It depends on common, well-established libraries like aiohttp, requests, and python-dateutil.
License in practice
Licensed under MPL-2.0 (copyleft). You must disclose source code modifications and distribute under the same license if you modify and redistribute the package, though internal use does not trigger these obligations.
Quickstart
import taskcluster
# Create a client with environment-based configuration
queue = taskcluster.Queue(taskcluster.optionsFromEnvironment())
# Or with explicit credentials
index = taskcluster.Index({
"rootUrl": "https://tc.example.com",
"credentials": {"clientId": "id", "accessToken": "token"}
})
# For async usage
import taskcluster.aio
queue_async = taskcluster.aio.Queue(taskcluster.optionsFromEnvironment())
Requires Python 3.9 or later. Taskcluster deployment URL (rootUrl) is required; credentials are optional depending on API method authentication requirements.
Verify before relying
- Whether the library handles automatic credential refresh or expiration management for long-running applications.
- Performance characteristics and rate-limiting behavior when making high-volume API requests.
- Compatibility and behavior differences between sync and async variants beyond the calling convention.
Package facts
| License | MPL-2.0 (copyleft) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — aiohttp, async-timeout, mohawk, python-dateutil, requests, slugid, taskcluster-urls |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 987,895/month — #4,570 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: taskcluster-105.0.0-py3-none-any.whl
Keywords: api, client, taskcluster
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
taskcluster-urlsGenerates standardized URLs for Taskcluster…
copyleft · top 5,000 on PyPI
taskcluster-taskgraphTaskgraph generates and submits task graphs to…
copyleft · top 5,000 on PyPI
gcloud-aio-taskqueueAsyncio and threadsafe Python client library…
permissive · top 15,000 on PyPI
gcloud-aio-authProvides asyncio-compatible and threadsafe…
permissive · top 1,000 on PyPI
gcloud-rest-taskqueueAsyncio and threadsafe Python client for Google…
permissive · top 15,000 on PyPI
gcloud-rest-authProvides Python client libraries for Google…
permissive · top 15,000 on PyPI
aa-taskmonitorA Django admin plugin for Alliance Auth that…
permissive · top 15,000 on PyPI
janusProvides a thread-safe queue with both…
permissive · top 5,000 on PyPI
taskiqTaskiq is an asynchronous distributed task…
permissive · top 5,000 on PyPI
celeryCelery is a distributed task queue that lets…
permissive · top 1,000 on PyPI