Skip to main content

Evidence-backed, privacy-safe AI collaboration cards for GitHub profiles, generated locally from explicit Git provenance.

Project description

ai-profile - prove your AI collaboration, privately

ai-profile

PyPI tests license: MIT python 3.11–3.14

English · 繁體中文

Show how you collaborate with AI—not just how often you commit. aiprofile turns explicit AI provenance in your local Git history into evidence-backed, privacy-safe SVG cards for your GitHub Profile README.

Use it when you want a credible AI portfolio without uploading source code, guessing attribution from coding style, or exposing repository identities. It recognizes AI-* commit trailers and verified AI co-author identities, aggregates activity across repositories, and keeps its database on your machine.

It is not an AI code detector. Commits without explicit evidence remain unknown; they are never guessed to be human or assigned to a provider.

  • Credible: every AI attribution comes from explicit Git evidence.
  • Private by default: repository identities stay hidden, and daily dates appear only when you explicitly publish them.
  • Profile-ready: one local workflow produces light and dark summary, heatmap, and badge assets.

Preview

Sample AI collaboration summary card rendered from synthetic data Sample collaboration heatmap: intensity is total commits and hue is the day's AI share AI-assisted share badge verified from Git provenance

These samples use synthetic data.

Install

Requires Python 3.11–3.14 and Git 2.17 or newer. Windows, macOS, and Linux are supported. Git repositories must use the SHA-1 object format.

pip install ai-profile-cli

The package name is ai-profile-cli; the installed command is aiprofile.

Quickstart

Run these commands from the root of one of your repositories:

aiprofile init
aiprofile scan .
aiprofile aggregate
aiprofile render
  • init creates the local configuration and seeds your identity from git config user.email.
  • scan records commits authored by your configured identities.
  • aggregate shows the exact privacy-safe statistics that can be published.
  • render writes six SVG files and profile.json to dist/.

Only commits authored by identities in ~/.aiprofile/config.json count. Review the email seeded by init and add any other addresses you commit with.

Scan additional repositories at any time:

aiprofile scan /path/to/another/repository

Repositories default to aggregate_only: their counts contribute to the summary, but their identity and daily dates stay private. --full marks that repository's aggregate activity as explicitly publishable so its dates can appear in date-based views. This is a policy choice, not a claim about the repository's GitHub visibility:

aiprofile scan --full /path/to/repository

That choice persists. Scanning the same repository later without --full does not downgrade it. To stop publishing its dates, change its publication_level in ~/.aiprofile/config.json to aggregate_only (keep identity-redacted aggregate totals) or excluded (omit it), then run aggregate and render again.

Only run one render at a time for a given output directory.

Add the cards to your GitHub profile

Render inside your GitHub profile repository (USERNAME/USERNAME), then commit the generated dist/ directory. Add this to its README:

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="dist/summary-dark.svg">
  <img alt="AI collaboration summary" src="dist/summary-light.svg">
</picture>

Use heatmap-{light,dark}.svg or badge-{light,dark}.svg in the same pattern. To refresh your cards, run scan again, run render, and commit the updated files.

Declare AI participation

Known AI co-author identities are recognized automatically. For other tools, or when you want richer attribution, add an AI-* trailer block to the commit message:

feat: add aggregation service

AI-Provider: Anthropic
AI-Model: Claude-Sonnet
AI-Tool: Claude-Code
AI-Role: implementation, documentation
AI-Mode: AI-Assisted
AI-Reviewed-By: Human

Repeat the AI-Provider: key to declare another AI actor in the same commit. One commit can therefore equal one unique AI-attributed commit and multiple actor presences. Use AI-Mode: Human-Only only for an explicitly human-only commit.

Privacy

  • No repository data is uploaded. The CLI makes no network calls and sends no telemetry.
  • New repositories default to aggregate_only. Use scan --full as an explicit publication decision, or set a repository to excluded in ~/.aiprofile/config.json.
  • Public assets contain aggregate counts, public provider names, evidence totals, and dates. They never contain repository names or paths, organization names, branches, commit SHAs or messages, raw trailers, or email addresses.
  • aiprofile aggregate is the publication preview. Review it before committing generated assets.
  • Aggregate-only output is identity redaction, not anonymity. Repeated publication can reveal when totals changed. See the full privacy model.
  • Do not publish or sync ~/.aiprofile; it contains private repository paths, identities, and a local salt.

Metrics

  • AI-attributed commits are unique commits with at least one explicit AI actor presence.
  • Actor presences count distinct provider/tool participation within a commit. Provider totals can therefore exceed unique commit totals.
  • Unknown stays separate from human.
  • Evidence quality is reported as verified > declared > imported > inferred > unknown.

Help and support

Run aiprofile --help or aiprofile COMMAND --help for command options. Use GitHub Issues for bugs and feature requests. Report vulnerabilities through the security policy.

Contributing and license

Contributions are welcome; see CONTRIBUTING.md. Licensed under the MIT License.

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

ai_profile_cli-0.3.1.tar.gz (406.4 kB view details)

Uploaded Source

Built Distribution

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

ai_profile_cli-0.3.1-py3-none-any.whl (102.2 kB view details)

Uploaded Python 3

File details

Details for the file ai_profile_cli-0.3.1.tar.gz.

File metadata

  • Download URL: ai_profile_cli-0.3.1.tar.gz
  • Upload date:
  • Size: 406.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ai_profile_cli-0.3.1.tar.gz
Algorithm Hash digest
SHA256 8e0483f41577dba636730da1a0f42200a848e46fec45328e9f57b09ecd9f947d
MD5 a0af7b7ba850888f47d8e9f527e4d65b
BLAKE2b-256 13f304e517e52b009a3053ba77c54e40796adb3231f389d5ef3257227147ae07

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_profile_cli-0.3.1.tar.gz:

Publisher: publish.yml on WenyuChiou/ai-profile

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

File details

Details for the file ai_profile_cli-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: ai_profile_cli-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 102.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ai_profile_cli-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a08dfa40b087088e2afe3f91c3d26695985d8de565718b06094b4fdd40780aaf
MD5 c344b8443ddbd49a0918f3a09974cb91
BLAKE2b-256 32106c2db9e54b54ad31c80346630547502215ebec728075bbabb8869035bbb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ai_profile_cli-0.3.1-py3-none-any.whl:

Publisher: publish.yml on WenyuChiou/ai-profile

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