Python repositories reading adequate
Every public repository surveyed, browsable and searchable. Including the unflattering ones — a tool that only published good results would be a badge vending machine, not a diligence instrument.
| Repository | Language | Size | Stars | Read | Band |
|---|---|---|---|---|---|
| searxng/searxng 4 adequate · 1 strong | Python | 93,914 lines | 37,800 | 2026-10-25 | |
| tracer-cloud/opensre 3 adequate · 2 strong | Python | 654,321 lines | 12,684 | 2026-11-03 | |
| agno-agi/agno 4 adequate · 1 strong | Python | 1,327,841 lines | 42,874 | 2026-10-23 | |
| skyvern-ai/skyvern 3 adequate · 2 strong | Python | 1,712,957 lines | 23,290 | 2026-10-28 | |
| bunkerity/bunkerweb 4 adequate · 1 strong | Python | 2,058,501 lines | 11,213 | 2026-11-03 | |
| 2noise/chattts 2 adequate · 2 strong | Python | 31,768 lines | 39,927 | 2026-10-23 | |
| ray-project/ray 3 adequate · 2 strong | Python | 1,947,982 lines | 44,105 | 2026-10-22 | |
| blacklanternsecurity/bbot 1 adequate · 3 strong | Python | 131,839 lines | 10,922 | 2026-11-03 | |
| sqlmapproject/sqlmap 2 adequate · 2 strong | Python | 220,386 lines | 38,772 | 2026-10-23 | |
| chatchat-space/langchain-chatchat 3 adequate · 2 strong | Python | 48,380 lines | 38,702 | 2026-10-23 | |
| khoj-ai/khoj 4 adequate · 1 strong | Python | 94,568 lines | 37,799 | 2026-10-23 | |
| agentscope-ai/qwenpaw 3 adequate · 2 strong | Python | 1,658,503 lines | 36,012 | 2026-10-23 | |
| mlflow/mlflow 3 adequate · 2 strong | Python | 1,682,961 lines | 28,136 | 2026-10-25 | |
| pythagora-io/gpt-pilot 2 adequate · 3 strong | Python | 39,965 lines | 33,645 | 2026-10-23 | |
| getzep/graphiti 3 adequate · 2 strong | Python | 97,478 lines | 32,166 | 2026-10-23 | |
| zulip/zulip 3 adequate · 2 strong | Python | 1,165,155 lines | 25,951 | 2026-10-25 | |
| teamwiseflow/xiaobei 4 adequate · 1 strong | Python | 130,977 lines | 8,684 | 2026-11-03 | |
| saleor/saleor 3 adequate · 2 strong | Python | 877,042 lines | 23,509 | 2026-10-25 | |
| getredash/redash 3 adequate · 2 strong | Python | 105,080 lines | 28,845 | 2026-10-23 | |
| hacs/integration 2 adequate · 2 strong | Python | 40,087 lines | 7,869 | 2026-11-03 | |
| deepset-ai/haystack 2 adequate · 2 strong | Python | 1,685,337 lines | 26,818 | 2026-10-23 | |
| persepolisdm/persepolis 3 adequate · 1 strong | Python | 23,366 lines | 7,489 | 2026-11-03 | |
| traceloop/openllmetry 2 adequate · 2 strong | Python | 376,531 lines | 7,518 | 2026-11-03 | |
| clearml/clearml 2 adequate · 2 strong | Python | 262,814 lines | 6,928 | 2026-11-03 | |
| infobyte/faraday 3 adequate · 2 strong | Python | 90,000 lines | 6,838 | 2026-11-03 | |
| openshot/openshot-qt 3 strong | Python | 166,622 lines | 6,739 | 2026-11-03 | |
| oomol-lab/pdf-craft 2 adequate · 2 strong | Python | 117,364 lines | 6,481 | 2026-11-03 | |
| comet-ml/opik 4 adequate · 1 strong | Python | 1,701,022 lines | 22,852 | 2026-10-23 | |
| datahub-project/datahub 4 adequate · 1 strong | Python | 1,931,589 lines | 12,909 | 2026-10-28 | |
| aimhubio/aim 4 adequate · 1 strong | Python | 152,228 lines | 6,291 | 2026-11-03 |
What a band means. A band sums up one reading of one commit: strong, adequate or significant findings. Here it counts the project's code, process, product, security and operations. A report reads more than that, so its band can differ from its row.
How listing works. Every public repository surveyed is listed — assessing public work is commentary on public work, and a library that hid the small ones would be quietly editorialising about which code counts. Private repositories are never listed. Anyone who proves control of a repo can attach a response to a finding, request a re-run, or delist it. Delisting is immediate and no-questions. An owner's response is removed only when it is unlawful, impersonates someone, publishes personal data or a credential, or is not about the finding. Disagreeing with the report is never a reason. To report a response, or to reach us about one, write to takedown@borehole.dev. There is no org-level score. Repositories are listed one by one, and sorting by band orders them by their own readings. Takedown: one email, 48 hours.