{"adoption": {"forks": 441, "observed_at": "2026-08-28T04:10:00.492915+00:00", "stars": 7525}, "canonical_url": "https://ross.abutalabs.com/products/opencommit", "card": {"archived": false, "artifact_type": "cli-tool", "description": "top #1 and most feature rich GPT wrapper for git — generate commit messages with an LLM in 1 sec — works with Claude, GPT and every other provider, supports local Ollama models too", "domain": ["developer-tools", "version-control", "artificial-intelligence"], "enriched": true, "function": ["llm-inference", "developer-tools", "cli", "version-control"], "health_score": 80, "homepage": "https://www.npmjs.com/package/opencommit", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["di-sukharev/opencommit"], "name": "di-sukharev/opencommit", "platform": ["cli", "cross-platform"], "pushed_at": "2026-08-25T18:06:22+00:00", "repo": "di-sukharev/opencommit", "stars": 7525, "tags": ["git", "commit-messages", "ai-commits", "openai", "ollama", "gpt", "developer-productivity", "command-line", "nodejs"], "topics": ["ai", "ai-commit", "artificial-intelligence", "chatgpt", "git", "gpt", "productivity", "ai-commits"], "urls": [], "use_cases": ["generate commit messages with AI", "auto-write git commit messages from staged changes", "use local LLM via Ollama to write commits", "stop writing lame commit messages", "configure emoji and commit message style", "integrate AI commit generation into git workflow"], "what_it_is": "OpenCommit is a CLI tool that uses LLMs (OpenAI, Claude, Ollama, and other providers) to automatically generate meaningful git commit messages from staged changes. It is installed via npm and invoked with the `oco` command inside any git repository.", "when_to_avoid": ["you cannot send code diffs to external LLM APIs for privacy or compliance reasons", "you prefer fully deterministic, hand-written commit conventions", "you need a GUI-based git tool rather than a CLI", "you have no access to any LLM provider or local model"], "when_to_choose": ["you want fast, meaningful commit messages without writing them yourself", "you want flexibility to use OpenAI, Claude, or local Ollama models", "you want a simple npm-installed CLI that works in any repo", "you want configurable commit message formatting including emojis"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/opencommit", "repo": "di-sukharev/opencommit", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:00.492915+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:37:27.999774+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6334c6585a5af7b6d81c9167126ce7a502dbb0edf0e440b045678f81992aba8c", "fetched_at": "2026-08-28T04:10:00.492915+00:00", "kind": "readme", "missing": false, "url": "https://github.com/di-sukharev/opencommit"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 91, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1276, "days_push": 8, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}