Catalog PyPI
Back to packageRELEASE DETAILS

0.2.1

PyPI

adoptrank

Repository discovery and token-budgeted code context for coding agents

code-searchdeveloper-toolsgithublearning-to-rankrepository-search
Published8 Aug 2026
Direct dependencies14
Transitive dependenciesNot calculated

README

Version 0.2.1 documentation

AdoptRank CLI

AdoptRank finds open-source repositories that fit the project you are actually building and exposes a live adoption leaderboard backed by real GitHub and PyPI observations.

Install

pipx install adoptrank

Python 3.11–3.14 is supported for the CLI. The optional model-serving stack uses Python 3.12 in production.

Run the command inside a local project:

adoptrank find "a streaming anomaly detector that fits this codebase"

The scanner sends only a bounded structured summary of languages, dependencies, frameworks, and symbols. It skips ignored paths, build/dependency directories, known credential files, and files matching secret patterns. Inspect the exact payload without sending it with:

adoptrank find "your query" --dry-run

Live leaderboard

adoptrank leaderboard --language Python --sort momentum
adoptrank leaderboard --owner openai --window 7

Results contain simple direct GitHub links. The hosted Vercel proxy supplies the private model-service credential, so CLI users do not need an AdoptRank API key.

Experimental coding-agent context

Build a task-specific evidence pack from safe local source excerpts and ranked GitHub repositories:

adoptrank context "add idempotent Stripe webhook retries" --budget 8000

Use --json for integrations and --no-external for a fully local retrieval run. Token counts are portable estimates until provider-reported telemetry is integrated; the project does not yet claim measured Claude token savings.

Claude Code launcher

# Inspect the bounded context without invoking Claude.
adoptrank claude "Add idempotent payment retries" --path . --budget 8000 --dry-run

# Start Claude Code with the context pack.
adoptrank claude "Add idempotent payment retries" --path . --budget 8000

The launcher writes only redacted metadata—context hash, selected paths, budget, and exit status—to .adoptrank/claude-runs/. --print also records provider usage and later file-read paths/tool-call counts, never source or tool output.

Web application: https://adoptrank.vercel.app

Source and documentation: https://github.com/Kairavparikh/adoptrank

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 15

Native requirements
14 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
httpx
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
httpx==0.28.1runtime
pydantic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
pydantic==2.12.5runtime
pydantic-settings
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
pydantic-settings==2.12.0runtime
tree-sitter
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
tree-sitter<0.27,>=0.25.2runtime
tree-sitter-language-pack
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
tree-sitter-language-pack<2,>=0.11.0runtime
pathspec
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
pathspec<1,>=0.12.1runtime
asyncpg
Environment
{
  "extras": "",
  "marker": "extra == \"ops\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
asyncpg==0.30.0; extra == "ops"runtime
fastapi
Environment
{
  "extras": "",
  "marker": "extra == \"ml\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
fastapi==0.128.3; extra == "ml"runtime
numpy
Environment
{
  "extras": "",
  "marker": "extra == \"ml\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
numpy==2.2.6; extra == "ml"runtime
sentence-transformers
Environment
{
  "extras": "",
  "marker": "extra == \"ml\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
sentence-transformers<6,>=5.1.0; extra == "ml"runtime
torch
Environment
{
  "extras": "",
  "marker": "extra == \"ml\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
torch==2.7.1; extra == "ml"runtime
uvicorn
Environment
{
  "extras": "standard",
  "marker": "extra == \"ml\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
uvicorn[standard]==0.40.0; extra == "ml"runtime
asyncpg
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
asyncpg==0.30.0; extra == "dev"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest==8.4.2; extra == "dev"runtime
ruff
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": "<3.15,>=3.11",
  "evaluation": "NOT_EVALUATED"
}
ruff==0.13.3; extra == "dev"runtime

Distribution files

2 collected
adoptrank-0.2.1-py3-none-any.whl

bdist_wheel · 65.4 KB · Python py3

Source file
adoptrank-0.2.1.tar.gz

sdist · 62 KB · Python source

Source file

Repository

PENDING
kairavparikh/adoptrank

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:46 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:2dbb3ca6d8253b4624bd54f1f192c2bdc643fad4d67784af2d1926fc8686065d

Other collected versions

View all collected versions →