billbird-client
Python client, CLI, and MCP server for Billbird's REST API.
Standalone. No Gitsweeper, no opinion about analytics — just a focused tool for reading time-tracking data out of one Billbird instance over its bearer-token API.
Install
uv add billbird-client # in a uv-managed project
# or
pip install billbird-client
Configure
export BILLBIRD_API_URL=https://billbird.example.com
export BILLBIRD_API_TOKEN=bb_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Generate the token in Billbird's admin panel under API tokens. See Billbird's docs for the lifecycle.
CLI
billbird-cli hours --period last-7d --group-by user
billbird-cli hours --period 2026-05 --group-by client
billbird-cli pva --status over # plan-vs-actual outliers
billbird-cli recent --since 2026-05-20T00:00:00Z
Every command takes --json for machine-readable output. See docs/cli.md for the full reference.
MCP server
For AI clients (Claude Desktop and similar):
billbird-mcp
The server speaks JSON-RPC over stdio. Tools exposed:
billbird_hours_summary(period, group_by, repo?, client?, user?)billbird_plan_vs_actual(period?, status?, repo?, client?)billbird_recent_activity(since, limit?)billbird_cycle_time(period?, repo?)— stub until Billbird exposes the endpoint
See docs/mcp.md for Claude Desktop configuration and the read-only contract.
Library
For programmatic use:
from billbird_client import BillbirdClient
with BillbirdClient.from_env() as client:
entries = client.time_entries(repository="org/repo")
plans = client.plans(status="active")
pva = client.plan_vs_actual("org", "repo", 42)
Scope
This package is read-only. Writes happen in GitHub via slash commands (/log, /plan, etc.) and land in Billbird through its webhook. There is no billbird-cli log 2h — that would be a separate command path with separate security implications, and slash commands already work everywhere gh works.
This package has no dependency on Gitsweeper. Gitsweeper may consume this package for cross-source analytics (e.g. reconciling commit Time: footers against /log entries), but Billbird and billbird-client work fine without it.
License
MIT.
Metadata
Release files for billbird-client 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| billbird_client-0.1.0.tar.gz | 67.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| billbird_client-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 85.3 kB
Release files / billbird_client-0.1.0.tar.gz
| Download URL | billbird_client-0.1.0.tar.gz |
|---|---|
| Size | 67.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
134f52437541f39ae528f668260e085e9bef93efc1354635f77eb205e1a538b2
|
|
BLAKE2b-256 checksum How to use checksums |
d16d9ba65d9e4d33b7ea10f5e757ce8799ab994d88fede1b80b13ebe9ac591df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 22, 2026.
Transparency logRelease files / billbird_client-0.1.0-py3-none-any.whl
| Download URL | billbird_client-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a01cc2e4458a76c5c38f6f04f7fa3726f5a8f4d5c86f74c0d5a5351c4d8234b3
|
|
BLAKE2b-256 checksum How to use checksums |
605701512a607366c4d96175bac11a3359cc4cd2f6d8d612509b9ba397cc9512
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 22, 2026.
Transparency log