Skip to main content

RepoPulse

CI CodeQL PyPI version Python License: MIT

pip install repopulse-cli
repopulse scan .

RepoPulse is a Python CLI that scans GitHub repositories (or a local folder) and produces a practical health report: score out of 100, pass/warn/fail checks, and actionable recommendations.

It is built for developers who want a quick quality review from the terminal, and for maintainers who want a small tool in CI, release prep, or issue triage.

Scope (read this)

  • Heuristics are content-light (file names + a few key file bodies). Not a full linter or secret scanner.
  • Best signal today: Python and JavaScript/TypeScript open-source layouts.
  • Other ecosystems and large monorepos may score lower even when healthy — treat the score as a prompt, not a verdict.
  • Details: docs/checks.md, docs/dogfood.md.
Name
Install from PyPI repopulse-cli
CLI command repopulse
Python import repopulse

Important: Do not run pip install repopulse. That installs an unrelated package on PyPI. Always use repopulse-cli.

Install (for users)

pip install repopulse-cli
repopulse --help

Upgrade:

pip install -U repopulse-cli

Optional isolated environment (recommended if other tools pin different dependency versions):

python -m venv .venv
# Windows PowerShell:
.\.venv\Scripts\Activate.ps1
# macOS / Linux:
# source .venv/bin/activate
pip install repopulse-cli

From a GitHub Release wheel (if you prefer not to use PyPI):

pip install https://github.com/3ssiri/RepoPulse/releases/download/v0.3.5/repopulse_cli-0.3.5-py3-none-any.whl

Full install notes: INSTALLATION.md.

Quick start

# Local directory (offline — no GitHub API)
repopulse scan .

# Public GitHub repository
repopulse scan https://github.com/psf/requests

# Specific branch or tag (no local checkout)
repopulse scan https://github.com/psf/requests/tree/main
repopulse scan https://github.com/psf/requests --ref v2.32.0

# CI gate
repopulse scan https://github.com/username/repository --fail-under 75 --format summary --quiet

# Compare two refs or checkouts
repopulse compare \
  https://github.com/owner/repo/tree/main \
  https://github.com/owner/repo/tree/feature/pr-42 \
  --fail-on-regression

# Preview GitHub issues from fail/warn checks
repopulse create-issues https://github.com/owner/repo --dry-run

Private repos: pass --token or set GITHUB_TOKEN. Details: USAGE.md.

Features (current)

Scanning

  • Scan public GitHub repositories by URL.
  • Scan a local directory offline: repopulse scan . (no API, no rate limits).
  • Scan a specific branch, tag, or commit via URL (/tree/<ref>, /releases/tag/<tag>) or --ref.
  • Scan private repositories with --token or GITHUB_TOKEN.
  • Shared check pipeline for remote and local sources.

Reports and output

  • Score out of 100 with grades (Excellent → Critical).
  • Rich terminal table (default).
  • Formats: table, summary, markdown, json, issues.
  • Export Markdown (--export) and write any format to a file (--output).
  • Stable JSON contract (schema_version 1.0) — see docs/json-schema.md.
  • Richer Markdown: pass/warn/fail counts, attention sections, applied config.

Compare

  • repopulse compare <baseline> <target> — local paths and/or GitHub URLs.
  • Per-side refs: tree URLs or --baseline-ref / --target-ref.
  • Formats: table, markdown, json, summary.
  • CI gate: --fail-on-regression (exit code 2 if score drops or any check regresses).

Issues and automation

  • --format issues — paste-ready Markdown for fail/warn checks.
  • repopulse create-issues — open real GitHub issues (--dry-run or --yes).
  • CI example: examples/github-action-repopulse.yml.
  • Optional config .repopulse.yml with profiles: strict, library, docs, release.

Safety

  • Detects common sensitive file names (.env, keys, credentials) without printing file contents.
  • Advisory dependency and security baseline checks (recommendations; do not change the 100-point score by default).

Commands

Command Purpose
repopulse scan <url-or-path> Health report for one repository or folder.
repopulse compare <baseline> <target> Diff two health reports.
repopulse create-issues <url-or-path> Create GitHub issues from fail/warn checks.

Configuration

RepoPulse reads .repopulse.yml from the current directory when present, or via --config:

repopulse scan . --config examples/repopulse.yml
profile: release   # optional: strict | library | docs | release
fail_under: 90
disabled_checks:
  - activity
weights:
  tests: 25
  github_actions: 20

Ready-made profiles: examples/profiles/.

Scoring (default weights)

Check Points
README Quality 20
License 10
.gitignore 10
Tests 15
GitHub Actions 15
Recent Activity 10
Sensitive Files 10
Project Structure 5
Package Scripts 5
Score Grade
90–100 Excellent
75–89 Good
60–74 Fair
40–59 Weak
0–39 Critical

Dependency and security baseline checks are advisory: they add recommendations without changing the scored total.

Full check reference: docs/checks.md.

Example output

RepoPulse Health Report for psf/requests
Score: 91 / 100 - Excellent

Checks
README Quality      PASS   16/20
License             PASS   10/10
.gitignore          PASS   10/10
Tests               WARN   12/15
GitHub Actions      PASS   15/15

Install for contributors / from source

git clone https://github.com/3ssiri/RepoPulse.git
cd RepoPulse
pip install -e ".[dev]"
pytest

See CONTRIBUTING.md and INSTALLATION.md.

Documentation

Doc Contents
INSTALLATION.md PyPI, wheel, source, tokens, troubleshooting
USAGE.md All commands, flags, CI, config, exit codes
REQUIREMENTS.md Runtime and dev dependencies
docs/checks.md What each check evaluates
docs/json-schema.md JSON report contract
docs/PUBLISHING.md Releases and PyPI publishing (maintainers)
docs/roadmap.md Product roadmap
docs/dogfood.md Real-repo score snapshots
ARCHITECTURE.md How the code is structured
CHANGELOG.md Version history
README.ar.md Arabic summary
README.es-ES.md Spanish summary

Requirements

  • Python 3.11+
  • Network access to api.github.com for remote scans
  • GitHub token for private repos, higher rate limits, or create-issues --yes

Contributing

Contributions are welcome — especially false-positive reports from real repos, small check improvements, and docs.

git clone https://github.com/3ssiri/RepoPulse.git
cd RepoPulse
pip install -e ".[dev]"
pytest
ruff check .

See CONTRIBUTING.md for check guidelines and how to report scoring issues.

License

MIT — see LICENSE.

Links

Release files for repopulse-cli 0.3.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repopulse-cli 0.3.5
File Size Uploaded
repopulse_cli-0.3.5.tar.gz 49.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for repopulse-cli 0.3.5
File Interpreter ABI Platform
repopulse_cli-0.3.5-py3-none-any.whl Python 3 none any Details

Total release size: 92.8 kB

Release files / repopulse_cli-0.3.5.tar.gz

Download URL repopulse_cli-0.3.5.tar.gz
Size 49.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7e9d37a0ec0dedf955485d673cfbfd1e5800da7bf81b31562393a82fc18a43d6
BLAKE2b-256 checksum
How to use checksums
e129c45dbc82a618ba1c33623136ba9d3eb083b486c7d1477672a889b45e3947
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 5, 2026.

Transparency log

Release files / repopulse_cli-0.3.5-py3-none-any.whl

Download URL repopulse_cli-0.3.5-py3-none-any.whl
Size 43.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df370b6f66b2c6c8d95db75b836376180c7b91999ffdf77cc5f1f869037cad33
BLAKE2b-256 checksum
How to use checksums
633d1d933476ef4f25f80e1f92ada968a97fc9267259c65073fdb7ce993a92f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.6

2 release files

This release

0.3.5 This release

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page