{"adoption": {"forks": 2337, "observed_at": "2026-08-28T04:11:26.655007+00:00", "stars": 18424}, "canonical_url": "https://ross.abutalabs.com/products/keploy", "card": {"archived": false, "artifact_type": "service", "description": "Open-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.", "domain": ["testing", "developer-tools", "apis"], "enriched": true, "function": ["testing", "e2e-testing", "mocking", "api-framework", "ci-cd"], "health_score": 100, "homepage": "https://keploy.io", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["keploy/keploy"], "name": "keploy/keploy", "platform": ["cli", "cloud", "self-hosted"], "pushed_at": "2026-08-26T19:27:52+00:00", "repo": "keploy/keploy", "stars": 18424, "tags": ["api-testing", "record-replay", "ebpf", "test-generation", "traffic-capture", "integration-testing", "data-mocks", "regression-testing", "devops", "linux", "docker", "kubernetes"], "topics": ["testing", "test-automation", "api-testing", "testing-tools", "test-automation-framework", "test-generation", "testing-library", "mock", "mock-data-generator", "mock-framework", "agentic-ai", "ai-testing-tool", "testing-tool", "code-quality"], "urls": [], "use_cases": ["generate api tests from real traffic", "auto-generate integration tests with mocked dependencies", "record and replay api calls as test cases", "create test data mocks for databases and queues", "run regression tests in ci from production traffic", "achieve high test coverage without writing unit tests", "test apis without changing application code"], "what_it_is": "Keploy is a developer-centric API and integration testing platform that records real application traffic, database queries, and streaming events, then replays them as automated tests with auto-generated data mocks. It uses eBPF to capture traffic at the network layer, making it code-less and language-agnostic, and runs locally, in CI, or across Kubernetes.", "when_to_avoid": ["you need fine-grained unit testing of individual functions", "your environment cannot run eBPF (e.g., some managed or Windows-only setups)", "you need a simple manual API client like Postman rather than automated test generation", "your compliance policy forbids capturing production traffic"], "when_to_choose": ["you want automated API and integration tests without writing test code", "you need to capture and replay real traffic for regression testing", "you want virtualized dependencies like databases and queues in tests", "your stack is polyglot and you need a language-agnostic testing tool", "you want to run traffic-based tests in CI or Kubernetes sandboxes"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/keploy", "repo": "keploy/keploy", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "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:11:26.655007+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:26.655007+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:02:02.727472+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f3e4d50e039d2cd38a69d85d93b6c9c55f64738c4675b3de37a220e1d1d7297e", "fetched_at": "2026-08-28T04:11:26.655007+00:00", "kind": "readme", "missing": false, "url": "https://github.com/keploy/keploy"}, {"content_hash": "ebc9ba21b64626e006f29b3dae7c073ab03691410979bb2b8302069dc7262095", "fetched_at": "2026-08-29T07:59:39.666123+00:00", "kind": "homepage", "missing": false, "url": "https://keploy.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1687, "days_push": 7, "days_rel": 8, "gap_med": 0.0, "n_releases_24m": 405}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}