Skip to content

commit-miner

Rust CLI that classifies Git commit diffs with Jev into bug fixes, security fixes with CWEs, and change types.

CLIbeta

Overview

commit-miner scans a local or remote Git repository and asks Jev to classify each commit's message and diff. Labels cover bug fixes, security fixes with candidate CWE identifiers, and change types such as performance changes. Results go to HTML or CSV reports or stdout and are saved locally so they can be filtered and exported later.

It is aimed at security researchers and maintainers who want to mine history for silent security fixes or understand what kind of changes a project ships. Jev is the classifier over a closed set of categories listed by `commit-miner categories`; filters like `--only security` or `--cwe 79,89` narrow the display without rescanning. New scans show an estimated Jev cost from reported token usage. The repo also bundles an agent skill for Codex, Claude Code and OpenCode.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich change type is this commit?(inferred)—
Yes / noIs this commit a security fix?(inferred)yes · no
ChoiceWhich CWE best fits this security fix?(inferred)—

How it works

  1. Point commit-miner scan at a repo, ref or date range
  2. Each commit diff and message is sent to Jev with the category set
  3. Classifications and CWE candidates are stored locally
  4. Filter and export to HTML/CSV reports

Strengths

  • Bulk triage of commit history with parallel workers
  • Saved scans re-filterable without new API calls
  • Cost estimate shown per scan
  • Bundled skill for coding agents

Caveats

  • Diffs are sent to TypeSafe
  • CWE labels are candidates for inspection, not verified findings

Getting started

cargo install --path . --locked, export TYPESAFE_API_KEY, then commit-miner scan . -n 500.

At a glance

Type
CLI
Status
beta
Language
Rust
Runtime
CLI
Has code
yes

Use cases and integrations

How curated lists describe it

  • Rust CLI that classifies commit diffs with Jev: bug fixes, security/CWEs, and change types. HTML/CSV reports.

    AnotiaWang/awesome-decision-models
  • Classifies Git commit messages and diffs with Jev for bug fixes, security fixes, CWEs, and change types.

    logicrw/awesome-jev-projects
  • Classifies Git diffs and commit messages into change types and candidate security-fix/CWE labels for inspection.

    cobanov/awesome-jev
  • Classify Git commit diffs and messages with Jev. Bug fixes, security fixes/CWEs, and change types.

    hellogumbo/awesome-jev
  • Classifies Git commits into bug fixes, security fixes with CWEs, and change types.

    MrJev/awesome-jev

Frequently asked questions

What does commit-miner classify?

Commits as bug fixes, security fixes with candidate CWEs, and change types.

Can I run it on a GitHub URL?

Yes, it clones and refreshes managed GitHub repos automatically.

Does it need a TypeSafe key?

Yes, TYPESAFE_API_KEY must be set.

Related projects

  • Semantic code linter that reads each method with its callers and callees and asks decision models about defects, kind, line and severity.

    CLIbetaTypeScript
  • CLI that scores every test against a git diff with Jev and emits filter arguments for vitest, jest, node, Playwright, cargo, go and rspec.

    ProjectbetaTypeScript
  • Semantic grep for code, diffs and CSV rows that packs 16 chunks per Jev request and prints file:line hits with CI-friendly exit codes.

    Agent skillbetaTypeScript
  • Supercov★ 154

    Coverage, security and quality CLI where Jev answers yes/no property questions per file so agents know what to fix first.

    CLIproductionRust
  • Coding-agent hook that asks Jev one yes/no per project rule on every edit or turn and makes the agent fix any violation.

    HookbetaTypeScript
  • Recursive language model layer for coding agents that keeps inputs in a local evaluator, with optional Jev judge_many for typed calls.

    ProjectbetaRust