commit-miner
Rust CLI that classifies Git commit diffs with Jev into bug fixes, security fixes with CWEs, and change types.
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
| Type | Question | Answers |
|---|---|---|
| Choice | Which change type is this commit?(inferred) | — |
| Yes / no | Is this commit a security fix?(inferred) | yes · no |
| Choice | Which CWE best fits this security fix?(inferred) | — |
How it works
- Point commit-miner scan at a repo, ref or date range
- Each commit diff and message is sent to Jev with the category set
- Classifications and CWE candidates are stored locally
- 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-modelsClassifies Git commit messages and diffs with Jev for bug fixes, security fixes, CWEs, and change types.
logicrw/awesome-jev-projectsClassifies Git diffs and commit messages into change types and candidate security-fix/CWE labels for inspection.
cobanov/awesome-jevClassify Git commit diffs and messages with Jev. Bug fixes, security fixes/CWEs, and change types.
hellogumbo/awesome-jevClassifies 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.
CLIbetaTypeScriptCLI that scores every test against a git diff with Jev and emits filter arguments for vitest, jest, node, Playwright, cargo, go and rspec.
ProjectbetaTypeScriptSemantic 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.
HookbetaTypeScriptRecursive language model layer for coding agents that keeps inputs in a local evaluator, with optional Jev judge_many for typed calls.
ProjectbetaRust