{"adoption": {"forks": 140, "observed_at": "2026-08-28T04:04:22.792183+00:00", "stars": 1326}, "canonical_url": "https://ross.abutalabs.com/products/kodus-ai", "card": {"archived": false, "artifact_type": "service", "description": "AI Code Review with Full Control Over Model Choice and Costs.", "domain": ["developer-tools", "version-control", "artificial-intelligence", "large-language-models"], "enriched": true, "function": ["code-review", "llm-inference", "agent-framework", "developer-tools", "ci-cd"], "health_score": 100, "homepage": "https://kodus.io", "language": "TypeScript", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["kodustech/kodus-ai"], "name": "kodustech/kodus-ai", "platform": ["self-hosted", "cli", "cloud"], "pushed_at": "2026-08-26T18:04:56+00:00", "repo": "kodustech/kodus-ai", "stars": 1326, "tags": ["ai-code-review", "code-reviewer", "byok", "model-agnostic", "pull-request-review", "coderabbit-alternative", "agpl", "technical-debt", "git-integration", "ai-agents", "docker", "web-server"], "topics": ["ai", "ai-agents", "ai-code-review", "ai-coding-tools", "code-review", "coding-assistant", "generative-ai", "hacktoberfest"], "urls": [], "use_cases": ["automate pull request code reviews with AI", "self-host an open-source CodeRabbit alternative", "enforce custom team coding standards in PR reviews", "use my own LLM API keys for code review without markup", "check PRs against Jira, Linear, or Notion requirements", "track technical debt from unaddressed review suggestions", "run AI code review locally or in CI/CD pipelines"], "what_it_is": "Kodus (Kody) is an open-source AI code review agent that reviews pull requests on GitHub, GitLab, Bitbucket, and Azure Repos. It is model-agnostic with bring-your-own-key support, customizable review rules, and can be self-hosted via Docker Compose or Helm or used as a cloud service.", "when_to_avoid": ["you want a fully free tool with no LLM token costs", "you need a lightweight static linter rather than LLM-based review", "you require a permissive license since the core is AGPLv3", "you prefer a vendor-managed solution with no infrastructure to run"], "when_to_choose": ["you want AI code review with full control over model choice and costs", "you need self-hosting for privacy or compliance reasons", "your team uses GitHub, GitLab, Bitbucket, or Azure Repos and wants native PR integration", "you want custom review rules in plain language and business-rule validation from project management tools"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/kodus-ai", "repo": "kodustech/kodus-ai", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "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:04:22.792183+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.792183+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:46:23.118592+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d6e4e8a5867e1996613c74f5abad4a5999c904c7bff95b6642c86caaa2d8416a", "fetched_at": "2026-08-28T04:04:22.792183+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kodustech/kodus-ai"}, {"content_hash": "e7574adb79c36a5e2ea2419433364b9c5acd2b689064014132b88411de0c91ae", "fetched_at": "2026-08-29T12:05:45.050100+00:00", "kind": "homepage", "missing": false, "url": "https://kodus.io"}, {"content_hash": "a7650a7ab9de915bf0697f17398b10954f0255b7cf2adbdb44db187a4a6b3054", "fetched_at": "2026-08-29T12:05:45.061496+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/how_to_use/en/overview"}, {"content_hash": "e244b43c2b6728405e1bdc8e7f7a1db55a5f7c6a232f4684d3a6fe8ad3ac89a6", "fetched_at": "2026-08-29T12:05:45.065415+00:00", "kind": "site_page", "missing": false, "url": "https://docs.kodus.io/changelog"}, {"content_hash": "eb6f4378498c5e11be634d2a6b3e3ccd2e6f97acd8e100b5c647350718240d73", "fetched_at": "2026-08-29T12:05:45.071789+00:00", "kind": "site_page", "missing": false, "url": "https://kodus.io/pricing"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 37, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 523, "days_push": 7, "days_rel": 13, "gap_med": 0, "n_releases_24m": 272}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}