원클릭으로
awesome-lists
// Publish our open source repo in GitHub awesome lists. Search for relevant lists, evaluate them, craft entries matching each list's format, and submit PRs/issues.
// Publish our open source repo in GitHub awesome lists. Search for relevant lists, evaluate them, craft entries matching each list's format, and submit PRs/issues.
| name | awesome-lists |
| description | Publish our open source repo in GitHub awesome lists. Search for relevant lists, evaluate them, craft entries matching each list's format, and submit PRs/issues. |
Get our repo listed in popular GitHub awesome lists to drive organic discovery.
Before searching for lists, decide what to say. Read our README.md carefully — match its tone exactly (lowercase, direct, Karpathy-style, no marketing language).
Write three versions of the entry description:
Rules:
Show the drafts to the user for approval before proceeding.
Use the internal search tool to find candidate lists:
(cd /Users/rusty/Projects/temp/gpt-oss-20b-MXFP4-Q8 && npm run search:cli -- '{"queries":[
"awesome AI coding agents CLI tools github list site:github.com",
"awesome AI development tools terminal agents github site:github.com",
"awesome list claude code codex gemini CLI agents site:github.com",
"awesome open source AI tools agents frameworks github site:github.com",
"awesome AI code assistants IDE tools github list site:github.com",
"awesome terminal tools developer productivity AI github site:github.com",
"awesome AI agents autonomous coding tools curated list site:github.com"
]}')
You can send up to 7 queries at once. Results arrive as JSON with results[].items[].link and .title.
Extract unique GitHub repo URLs from results.
For each repo found, get the star count:
gh api "repos/OWNER/REPO" --jq '.stargazers_count'
Run this in a batch for all candidates. Sort by stars descending.
Drop immediately:
Check our repo stats too:
gh api repos/rustykuntz/clideck --jq '{stars: .stargazers_count, created: .created_at}'
Compare against each list's requirements (some need 20+ stars, 90+ days, 100+ stars, etc).
For every list we plan to submit to, fetch and read:
CONTRIBUTING.md (try main branch, then master).github/PULL_REQUEST_TEMPLATE.mdPay attention to:
gh CLI submissions and require the GitHub web UI form. Check issue templates for "does not allow resource submissions via the gh CLI" language. These must be submitted by the user manually — prepare the form field values and hand them over.Build a table for the user summarizing each target: repo, stars, section, format, submission method, blockers.
For each target repo:
# Fork
gh repo fork OWNER/REPO --clone=false
# Sync fork
gh repo sync rustykuntz/FORK
# Create branch
SHA=$(gh api repos/rustykuntz/FORK/git/ref/heads/main --jq '.object.sha')
gh api repos/rustykuntz/FORK/git/refs -f ref=refs/heads/add-clideck -f sha="$SHA"
# Get file content and SHA
gh api -X GET repos/rustykuntz/FORK/contents/README.md --field ref=add-clideck --jq '.sha'
To edit and upload via API (avoids cloning):
gh api repos/rustykuntz/FORK/contents/README.md \
-X PUT \
-f message="Add clideck to SECTION_NAME" \
-f content="$ENCODED" \
-f sha="$FILE_SHA" \
-f branch=add-clideck
gh api -X GET repos/rustykuntz/FORK/contents/README.md --field ref=add-clideck --jq '.content' | base64 -d | grep -B2 -A2 "clideck"
gh pr create --repo OWNER/REPO \
--head rustykuntz:add-clideck \
--title "TITLE MATCHING THEIR FORMAT" \
--body "BODY WITH THEIR CHECKLIST/TEMPLATE"
For issue-based submissions (like awesome-claude-code):
gh issue create --repo OWNER/REPO --title "TITLE" --body "BODY"
Print a final summary table with all submissions: repo, stars, type (PR/issue), link, and any blockers.
Note any lists that are parked (we don't meet requirements yet) with the specific threshold we need to hit and when to retry.