Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Workflow for updating the popular LLM applications pool (section/x_llm_apps.md) using fetch_llm_apps.py. Covers full refresh, alternate exports, topic tuning, and common pitfalls. USE FOR: Refreshing the ranked GitHub applications list linked from applications.md. DO NOT USE FOR: Hand-curating application entries inside applications.md or adding GitHub star badges to the generated file.
.claude/skills/kimtth-fetch-llm-apps/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 0% | 0% |
The pool file section/x_llm_apps.md is a generated ranked list of GitHub repositories related to LLM apps, agents, chat UIs, workflow builders, and similar application-layer projects.
It is generated by code/fetch_llm_apps.py using GitHub topic search, deduplicated across multiple topics, and sorted by GitHub star count descending.
The section #### Popular LLM Applications (GitHub Stars >= 1000) in section/applications.md links to this generated file with a one-line description only. Do not paste generated entries directly into applications.md.
Script: code/fetch_llm_apps.py Python env: .venv\Scripts\python.exe
| Argument | Default | Purpose | |----------|---------|---------| | --output | section/x_llm_apps.md | Output file path. Extension controls format: .md, .json, .csv | | --min-stars | 1000 | Minimum GitHub star threshold | | --topics | curated list | GitHub topics to query and merge | | --token | GITHUB_TOKEN env var | GitHub PAT for higher rate limits | | --show | 30 | Number of repos printed to console | | --timeout | 20 | Per-request timeout in seconds | | --max-retries | 4 | Max retries per request | | --backoff | 1.0 | Initial retry backoff | | --sleep | 1.0 | Delay between successful page requests | | --include-archived | off | Include archived repositories | | --append | off | Merge new results with an existing output file, then re-sort by stars |
Use this for the normal update path.
powershell.venv\Scripts\python.exe code/fetch_llm_apps.py
section/x_llm_apps.md.--min-stars 1000 by default to match the section title.--include-archived is passed.powershell.venv\Scripts\python.exe code/fetch_llm_apps.py --token $env:GITHUB_TOKEN
Use a GitHub PAT when doing a full refresh across many topics. Unauthenticated search is heavily rate-limited.
powershell.venv\Scripts\python.exe code/fetch_llm_apps.py --min-stars 2000
Use this when you want a tighter list. If you change the threshold materially, update the descriptive text in section/applications.md so the label stays truthful.
powershell.venv\Scripts\python.exe code/fetch_llm_apps.py --output files/x_llm_apps.json .venv\Scripts\python.exe code/fetch_llm_apps.py --output files/x_llm_apps.csv
Use JSON or CSV when you want to inspect or post-process the ranked repo pool before regenerating markdown.
powershell.venv\Scripts\python.exe code/fetch_llm_apps.py --topics llm agent rag chatbot ai-workflow
full_name after all topic passes complete.If the output is intentionally narrowed to a subset such as gemini claude azure-openai copilot assistant, keep the ranked entries as generated, then update the document metadata and the linking description in section/applications.md to reflect the narrowed scope.
powershell.venv\Scripts\python.exe code/fetch_llm_apps.py ` --append ` --topics llm agent rag chatbot ai-workflow
--append parses the existing compact entries, merges newly fetched repositories by full_name, and rewrites the file sorted by star count. Use it when expanding coverage; use the normal full refresh when the default topic set changes substantially.
Each entry in section/x_llm_apps.md follows this compact format:
markdown1. [owner/repo](https://github.com/owner/repo): Short GitHub description. [Mon YYYY] (⭐ 12,345)
[Mon YYYY].The file header includes:
section/x_llm_apps.md, not inline inside section/applications.md.(⭐ 12,345). Do not run add_github_stars.py on it.≥1000. If you generate with a different threshold, either restore 1000 or update the section label and description.GITHUB_TOKEN for routine refreshes.--topics or curate separately if coverage is insufficient.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,555 | 7,016 | +54% | 1 | 1 | 0% | 670 | 1,754 | +162% | 0 | 0 | — |
case-02 | fail→fail | 12,494 | 6,096 | -51% | 1 | 1 | 0% | 1,257 | 1,794 | +43% | 0 | 0 | — |
case-07 | pass→pass | 4,810 | 3,137 | -35% | 1 | 1 | 0% | 763 | 2,006 | +163% | 0 | 0 | — |
case-03 | fail→pass | 15,046 | 8,606 | -43% | 1 | 1 | 0% | 2,379 | 2,869 | +21% | 0 | 0 | — |
case-04 | fail→pass | 13,141 | 4,892 | -63% | 1 | 1 | 0% | 1,925 | 2,284 | +19% | 0 | 0 | — |
case-05 | fail→pass | 7,525 | 3,763 | -50% | 1 | 1 | 0% | 1,201 | 2,151 | +79% | 0 | 0 | — |
case-06 | fail→pass | 13,609 | 1,501 | -89% | 1 | 1 | 0% | 1,897 | 1,653 | -13% | 0 | 0 | — |
case-08 | pass→pass | 8,226 | 2,010 | -76% | 1 | 1 | 0% | 1,290 | 1,743 | +35% | 0 | 0 | — |
case-09 | pass→pass | 12,129 | 1,843 | -85% | 1 | 1 | 0% | 1,663 | 1,731 | +4% | 0 | 0 | — |
case-10 | pass→pass | 7,956 | 1,646 | -79% | 1 | 1 | 0% | 1,189 | 1,672 | +41% | 0 | 0 | — |
case-11 | fail→pass | 10,440 | 1,513 | -86% | 1 | 1 | 0% | 1,656 | 1,653 | -0% | 0 | 0 | — |
case-12 | fail→pass | 12,109 | 3,744 | -69% | 1 | 1 | 0% | 1,916 | 2,115 | +10% | 0 | 0 | — |
case-13 | pass→pass | 10,149 | 4,577 | -55% | 1 | 1 | 0% | 1,578 | 2,217 | +40% | 0 | 0 | — |
case-14 | pass→pass | 8,412 | 3,594 | -57% | 1 | 1 | 0% | 1,290 | 1,982 | +54% | 0 | 0 | — |
case-15 | fail→pass | 11,882 | 5,073 | -57% | 1 | 1 | 0% | 1,897 | 2,384 | +26% | 0 | 0 | — |
case-16 | fail→pass | 2,259 | 1,524 | -33% | 1 | 1 | 0% | 242 | 1,602 | +562% | 0 | 0 | — |
case-17 | fail→pass | 3,448 | 2,015 | -42% | 1 | 1 | 0% | 488 | 1,703 | +249% | 0 | 0 | — |
case-18 | pass→pass | 13,909 | 7,286 | -48% | 1 | 1 | 0% | 2,180 | 2,670 | +22% | 0 | 0 | — |
case-19 | pass→pass | 7,548 | 3,631 | -52% | 1 | 1 | 0% | 1,252 | 2,056 | +64% | 0 | 0 | — |
case-20 | pass→pass | 2,646 | 2,806 | +6% | 1 | 1 | 0% | 464 | 1,855 | +300% | 0 | 0 | — |
case-21 | pass→pass | 3,166 | 2,918 | -8% | 1 | 1 | 0% | 559 | 1,904 | +241% | 0 | 0 | — |
case-22 | pass→pass | 3,053 | 1,996 | -35% | 1 | 1 | 0% | 498 | 1,809 | +263% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.