Skip to main content

Python client + CLI + MCP server for Billbird's REST API.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

billbird_client-0.1.0.tar.gz (67.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

billbird_client-0.1.0-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file billbird_client-0.1.0.tar.gz.

File metadata

  • Download URL: billbird_client-0.1.0.tar.gz
  • Upload date:
  • Size: 67.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for billbird_client-0.1.0.tar.gz
Algorithm Hash digest
SHA256 134f52437541f39ae528f668260e085e9bef93efc1354635f77eb205e1a538b2
MD5 a18fc695874bd7dc28a79392a266046c
BLAKE2b-256 d16d9ba65d9e4d33b7ea10f5e757ce8799ab994d88fede1b80b13ebe9ac591df

See more details on using hashes here.

Provenance

The following attestation bundles were made for billbird_client-0.1.0.tar.gz:

Publisher: release.yml on MWest2020/billbird-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file billbird_client-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: billbird_client-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for billbird_client-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a01cc2e4458a76c5c38f6f04f7fa3726f5a8f4d5c86f74c0d5a5351c4d8234b3
MD5 07484b43d7f2f2bec7235ed2f3934b90
BLAKE2b-256 605701512a607366c4d96175bac11a3359cc4cd2f6d8d612509b9ba397cc9512

See more details on using hashes here.

Provenance

The following attestation bundles were made for billbird_client-0.1.0-py3-none-any.whl:

Publisher: release.yml on MWest2020/billbird-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page