{"id":"77a003e7-c35d-43c3-b7db-f61a9e961013","entityType":"agent","slug":"clawhub-crawlora-org-developer-oss-research","name":"developer-oss-research","canonicalUrl":"https://www.xpersona.co/agent/clawhub-crawlora-org-developer-oss-research","canonicalPath":"/agent/clawhub-crawlora-org-developer-oss-research","generatedAt":"2026-10-12T13:43:01.239Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:21:23.631Z","emptyReason":null},"description":"Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 955 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:developer-oss-research","sourceUrl":"https://clawhub.ai/crawlora-org/developer-oss-research","homepage":"https://clawhub.ai/crawlora-org/skills/developer-oss-research","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/crawlora-org/developer-oss-research","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/crawlora-org/skills/developer-oss-research","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"developer-oss-research technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:21:23.631Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:21:23.631Z","emptyReason":null},"stars":null,"forks":null,"downloads":955,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.17","tractionLabel":"955 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:21:23.567Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T02:21:23.631Z","lastCrawledAt":"2026-10-12T02:21:23.567Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T02:21:23.567Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.17","createdAt":"2026-09-17T10:21:42.573Z","changelog":"Security hardening: generated helpers now enforce exact routes, methods, and credential-safe curl behavior.","fileCount":5,"zipByteSize":8453},{"version":"1.0.16","createdAt":"2026-09-14T01:41:20.513Z","changelog":"Sync skill instructions, references, and helper from GitHub 902f58316c643ffbcabc57fc6f15f59d27ec063d","fileCount":5,"zipByteSize":8751},{"version":"1.0.15","createdAt":"2026-09-10T12:31:01.257Z","changelog":"Validate API keys before curl config","fileCount":5,"zipByteSize":8581},{"version":"1.0.14","createdAt":"2026-09-10T12:14:37.435Z","changelog":"Keep API keys out of process arguments","fileCount":5,"zipByteSize":8474},{"version":"1.0.13","createdAt":"2026-09-10T12:05:31.897Z","changelog":"Reject curl local-file query syntax","fileCount":5,"zipByteSize":8412},{"version":"1.0.12","createdAt":"2026-09-10T11:53:00.667Z","changelog":"Stream helper request bodies through curl stdin","fileCount":5,"zipByteSize":8074},{"version":"1.0.11","createdAt":"2026-09-10T11:37:53.342Z","changelog":"Scope helper routes and remove secret-shaped key examples","fileCount":5,"zipByteSize":8151},{"version":"1.0.10","createdAt":"2026-09-10T06:38:40.680Z","changelog":"Migrate publisher from tonywangcn to crawlora-org for brand consistency with the plugins","fileCount":5,"zipByteSize":7560}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:developer-oss-research","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17d53nb8nd03gyyfdy32rgde58e574f:developer-oss-research` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/crawlora-org/developer-oss-research before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T13:43:01.235Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-crawlora-org-developer-oss-research/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:21:23.631Z","emptyReason":null},"readme":"Skill: developer-oss-research\n\nOwner: crawlora-org\n\nSummary: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n\nTags: latest:1.0.17\n\nVersion history:\n\nv1.0.17 | 2026-09-17T10:21:42.573Z | user\n\nSecurity hardening: generated helpers now enforce exact routes, methods, and credential-safe curl behavior.\n\nv1.0.16 | 2026-09-14T01:41:20.513Z | user\n\nSync skill instructions, references, and helper from GitHub 902f58316c643ffbcabc57fc6f15f59d27ec063d\n\nv1.0.15 | 2026-09-10T12:31:01.257Z | user\n\nValidate API keys before curl config\n\nv1.0.14 | 2026-09-10T12:14:37.435Z | user\n\nKeep API keys out of process arguments\n\nv1.0.13 | 2026-09-10T12:05:31.897Z | user\n\nReject curl local-file query syntax\n\nv1.0.12 | 2026-09-10T11:53:00.667Z | user\n\nStream helper request bodies through curl stdin\n\nv1.0.11 | 2026-09-10T11:37:53.342Z | user\n\nScope helper routes and remove secret-shaped key examples\n\nv1.0.10 | 2026-09-10T06:38:40.680Z | user\n\nMigrate publisher from tonywangcn to crawlora-org for brand consistency with the plugins\n\nv1.0.9 | 2026-09-08T04:30:27.037Z | user\n\nRefresh stale REST examples, endpoint references, and Bash helper from crawlora-skills 1.17.1.\n\nv1.0.8 | 2026-09-07T13:03:54.717Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.7 | 2026-09-07T07:55:21.477Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.6 | 2026-09-07T06:19:09.406Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.5 | 2026-08-24T06:48:02.199Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.4 | 2026-08-24T06:07:31.616Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.3 | 2026-08-24T04:49:26.550Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.2 | 2026-08-14T18:11:14.250Z | user\n\nSync via scripts/sync-directories.sh\n\nv1.0.1 | 2026-08-10T18:26:13.525Z | user\n\nSet categories\n\nv1.0.0 | 2026-08-10T18:00:53.084Z | auto\n\n- Initial release providing research on GitHub repos, users, orgs, and Chrome Web Store extensions via Crawlora API.\n- Returns clean JSON for repo/developer profiles, contributors, releases, and trending information.\n- Supports Chrome extension lookups, including details, permissions, reviews, and publisher listings.\n- Requires a free Crawlora API key; API requests are credit-based (2,000/month free).\n- Public data only; all endpoints and usage detailed in the included reference.\n\nArchive index:\n\nArchive v1.0.17: 5 files, 8453 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (4541b), skill-card.md (2442b), SKILL.md (4095b), _meta.json (142b)\n\nFile v1.0.17:SKILL.md\n\n---\nname: developer-oss-research\ndescription: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n---\n\n# Developer & open-source research\n\nLook up GitHub repos, users, and orgs, plus Chrome Web Store extensions, as\nnormalized JSON from the Crawlora API — no scraping github.com or the\nChrome Web Store.\n\n## When to use this skill\n\n- \"Tell me about this GitHub repo/user/org\" (stars, languages, followers).\n- \"What's trending on GitHub right now?\" (by language).\n- \"Who contributes to this repo?\" / \"what are its releases?\"\n- \"Tell me about this Chrome extension\" (permissions, privacy, reviews).\n- \"Search extensions for <keyword>\" or \"what's similar to this extension?\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **GitHub repos** — `/github/search/repositories` (`q`, GitHub search\n   syntax works) to find one; `/github/repo/{owner}/{repo}` for detail, plus\n   `/contributors`, `/languages`, `/releases`, `/forks`.\n2. **GitHub users/orgs** — `/github/search/users` (`q`); `/github/user/{username}`\n   (+ `/followers`, `/following`, `/repos`, `/events`, `/pinned`) or\n   `/github/org/{org}` (+ `/repos`). `/github/trending` and\n   `/github/trending/developers` (filter by `language`, `since`) cover\n   what's hot right now.\n3. **Chrome Web Store** — `/chromewebstore/search` (`term`) to find an\n   extension `id`; `/chromewebstore/item` for detail, `/permissions`,\n   `/privacy`, `/reviews`, `/similar`. `/chromewebstore/charts` and\n   `/chromewebstore/category` cover browsing/trending; `/chromewebstore/developer`\n   lists everything one publisher ships.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every GitHub and\nChrome Web Store endpoint this skill uses.\n\n## Examples\n\n- **Repo due diligence:** `/github/repo/{owner}/{repo}` + `/contributors` +\n  `/releases` to gauge activity and maintenance health before depending on it.\n- **Trending scan:** `/github/trending` (by language) + `/github/trending/developers`\n  for a daily/weekly pulse on what's gaining traction.\n- **Extension safety check:** `/chromewebstore/item` + `/permissions` +\n  `/privacy` before recommending or installing a browser extension.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public profile/repo/extension pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **GitHub search accepts GitHub's own search qualifiers** (`language:`,\n  `stars:>N`, `org:`, …) inside `q` — same syntax as github.com's search bar.\n- List endpoints are paginated (`page`/`per_page`) — walk pages for full coverage.\n\nFile v1.0.17:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"developer-oss-research\",\n  \"version\": \"1.0.17\",\n  \"publishedAt\": 1789640502573\n}\n\nFile v1.0.17:reference/endpoints.md\n\n# developer-oss-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**29 endpoints across 2 platform group(s).**\n\n## GitHub (17)\n\n### `github_org`\n\n- **HTTP:** `GET /github/org/{org}`\n- **What:** Retrieve a GitHub organization profile. Returns a public GitHub organization profile (company-side enrichment).\n- **Params:** `org` (string, **required**) — GitHub organization login\n\n### `github_org_repos`\n\n- **HTTP:** `GET /github/org/{org}/repos`\n- **What:** List a GitHub organization's public repositories. Returns a page of an organization's public repositories (company tech stack).\n- **Params:** `direction` (string, optional) — Sort direction; `org` (string, **required**) — GitHub organization login; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type\n\n### `github_repo`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}`\n- **What:** Retrieve a GitHub repository. Returns public detail for a single repository (the core project object).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_contributors`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/contributors`\n- **What:** List a repository's contributors. Returns a page of a repository's contributors (who builds a project).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_repo_forks`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/forks`\n- **What:** List a repository's public forks. Returns a page of a repository's public forks (adopter signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name; `sort` (string, optional) — Sort order\n\n### `github_repo_languages`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/languages`\n- **What:** Retrieve a repository's language breakdown. Returns the language byte breakdown for a repository, sorted by bytes descending (tech fingerprint).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_releases`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/releases`\n- **What:** List a repository's releases. Returns a page of a repository's releases (momentum/health signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_search_repositories`\n\n- **HTTP:** `GET /github/search/repositories`\n- **What:** Search public GitHub repositories. Searches public GitHub repositories (market/competitive discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub repository search query; `sort` (string, optional) — Sort field\n\n### `github_search_users`\n\n- **HTTP:** `GET /github/search/users`\n- **What:** Search public GitHub users. Searches public GitHub users (developer discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub user search query; `sort` (string, optional) — Sort field\n\n### `github_trending`\n\n- **HTTP:** `GET /github/trending`\n- **What:** List trending GitHub repositories. Returns the repositories on GitHub's trending page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_trending_developers`\n\n- **HTTP:** `GET /github/trending/developers`\n- **What:** List trending GitHub developers. Returns the developers on GitHub's trending developers page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_user`\n\n- **HTTP:** `GET /github/user/{username}`\n- **What:** Retrieve a GitHub user profile. Returns a public GitHub user's profile plus user-published social links. Email is included only when the user has made it public on their profile.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_events`\n\n- **HTTP:** `GET /github/user/{username}/events`\n- **What:** List a GitHub user's recent public activity. Returns a page of a user's recent public events, normalized to type, repository, and timestamp (freshness signal).\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_followers`\n\n- **HTTP:** `GET /github/user/{username}/followers`\n- **What:** List a GitHub user's followers. Returns a page of the public accounts following a GitHub user.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_following`\n\n- **HTTP:** `GET /github/user/{username}/following`\n- **What:** List who a GitHub user follows. Returns a page of the public accounts a GitHub user follows.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_pinned`\n\n- **HTTP:** `GET /github/user/{username}/pinned`\n- **What:** List a GitHub user's pinned repositories. Returns the repositories a user pinned on their public profile (showcase signal). Empty when the user pinned nothing.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_repos`\n\n- **HTTP:** `GET /github/user/{username}/repos`\n- **What:** List a GitHub user's public repositories. Returns a page of a user's public repositories (tech-stack signal).\n- **Params:** `direction` (string, optional) — Sort direction; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type; `username` (string, **required**) — GitHub username\n\n## ChromeWebStore (12)\n\n### `chromewebstore_categories`\n\n- **HTTP:** `GET /chromewebstore/categories`\n- **What:** List Chrome Web Store categories and collections. Returns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.\n- **Params:** _none_\n\n### `chromewebstore_category`\n\n- **HTTP:** `GET /chromewebstore/category`\n- **What:** List items in a Chrome Web Store category. Returns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `category` (string, **required**) — Category slug under extensions; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_charts`\n\n- **HTTP:** `GET /chromewebstore/charts`\n- **What:** List a Chrome Web Store top chart. Returns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.\n- **Params:** `chart` (string, optional) — Top chart to list; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_collection`\n\n- **HTTP:** `GET /chromewebstore/collection`\n- **What:** List items in a curated Chrome Web Store collection. Returns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `collection` (string, **required**) — Curated collection slug; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_developer`\n\n- **HTTP:** `GET /chromewebstore/developer`\n- **What:** Retrieve a Chrome Web Store publisher and their items. Returns a Chrome Web Store publisher (developer) by publisher id, including the disclosed trader details — legal name, email, phone, address, website, and D-U-N-S number — plus the publisher's listed items (\"More from ...\"). Trader fields are only present for publishers that identify as EU traders. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store publisher id (u + 32 hex chars); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_item`\n\n- **HTTP:** `GET /chromewebstore/item`\n- **What:** Retrieve Chrome Web Store item details. Returns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_permissions`\n\n- **HTTP:** `GET /chromewebstore/permissions`\n- **What:** Retrieve a Chrome Web Store item's declared permissions. Returns the permissions a Chrome Web Store extension declares in its manifest: `permissions`, `optional_permissions`, `host_permissions`, `optional_host_permissions`, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_privacy`\n\n- **HTTP:** `GET /chromewebstore/privacy`\n- **What:** Retrieve a Chrome Web Store item's privacy disclosures. Returns an extension's privacy disclosures as the store renders them: the developer's data-use statement, whether it collects data, the standard data-handling declarations, and the privacy-policy link. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_reviews`\n\n- **HTTP:** `GET /chromewebstore/reviews`\n- **What:** Retrieve Chrome Web Store item reviews. Returns the reviews the store renders on an item's reviews page, each with author, star rating, text, posted/edited dates and reviewed version. Defaults: `num=20`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of reviews; `sort` (string, optional) — Review sort order\n\n### `chromewebstore_search`\n\n- **HTTP:** `GET /chromewebstore/search`\n- **What:** Search Chrome Web Store items. Returns Chrome Web Store search result cards for a keyword, each with id, name, rating, user count, publisher and detail URL. Defaults: `num=30`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of results; `term` (string, **required**) — Search keyword\n\n### `chromewebstore_similar`\n\n- **HTTP:** `GET /chromewebstore/similar`\n- **What:** Retrieve related Chrome Web Store items. Returns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_suggest`\n\n- **HTTP:** `GET /chromewebstore/suggest`\n- **What:** Suggest Chrome Web Store search terms. Returns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of suggestions; `term` (string, **required**) — Search prefix to autocomplete\n\nFile v1.0.17:skill-card.md\n\n## Description:\n\nResearches GitHub repos, users, orgs, and Chrome Web Store extensions through the Crawlora API, returning clean JSON for search, profiles, contributors, releases, trending projects, extension details, reviews, privacy, and permissions.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to research public GitHub projects, users, organizations, and Chrome Web Store extensions before dependency, marketplace, or safety decisions. It helps collect public activity, contributor, release, language, extension permission, privacy, review, and related-item signals as normalized JSON.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Lookup targets, search terms, and the Crawlora API key are sent to a third-party API.\n\nMitigation: Use the skill only for appropriate public research targets, keep CRAWLORA_API_KEY in the environment, and do not hardcode or commit credentials.\n\nRisk: Confidential private targets could be disclosed through API queries.\n\nMitigation: Avoid using the skill for confidential repositories, private investigations, or sensitive extension assessments.\n\nRisk: Chrome publisher lookups can return public trader-contact details where the Chrome Web Store exposes them.\n\nMitigation: Handle returned contact details as public but potentially personal data, and share only what is necessary for the review task.\n\n## Reference(s):\n\n- [developer-oss-research endpoint reference](artifact/reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/developer-oss-research)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; lookup targets and search terms are sent to the Crawlora API.]\n\n## Skill Version(s):\n\n1.0.17 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.16: 5 files, 8751 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (5454b), skill-card.md (2119b), SKILL.md (4095b), _meta.json (142b)\n\nFile v1.0.16:SKILL.md\n\n---\nname: developer-oss-research\ndescription: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n---\n\n# Developer & open-source research\n\nLook up GitHub repos, users, and orgs, plus Chrome Web Store extensions, as\nnormalized JSON from the Crawlora API — no scraping github.com or the\nChrome Web Store.\n\n## When to use this skill\n\n- \"Tell me about this GitHub repo/user/org\" (stars, languages, followers).\n- \"What's trending on GitHub right now?\" (by language).\n- \"Who contributes to this repo?\" / \"what are its releases?\"\n- \"Tell me about this Chrome extension\" (permissions, privacy, reviews).\n- \"Search extensions for <keyword>\" or \"what's similar to this extension?\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **GitHub repos** — `/github/search/repositories` (`q`, GitHub search\n   syntax works) to find one; `/github/repo/{owner}/{repo}` for detail, plus\n   `/contributors`, `/languages`, `/releases`, `/forks`.\n2. **GitHub users/orgs** — `/github/search/users` (`q`); `/github/user/{username}`\n   (+ `/followers`, `/following`, `/repos`, `/events`, `/pinned`) or\n   `/github/org/{org}` (+ `/repos`). `/github/trending` and\n   `/github/trending/developers` (filter by `language`, `since`) cover\n   what's hot right now.\n3. **Chrome Web Store** — `/chromewebstore/search` (`term`) to find an\n   extension `id`; `/chromewebstore/item` for detail, `/permissions`,\n   `/privacy`, `/reviews`, `/similar`. `/chromewebstore/charts` and\n   `/chromewebstore/category` cover browsing/trending; `/chromewebstore/developer`\n   lists everything one publisher ships.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every GitHub and\nChrome Web Store endpoint this skill uses.\n\n## Examples\n\n- **Repo due diligence:** `/github/repo/{owner}/{repo}` + `/contributors` +\n  `/releases` to gauge activity and maintenance health before depending on it.\n- **Trending scan:** `/github/trending` (by language) + `/github/trending/developers`\n  for a daily/weekly pulse on what's gaining traction.\n- **Extension safety check:** `/chromewebstore/item` + `/permissions` +\n  `/privacy` before recommending or installing a browser extension.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public profile/repo/extension pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **GitHub search accepts GitHub's own search qualifiers** (`language:`,\n  `stars:>N`, `org:`, …) inside `q` — same syntax as github.com's search bar.\n- List endpoints are paginated (`page`/`per_page`) — walk pages for full coverage.\n\nFile v1.0.16:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"developer-oss-research\",\n  \"version\": \"1.0.16\",\n  \"publishedAt\": 1789350080513\n}\n\nFile v1.0.16:reference/endpoints.md\n\n# developer-oss-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**29 endpoints across 2 platform group(s).**\n\n## GitHub (17)\n\n### `github_org`\n\n- **HTTP:** `GET /github/org/{org}`\n- **What:** Retrieve a GitHub organization profile. Returns a public GitHub organization profile (company-side enrichment).\n- **Params:** `org` (string, **required**) — GitHub organization login\n\n### `github_org_repos`\n\n- **HTTP:** `GET /github/org/{org}/repos`\n- **What:** List a GitHub organization's public repositories. Returns a page of an organization's public repositories (company tech stack).\n- **Params:** `direction` (string, optional) — Sort direction; `org` (string, **required**) — GitHub organization login; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type\n\n### `github_repo`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}`\n- **What:** Retrieve a GitHub repository. Returns public detail for a single repository (the core project object).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_contributors`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/contributors`\n- **What:** List a repository's contributors. Returns a page of a repository's contributors (who builds a project).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_repo_forks`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/forks`\n- **What:** List a repository's public forks. Returns a page of a repository's public forks (adopter signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name; `sort` (string, optional) — Sort order\n\n### `github_repo_languages`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/languages`\n- **What:** Retrieve a repository's language breakdown. Returns the language byte breakdown for a repository, sorted by bytes descending (tech fingerprint).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_releases`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/releases`\n- **What:** List a repository's releases. Returns a page of a repository's releases (momentum/health signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_search_repositories`\n\n- **HTTP:** `GET /github/search/repositories`\n- **What:** Search public GitHub repositories. Searches public GitHub repositories (market/competitive discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub repository search query; `sort` (string, optional) — Sort field\n\n### `github_search_users`\n\n- **HTTP:** `GET /github/search/users`\n- **What:** Search public GitHub users. Searches public GitHub users (developer discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub user search query; `sort` (string, optional) — Sort field\n\n### `github_trending`\n\n- **HTTP:** `GET /github/trending`\n- **What:** List trending GitHub repositories. Returns the repositories on GitHub's trending page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_trending_developers`\n\n- **HTTP:** `GET /github/trending/developers`\n- **What:** List trending GitHub developers. Returns the developers on GitHub's trending developers page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_user`\n\n- **HTTP:** `GET /github/user/{username}`\n- **What:** Retrieve a GitHub user profile. Returns a public GitHub user's profile plus user-published social links. Email is included only when the user has made it public on their profile.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_events`\n\n- **HTTP:** `GET /github/user/{username}/events`\n- **What:** List a GitHub user's recent public activity. Returns a page of a user's recent public events, normalized to type, repository, and timestamp (freshness signal).\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_followers`\n\n- **HTTP:** `GET /github/user/{username}/followers`\n- **What:** List a GitHub user's followers. Returns a page of the public accounts following a GitHub user.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_following`\n\n- **HTTP:** `GET /github/user/{username}/following`\n- **What:** List who a GitHub user follows. Returns a page of the public accounts a GitHub user follows.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_pinned`\n\n- **HTTP:** `GET /github/user/{username}/pinned`\n- **What:** List a GitHub user's pinned repositories. Returns the repositories a user pinned on their public profile (showcase signal). Empty when the user pinned nothing.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_repos`\n\n- **HTTP:** `GET /github/user/{username}/repos`\n- **What:** List a GitHub user's public repositories. Returns a page of a user's public repositories (tech-stack signal).\n- **Params:** `direction` (string, optional) — Sort direction; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type; `username` (string, **required**) — GitHub username\n\n## ChromeWebStore (12)\n\n### `chromewebstore_categories`\n\n- **HTTP:** `GET /chromewebstore/categories`\n- **What:** List Chrome Web Store categories and collections. Returns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.\n- **Params:** _none_\n\n### `chromewebstore_category`\n\n- **HTTP:** `GET /chromewebstore/category`\n- **What:** List items in a Chrome Web Store category. Returns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `category` (string, **required**) — Category slug under extensions; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_charts`\n\n- **HTTP:** `GET /chromewebstore/charts`\n- **What:** List a Chrome Web Store top chart. Returns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.\n- **Params:** `chart` (string, optional) — Top chart to list; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_collection`\n\n- **HTTP:** `GET /chromewebstore/collection`\n- **What:** List items in a curated Chrome Web Store collection. Returns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `collection` (string, **required**) — Curated collection slug; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_developer`\n\n- **HTTP:** `GET /chromewebstore/developer`\n- **What:** Retrieve a Chrome Web Store publisher and their items. Returns a Chrome Web Store publisher (developer) by publisher id, including the disclosed trader details — legal name, email, phone, address, website, and D-U-N-S number — plus the publisher's listed items (\"More from ...\"). Trader fields are only present for publishers that identify as EU traders. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store publisher id (u + 32 hex chars); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_item`\n\n- **HTTP:** `GET /chromewebstore/item`\n- **What:** Retrieve Chrome Web Store item details. Returns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_permissions`\n\n- **HTTP:** `GET /chromewebstore/permissions`\n- **What:** Retrieve a Chrome Web Store item's declared permissions. Returns the permissions a Chrome Web Store extension declares in its manifest: `permissions`, `optional_permissions`, `host_permissions`, `optional_host_permissions`, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_privacy`\n\n- **HTTP:** `GET /chromewebstore/privacy`\n- **What:** Retrieve a Chrome Web Store item's privacy disclosures. Returns an extension's privacy disclosures as the store renders them: the developer's data-use statement, whether it collects data, the standard data-handling declarations, and the privacy-policy link. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_reviews`\n\n- **HTTP:** `GET /chromewebstore/reviews`\n- **What:** Retrieve Chrome Web Store item reviews. Returns the reviews the store renders on an item's reviews page, each with author, star rating, text, posted/edited dates and reviewed version. Defaults: `num=20`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of reviews; `sort` (string, optional) — Review sort order\n\n### `chromewebstore_search`\n\n- **HTTP:** `GET /chromewebstore/search`\n- **What:** Search Chrome Web Store items. Returns Chrome Web Store search result cards for a keyword, each with id, name, rating, user count, publisher and detail URL. Defaults: `num=30`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of results; `term` (string, **required**) — Search keyword\n\n### `chromewebstore_similar`\n\n- **HTTP:** `GET /chromewebstore/similar`\n- **What:** Retrieve related Chrome Web Store items. Returns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_suggest`\n\n- **HTTP:** `GET /chromewebstore/suggest`\n- **What:** Suggest Chrome Web Store search terms. Returns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of suggestions; `term` (string, **required**) — Search prefix to autocomplete\n\nFile v1.0.16:skill-card.md\n\n## Description:\n\nResearches GitHub repos, users, orgs, and Chrome Web Store extensions via the Crawlora API, returning normalized JSON for search, profiles, contributors, releases, trending projects, extension details, reviews, privacy, and permissions.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, engineers, and agents use this skill to research public GitHub projects, developers, organizations, and Chrome Web Store extensions for due diligence, trend discovery, contributor analysis, release review, and extension safety checks.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Search terms, repository names, extension identifiers, and related research queries are sent to Crawlora as a third-party API provider.\n\nMitigation: Use the skill for public GitHub and Chrome Web Store research only, and avoid confidential repository names, private investigation terms, or sensitive identifiers in queries.\n\nRisk: A Crawlora API key is required for API calls.\n\nMitigation: Keep CRAWLORA_API_KEY in the environment only; do not hardcode it, place it in query parameters, or commit it.\n\n## Reference(s):\n\n- [developer-oss-research endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API base](https://api.crawlora.net/api/v1)\n\n## Skill Output:\n\n**Output Type(s):** [JSON, Shell commands, Guidance]\n\n**Output Format:** [JSON responses with concise Markdown guidance and inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and is limited to public GitHub and Chrome Web Store data available through Crawlora.]\n\n## Skill Version(s):\n\n1.0.16 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.15: 5 files, 8581 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (4587b), skill-card.md (2191b), SKILL.md (4095b), _meta.json (142b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: developer-oss-research\ndescription: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n---\n\n# Developer & open-source research\n\nLook up GitHub repos, users, and orgs, plus Chrome Web Store extensions, as\nnormalized JSON from the Crawlora API — no scraping github.com or the\nChrome Web Store.\n\n## When to use this skill\n\n- \"Tell me about this GitHub repo/user/org\" (stars, languages, followers).\n- \"What's trending on GitHub right now?\" (by language).\n- \"Who contributes to this repo?\" / \"what are its releases?\"\n- \"Tell me about this Chrome extension\" (permissions, privacy, reviews).\n- \"Search extensions for <keyword>\" or \"what's similar to this extension?\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **GitHub repos** — `/github/search/repositories` (`q`, GitHub search\n   syntax works) to find one; `/github/repo/{owner}/{repo}` for detail, plus\n   `/contributors`, `/languages`, `/releases`, `/forks`.\n2. **GitHub users/orgs** — `/github/search/users` (`q`); `/github/user/{username}`\n   (+ `/followers`, `/following`, `/repos`, `/events`, `/pinned`) or\n   `/github/org/{org}` (+ `/repos`). `/github/trending` and\n   `/github/trending/developers` (filter by `language`, `since`) cover\n   what's hot right now.\n3. **Chrome Web Store** — `/chromewebstore/search` (`term`) to find an\n   extension `id`; `/chromewebstore/item` for detail, `/permissions`,\n   `/privacy`, `/reviews`, `/similar`. `/chromewebstore/charts` and\n   `/chromewebstore/category` cover browsing/trending; `/chromewebstore/developer`\n   lists everything one publisher ships.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every GitHub and\nChrome Web Store endpoint this skill uses.\n\n## Examples\n\n- **Repo due diligence:** `/github/repo/{owner}/{repo}` + `/contributors` +\n  `/releases` to gauge activity and maintenance health before depending on it.\n- **Trending scan:** `/github/trending` (by language) + `/github/trending/developers`\n  for a daily/weekly pulse on what's gaining traction.\n- **Extension safety check:** `/chromewebstore/item` + `/permissions` +\n  `/privacy` before recommending or installing a browser extension.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public profile/repo/extension pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **GitHub search accepts GitHub's own search qualifiers** (`language:`,\n  `stars:>N`, `org:`, …) inside `q` — same syntax as github.com's search bar.\n- List endpoints are paginated (`page`/`per_page`) — walk pages for full coverage.\n\nFile v1.0.15:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"developer-oss-research\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1789043461257\n}\n\nFile v1.0.15:reference/endpoints.md\n\n# developer-oss-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**29 endpoints across 2 platform group(s).**\n\n## GitHub (17)\n\n### `github_org`\n\n- **HTTP:** `GET /github/org/{org}`\n- **What:** Retrieve a GitHub organization profile. Returns a public GitHub organization profile (company-side enrichment).\n- **Params:** `org` (string, **required**) — GitHub organization login\n\n### `github_org_repos`\n\n- **HTTP:** `GET /github/org/{org}/repos`\n- **What:** List a GitHub organization's public repositories. Returns a page of an organization's public repositories (company tech stack).\n- **Params:** `direction` (string, optional) — Sort direction; `org` (string, **required**) — GitHub organization login; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type\n\n### `github_repo`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}`\n- **What:** Retrieve a GitHub repository. Returns public detail for a single repository (the core project object).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_contributors`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/contributors`\n- **What:** List a repository's contributors. Returns a page of a repository's contributors (who builds a project).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_repo_forks`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/forks`\n- **What:** List a repository's public forks. Returns a page of a repository's public forks (adopter signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name; `sort` (string, optional) — Sort order\n\n### `github_repo_languages`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/languages`\n- **What:** Retrieve a repository's language breakdown. Returns the language byte breakdown for a repository, sorted by bytes descending (tech fingerprint).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_releases`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/releases`\n- **What:** List a repository's releases. Returns a page of a repository's releases (momentum/health signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_search_repositories`\n\n- **HTTP:** `GET /github/search/repositories`\n- **What:** Search public GitHub repositories. Searches public GitHub repositories (market/competitive discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub repository search query; `sort` (string, optional) — Sort field\n\n### `github_search_users`\n\n- **HTTP:** `GET /github/search/users`\n- **What:** Search public GitHub users. Searches public GitHub users (developer discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub user search query; `sort` (string, optional) — Sort field\n\n### `github_trending`\n\n- **HTTP:** `GET /github/trending`\n- **What:** List trending GitHub repositories. Returns the repositories on GitHub's trending page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_trending_developers`\n\n- **HTTP:** `GET /github/trending/developers`\n- **What:** List trending GitHub developers. Returns the developers on GitHub's trending developers page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_user`\n\n- **HTTP:** `GET /github/user/{username}`\n- **What:** Retrieve a GitHub user profile. Returns a public GitHub user's profile plus user-published social links. Email is included only when the user has made it public on their profile.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_events`\n\n- **HTTP:** `GET /github/user/{username}/events`\n- **What:** List a GitHub user's recent public activity. Returns a page of a user's recent public events, normalized to type, repository, and timestamp (freshness signal).\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_followers`\n\n- **HTTP:** `GET /github/user/{username}/followers`\n- **What:** List a GitHub user's followers. Returns a page of the public accounts following a GitHub user.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_following`\n\n- **HTTP:** `GET /github/user/{username}/following`\n- **What:** List who a GitHub user follows. Returns a page of the public accounts a GitHub user follows.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_pinned`\n\n- **HTTP:** `GET /github/user/{username}/pinned`\n- **What:** List a GitHub user's pinned repositories. Returns the repositories a user pinned on their public profile (showcase signal). Empty when the user pinned nothing.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_repos`\n\n- **HTTP:** `GET /github/user/{username}/repos`\n- **What:** List a GitHub user's public repositories. Returns a page of a user's public repositories (tech-stack signal).\n- **Params:** `direction` (string, optional) — Sort direction; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type; `username` (string, **required**) — GitHub username\n\n## ChromeWebStore (12)\n\n### `chromewebstore_categories`\n\n- **HTTP:** `GET /chromewebstore/categories`\n- **What:** List Chrome Web Store categories and collections. Returns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.\n- **Params:** _none_\n\n### `chromewebstore_category`\n\n- **HTTP:** `GET /chromewebstore/category`\n- **What:** List items in a Chrome Web Store category. Returns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `category` (string, **required**) — Category slug under extensions; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_charts`\n\n- **HTTP:** `GET /chromewebstore/charts`\n- **What:** List a Chrome Web Store top chart. Returns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.\n- **Params:** `chart` (string, optional) — Top chart to list; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_collection`\n\n- **HTTP:** `GET /chromewebstore/collection`\n- **What:** List items in a curated Chrome Web Store collection. Returns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `collection` (string, **required**) — Curated collection slug; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_developer`\n\n- **HTTP:** `GET /chromewebstore/developer`\n- **What:** Retrieve a Chrome Web Store publisher and their items. Returns a Chrome Web Store publisher (developer) by publisher id, including the disclosed trader details — legal name, email, phone, address, website, and D-U-N-S number — plus the publisher's listed items (\"More from ...\"). Trader fields are only present for publishers that identify as EU traders. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store publisher id (u + 32 hex chars); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_item`\n\n- **HTTP:** `GET /chromewebstore/item`\n- **What:** Retrieve Chrome Web Store item details. Returns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_permissions`\n\n- **HTTP:** `GET /chromewebstore/permissions`\n- **What:** Retrieve a Chrome Web Store item's declared permissions. Returns the permissions a Chrome Web Store extension declares in its manifest: `permissions`, `optional_permissions`, `host_permissions`, `optional_host_permissions`, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_privacy`\n\n- **HTTP:** `GET /chromewebstore/privacy`\n- **What:** Retrieve a Chrome Web Store item's privacy disclosures. Returns an extension's privacy disclosures as the store renders them: the developer's data-use statement, whether it collects data, the standard data-handling declarations, and the privacy-policy link. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_reviews`\n\n- **HTTP:** `GET /chromewebstore/reviews`\n- **What:** Retrieve Chrome Web Store item reviews. Returns the reviews the store renders on an item's reviews page, each with author, star rating, text, posted/edited dates and reviewed version. Defaults: `num=20`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of reviews; `sort` (string, optional) — Review sort order\n\n### `chromewebstore_search`\n\n- **HTTP:** `GET /chromewebstore/search`\n- **What:** Search Chrome Web Store items. Returns Chrome Web Store search result cards for a keyword, each with id, name, rating, user count, publisher and detail URL. Defaults: `num=30`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of results; `term` (string, **required**) — Search keyword\n\n### `chromewebstore_similar`\n\n- **HTTP:** `GET /chromewebstore/similar`\n- **What:** Retrieve related Chrome Web Store items. Returns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_suggest`\n\n- **HTTP:** `GET /chromewebstore/suggest`\n- **What:** Suggest Chrome Web Store search terms. Returns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of suggestions; `term` (string, **required**) — Search prefix to autocomplete\n\nFile v1.0.15:skill-card.md\n\n## Description:\n\nResearches GitHub repositories, users, organizations, and Chrome Web Store extensions through the Crawlora API, returning normalized JSON for profiles, contributors, releases, trending projects, extension details, permissions, privacy, and reviews.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and technical researchers use this skill to gather public open-source project, developer, organization, and Chrome extension data for due diligence, market discovery, maintenance checks, and extension safety review.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Public research queries and identifiers are sent to Crawlora using the user's API key.\n\nMitigation: Use the skill only for public repository, profile, organization, and extension research, and avoid submitting sensitive internal identifiers or private investigation targets.\n\nRisk: The security review found the shell helper broader than its documented read-only endpoint catalog.\n\nMitigation: Review or constrain scripts/crawlora.sh before use in shared or automated environments, especially to reject POST and enforce exact documented paths when write-like requests are not needed.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/developer-oss-research)\n- [Crawlora](https://crawlora.net)\n- [Crawlora API base](https://api.crawlora.net/api/v1)\n\n## Skill Output:\n\n**Output Type(s):** [JSON, Shell commands, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; list endpoints are paginated.]\n\n## Skill Version(s):\n\n1.0.15 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.14: 5 files, 8474 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (4330b), skill-card.md (2229b), SKILL.md (4095b), _meta.json (142b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: developer-oss-research\ndescription: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n---\n\n# Developer & open-source research\n\nLook up GitHub repos, users, and orgs, plus Chrome Web Store extensions, as\nnormalized JSON from the Crawlora API — no scraping github.com or the\nChrome Web Store.\n\n## When to use this skill\n\n- \"Tell me about this GitHub repo/user/org\" (stars, languages, followers).\n- \"What's trending on GitHub right now?\" (by language).\n- \"Who contributes to this repo?\" / \"what are its releases?\"\n- \"Tell me about this Chrome extension\" (permissions, privacy, reviews).\n- \"Search extensions for <keyword>\" or \"what's similar to this extension?\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **GitHub repos** — `/github/search/repositories` (`q`, GitHub search\n   syntax works) to find one; `/github/repo/{owner}/{repo}` for detail, plus\n   `/contributors`, `/languages`, `/releases`, `/forks`.\n2. **GitHub users/orgs** — `/github/search/users` (`q`); `/github/user/{username}`\n   (+ `/followers`, `/following`, `/repos`, `/events`, `/pinned`) or\n   `/github/org/{org}` (+ `/repos`). `/github/trending` and\n   `/github/trending/developers` (filter by `language`, `since`) cover\n   what's hot right now.\n3. **Chrome Web Store** — `/chromewebstore/search` (`term`) to find an\n   extension `id`; `/chromewebstore/item` for detail, `/permissions`,\n   `/privacy`, `/reviews`, `/similar`. `/chromewebstore/charts` and\n   `/chromewebstore/category` cover browsing/trending; `/chromewebstore/developer`\n   lists everything one publisher ships.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every GitHub and\nChrome Web Store endpoint this skill uses.\n\n## Examples\n\n- **Repo due diligence:** `/github/repo/{owner}/{repo}` + `/contributors` +\n  `/releases` to gauge activity and maintenance health before depending on it.\n- **Trending scan:** `/github/trending` (by language) + `/github/trending/developers`\n  for a daily/weekly pulse on what's gaining traction.\n- **Extension safety check:** `/chromewebstore/item` + `/permissions` +\n  `/privacy` before recommending or installing a browser extension.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public profile/repo/extension pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **GitHub search accepts GitHub's own search qualifiers** (`language:`,\n  `stars:>N`, `org:`, …) inside `q` — same syntax as github.com's search bar.\n- List endpoints are paginated (`page`/`per_page`) — walk pages for full coverage.\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"developer-oss-research\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1789042477435\n}\n\nFile v1.0.14:reference/endpoints.md\n\n# developer-oss-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**29 endpoints across 2 platform group(s).**\n\n## GitHub (17)\n\n### `github_org`\n\n- **HTTP:** `GET /github/org/{org}`\n- **What:** Retrieve a GitHub organization profile. Returns a public GitHub organization profile (company-side enrichment).\n- **Params:** `org` (string, **required**) — GitHub organization login\n\n### `github_org_repos`\n\n- **HTTP:** `GET /github/org/{org}/repos`\n- **What:** List a GitHub organization's public repositories. Returns a page of an organization's public repositories (company tech stack).\n- **Params:** `direction` (string, optional) — Sort direction; `org` (string, **required**) — GitHub organization login; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type\n\n### `github_repo`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}`\n- **What:** Retrieve a GitHub repository. Returns public detail for a single repository (the core project object).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_contributors`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/contributors`\n- **What:** List a repository's contributors. Returns a page of a repository's contributors (who builds a project).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_repo_forks`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/forks`\n- **What:** List a repository's public forks. Returns a page of a repository's public forks (adopter signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name; `sort` (string, optional) — Sort order\n\n### `github_repo_languages`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/languages`\n- **What:** Retrieve a repository's language breakdown. Returns the language byte breakdown for a repository, sorted by bytes descending (tech fingerprint).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_releases`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/releases`\n- **What:** List a repository's releases. Returns a page of a repository's releases (momentum/health signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_search_repositories`\n\n- **HTTP:** `GET /github/search/repositories`\n- **What:** Search public GitHub repositories. Searches public GitHub repositories (market/competitive discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub repository search query; `sort` (string, optional) — Sort field\n\n### `github_search_users`\n\n- **HTTP:** `GET /github/search/users`\n- **What:** Search public GitHub users. Searches public GitHub users (developer discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub user search query; `sort` (string, optional) — Sort field\n\n### `github_trending`\n\n- **HTTP:** `GET /github/trending`\n- **What:** List trending GitHub repositories. Returns the repositories on GitHub's trending page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_trending_developers`\n\n- **HTTP:** `GET /github/trending/developers`\n- **What:** List trending GitHub developers. Returns the developers on GitHub's trending developers page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_user`\n\n- **HTTP:** `GET /github/user/{username}`\n- **What:** Retrieve a GitHub user profile. Returns a public GitHub user's profile plus user-published social links. Email is included only when the user has made it public on their profile.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_events`\n\n- **HTTP:** `GET /github/user/{username}/events`\n- **What:** List a GitHub user's recent public activity. Returns a page of a user's recent public events, normalized to type, repository, and timestamp (freshness signal).\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_followers`\n\n- **HTTP:** `GET /github/user/{username}/followers`\n- **What:** List a GitHub user's followers. Returns a page of the public accounts following a GitHub user.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_following`\n\n- **HTTP:** `GET /github/user/{username}/following`\n- **What:** List who a GitHub user follows. Returns a page of the public accounts a GitHub user follows.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_pinned`\n\n- **HTTP:** `GET /github/user/{username}/pinned`\n- **What:** List a GitHub user's pinned repositories. Returns the repositories a user pinned on their public profile (showcase signal). Empty when the user pinned nothing.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_repos`\n\n- **HTTP:** `GET /github/user/{username}/repos`\n- **What:** List a GitHub user's public repositories. Returns a page of a user's public repositories (tech-stack signal).\n- **Params:** `direction` (string, optional) — Sort direction; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type; `username` (string, **required**) — GitHub username\n\n## ChromeWebStore (12)\n\n### `chromewebstore_categories`\n\n- **HTTP:** `GET /chromewebstore/categories`\n- **What:** List Chrome Web Store categories and collections. Returns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.\n- **Params:** _none_\n\n### `chromewebstore_category`\n\n- **HTTP:** `GET /chromewebstore/category`\n- **What:** List items in a Chrome Web Store category. Returns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `category` (string, **required**) — Category slug under extensions; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_charts`\n\n- **HTTP:** `GET /chromewebstore/charts`\n- **What:** List a Chrome Web Store top chart. Returns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.\n- **Params:** `chart` (string, optional) — Top chart to list; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_collection`\n\n- **HTTP:** `GET /chromewebstore/collection`\n- **What:** List items in a curated Chrome Web Store collection. Returns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `collection` (string, **required**) — Curated collection slug; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_developer`\n\n- **HTTP:** `GET /chromewebstore/developer`\n- **What:** Retrieve a Chrome Web Store publisher and their items. Returns a Chrome Web Store publisher (developer) by publisher id, including the disclosed trader details — legal name, email, phone, address, website, and D-U-N-S number — plus the publisher's listed items (\"More from ...\"). Trader fields are only present for publishers that identify as EU traders. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store publisher id (u + 32 hex chars); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_item`\n\n- **HTTP:** `GET /chromewebstore/item`\n- **What:** Retrieve Chrome Web Store item details. Returns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_permissions`\n\n- **HTTP:** `GET /chromewebstore/permissions`\n- **What:** Retrieve a Chrome Web Store item's declared permissions. Returns the permissions a Chrome Web Store extension declares in its manifest: `permissions`, `optional_permissions`, `host_permissions`, `optional_host_permissions`, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_privacy`\n\n- **HTTP:** `GET /chromewebstore/privacy`\n- **What:** Retrieve a Chrome Web Store item's privacy disclosures. Returns an extension's privacy disclosures as the store renders them: the developer's data-use statement, whether it collects data, the standard data-handling declarations, and the privacy-policy link. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_reviews`\n\n- **HTTP:** `GET /chromewebstore/reviews`\n- **What:** Retrieve Chrome Web Store item reviews. Returns the reviews the store renders on an item's reviews page, each with author, star rating, text, posted/edited dates and reviewed version. Defaults: `num=20`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of reviews; `sort` (string, optional) — Review sort order\n\n### `chromewebstore_search`\n\n- **HTTP:** `GET /chromewebstore/search`\n- **What:** Search Chrome Web Store items. Returns Chrome Web Store search result cards for a keyword, each with id, name, rating, user count, publisher and detail URL. Defaults: `num=30`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of results; `term` (string, **required**) — Search keyword\n\n### `chromewebstore_similar`\n\n- **HTTP:** `GET /chromewebstore/similar`\n- **What:** Retrieve related Chrome Web Store items. Returns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_suggest`\n\n- **HTTP:** `GET /chromewebstore/suggest`\n- **What:** Suggest Chrome Web Store search terms. Returns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of suggestions; `term` (string, **required**) — Search prefix to autocomplete\n\nFile v1.0.14:skill-card.md\n\n## Description:\n\nResearches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API - search, profiles, contributors, releases, trending, and extension detail/reviews/permissions - returning clean JSON.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and technical researchers use this skill to collect public GitHub repository, user, organization, trending, contributor, release, and Chrome Web Store extension details as normalized JSON for due diligence, discovery, and extension safety review.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The helper can use a Crawlora API key on broader paths and POST methods than the documented read-only catalog describes.\n\nMitigation: Review before installing, use only a Crawlora API key you are comfortable spending credits from, and restrict agent execution to the provided helper until route matching and GET-only enforcement are tightened.\n\nRisk: Research queries may disclose confidential internal repository names, investigation terms, or extension review targets to the Crawlora API.\n\nMitigation: Avoid submitting confidential internal repo names or sensitive investigation terms unless disclosure to Crawlora is approved.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/developer-oss-research)\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Shell commands, Guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and uses public GitHub and Chrome Web Store data through the Crawlora API.]\n\n## Skill Version(s):\n\n1.0.14 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.13: 5 files, 8412 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (4005b), skill-card.md (2549b), SKILL.md (4118b), _meta.json (142b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: developer-oss-research\ndescription: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n---\n\n# Developer & open-source research\n\nLook up GitHub repos, users, and orgs, plus Chrome Web Store extensions, as\nnormalized JSON from the Crawlora API — no scraping github.com or the\nChrome Web Store.\n\n## When to use this skill\n\n- \"Tell me about this GitHub repo/user/org\" (stars, languages, followers).\n- \"What's trending on GitHub right now?\" (by language).\n- \"Who contributes to this repo?\" / \"what are its releases?\"\n- \"Tell me about this Chrome extension\" (permissions, privacy, reviews).\n- \"Search extensions for <keyword>\" or \"what's similar to this extension?\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **GitHub repos** — `/github/search/repositories` (`q`, GitHub search\n   syntax works) to find one; `/github/repo/{owner}/{repo}` for detail, plus\n   `/contributors`, `/languages`, `/releases`, `/forks`.\n2. **GitHub users/orgs** — `/github/search/users` (`q`); `/github/user/{username}`\n   (+ `/followers`, `/following`, `/repos`, `/events`, `/pinned`) or\n   `/github/org/{org}` (+ `/repos`). `/github/trending` and\n   `/github/trending/developers` (filter by `language`, `since`) cover\n   what's hot right now.\n3. **Chrome Web Store** — `/chromewebstore/search` (`term`) to find an\n   extension `id`; `/chromewebstore/item` for detail, `/permissions`,\n   `/privacy`, `/reviews`, `/similar`. `/chromewebstore/charts` and\n   `/chromewebstore/category` cover browsing/trending; `/chromewebstore/developer`\n   lists everything one publisher ships.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/github/user/torvalds\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every GitHub and\nChrome Web Store endpoint this skill uses.\n\n## Examples\n\n- **Repo due diligence:** `/github/repo/{owner}/{repo}` + `/contributors` +\n  `/releases` to gauge activity and maintenance health before depending on it.\n- **Trending scan:** `/github/trending` (by language) + `/github/trending/developers`\n  for a daily/weekly pulse on what's gaining traction.\n- **Extension safety check:** `/chromewebstore/item` + `/permissions` +\n  `/privacy` before recommending or installing a browser extension.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public profile/repo/extension pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **GitHub search accepts GitHub's own search qualifiers** (`language:`,\n  `stars:>N`, `org:`, …) inside `q` — same syntax as github.com's search bar.\n- List endpoints are paginated (`page`/`per_page`) — walk pages for full coverage.\n\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"developer-oss-research\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1789041931897\n}\n\nFile v1.0.13:reference/endpoints.md\n\n# developer-oss-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**29 endpoints across 2 platform group(s).**\n\n## GitHub (17)\n\n### `github_org`\n\n- **HTTP:** `GET /github/org/{org}`\n- **What:** Retrieve a GitHub organization profile. Returns a public GitHub organization profile (company-side enrichment).\n- **Params:** `org` (string, **required**) — GitHub organization login\n\n### `github_org_repos`\n\n- **HTTP:** `GET /github/org/{org}/repos`\n- **What:** List a GitHub organization's public repositories. Returns a page of an organization's public repositories (company tech stack).\n- **Params:** `direction` (string, optional) — Sort direction; `org` (string, **required**) — GitHub organization login; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type\n\n### `github_repo`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}`\n- **What:** Retrieve a GitHub repository. Returns public detail for a single repository (the core project object).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_contributors`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/contributors`\n- **What:** List a repository's contributors. Returns a page of a repository's contributors (who builds a project).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_repo_forks`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/forks`\n- **What:** List a repository's public forks. Returns a page of a repository's public forks (adopter signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name; `sort` (string, optional) — Sort order\n\n### `github_repo_languages`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/languages`\n- **What:** Retrieve a repository's language breakdown. Returns the language byte breakdown for a repository, sorted by bytes descending (tech fingerprint).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_releases`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/releases`\n- **What:** List a repository's releases. Returns a page of a repository's releases (momentum/health signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_search_repositories`\n\n- **HTTP:** `GET /github/search/repositories`\n- **What:** Search public GitHub repositories. Searches public GitHub repositories (market/competitive discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub repository search query; `sort` (string, optional) — Sort field\n\n### `github_search_users`\n\n- **HTTP:** `GET /github/search/users`\n- **What:** Search public GitHub users. Searches public GitHub users (developer discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub user search query; `sort` (string, optional) — Sort field\n\n### `github_trending`\n\n- **HTTP:** `GET /github/trending`\n- **What:** List trending GitHub repositories. Returns the repositories on GitHub's trending page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_trending_developers`\n\n- **HTTP:** `GET /github/trending/developers`\n- **What:** List trending GitHub developers. Returns the developers on GitHub's trending developers page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_user`\n\n- **HTTP:** `GET /github/user/{username}`\n- **What:** Retrieve a GitHub user profile. Returns a public GitHub user's profile plus user-published social links. Email is included only when the user has made it public on their profile.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_events`\n\n- **HTTP:** `GET /github/user/{username}/events`\n- **What:** List a GitHub user's recent public activity. Returns a page of a user's recent public events, normalized to type, repository, and timestamp (freshness signal).\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_followers`\n\n- **HTTP:** `GET /github/user/{username}/followers`\n- **What:** List a GitHub user's followers. Returns a page of the public accounts following a GitHub user.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_following`\n\n- **HTTP:** `GET /github/user/{username}/following`\n- **What:** List who a GitHub user follows. Returns a page of the public accounts a GitHub user follows.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_pinned`\n\n- **HTTP:** `GET /github/user/{username}/pinned`\n- **What:** List a GitHub user's pinned repositories. Returns the repositories a user pinned on their public profile (showcase signal). Empty when the user pinned nothing.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_repos`\n\n- **HTTP:** `GET /github/user/{username}/repos`\n- **What:** List a GitHub user's public repositories. Returns a page of a user's public repositories (tech-stack signal).\n- **Params:** `direction` (string, optional) — Sort direction; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type; `username` (string, **required**) — GitHub username\n\n## ChromeWebStore (12)\n\n### `chromewebstore_categories`\n\n- **HTTP:** `GET /chromewebstore/categories`\n- **What:** List Chrome Web Store categories and collections. Returns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.\n- **Params:** _none_\n\n### `chromewebstore_category`\n\n- **HTTP:** `GET /chromewebstore/category`\n- **What:** List items in a Chrome Web Store category. Returns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `category` (string, **required**) — Category slug under extensions; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_charts`\n\n- **HTTP:** `GET /chromewebstore/charts`\n- **What:** List a Chrome Web Store top chart. Returns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.\n- **Params:** `chart` (string, optional) — Top chart to list; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_collection`\n\n- **HTTP:** `GET /chromewebstore/collection`\n- **What:** List items in a curated Chrome Web Store collection. Returns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `collection` (string, **required**) — Curated collection slug; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_developer`\n\n- **HTTP:** `GET /chromewebstore/developer`\n- **What:** Retrieve a Chrome Web Store publisher and their items. Returns a Chrome Web Store publisher (developer) by publisher id, including the disclosed trader details — legal name, email, phone, address, website, and D-U-N-S number — plus the publisher's listed items (\"More from ...\"). Trader fields are only present for publishers that identify as EU traders. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store publisher id (u + 32 hex chars); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_item`\n\n- **HTTP:** `GET /chromewebstore/item`\n- **What:** Retrieve Chrome Web Store item details. Returns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_permissions`\n\n- **HTTP:** `GET /chromewebstore/permissions`\n- **What:** Retrieve a Chrome Web Store item's declared permissions. Returns the permissions a Chrome Web Store extension declares in its manifest: `permissions`, `optional_permissions`, `host_permissions`, `optional_host_permissions`, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_privacy`\n\n- **HTTP:** `GET /chromewebstore/privacy`\n- **What:** Retrieve a Chrome Web Store item's privacy disclosures. Returns an extension's privacy disclosures as the store renders them: the developer's data-use statement, whether it collects data, the standard data-handling declarations, and the privacy-policy link. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_reviews`\n\n- **HTTP:** `GET /chromewebstore/reviews`\n- **What:** Retrieve Chrome Web Store item reviews. Returns the reviews the store renders on an item's reviews page, each with author, star rating, text, posted/edited dates and reviewed version. Defaults: `num=20`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of reviews; `sort` (string, optional) — Review sort order\n\n### `chromewebstore_search`\n\n- **HTTP:** `GET /chromewebstore/search`\n- **What:** Search Chrome Web Store items. Returns Chrome Web Store search result cards for a keyword, each with id, name, rating, user count, publisher and detail URL. Defaults: `num=30`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of results; `term` (string, **required**) — Search keyword\n\n### `chromewebstore_similar`\n\n- **HTTP:** `GET /chromewebstore/similar`\n- **What:** Retrieve related Chrome Web Store items. Returns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_suggest`\n\n- **HTTP:** `GET /chromewebstore/suggest`\n- **What:** Suggest Chrome Web Store search terms. Returns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of suggestions; `term` (string, **required**) — Search prefix to autocomplete\n\nFile v1.0.13:skill-card.md\n\n## Description:\n\nResearches public GitHub repositories, users, organizations, and Chrome Web Store extensions through the Crawlora API and returns normalized JSON for repo, developer, trending, extension, permissions, privacy, and review workflows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and technical researchers use this skill to gather public OSS project, developer, organization, trending, and Chrome extension intelligence as normalized JSON through Crawlora API calls. It supports repository due diligence, contributor and release review, trending scans, and Chrome extension permission, privacy, and review checks.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requires a Crawlora API key and sends research queries to Crawlora.\n\nMitigation: Install only when this data flow is acceptable, keep the key in CRAWLORA_API_KEY, and do not hardcode, commit, or pass the key in query parameters.\n\nRisk: Server security evidence marks the release for Review because the helper can use a user's Crawlora API key on methods and nested routes beyond the documented catalog.\n\nMitigation: Prefer documented GET endpoints, avoid undocumented paths or POST requests unless explicitly reviewed, and inspect generated shell commands before execution.\n\nRisk: Returned publisher contact details can include sensitive public information.\n\nMitigation: Handle publisher details from Chrome Web Store developer endpoints as potentially sensitive public data and share only what is necessary for the user's task.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/developer-oss-research)\n\n## Skill Output:\n\n**Output Type(s):** [JSON, Shell commands, Guidance]\n\n**Output Format:** [JSON responses with Markdown guidance and inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; uses public GitHub and Chrome Web Store data through documented Crawlora endpoints.]\n\n## Skill Version(s):\n\n1.0.13 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.12: 5 files, 8074 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (3705b), skill-card.md (1961b), SKILL.md (4118b), _meta.json (142b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: developer-oss-research\ndescription: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n---\n\n# Developer & open-source research\n\nLook up GitHub repos, users, and orgs, plus Chrome Web Store extensions, as\nnormalized JSON from the Crawlora API — no scraping github.com or the\nChrome Web Store.\n\n## When to use this skill\n\n- \"Tell me about this GitHub repo/user/org\" (stars, languages, followers).\n- \"What's trending on GitHub right now?\" (by language).\n- \"Who contributes to this repo?\" / \"what are its releases?\"\n- \"Tell me about this Chrome extension\" (permissions, privacy, reviews).\n- \"Search extensions for <keyword>\" or \"what's similar to this extension?\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **GitHub repos** — `/github/search/repositories` (`q`, GitHub search\n   syntax works) to find one; `/github/repo/{owner}/{repo}` for detail, plus\n   `/contributors`, `/languages`, `/releases`, `/forks`.\n2. **GitHub users/orgs** — `/github/search/users` (`q`); `/github/user/{username}`\n   (+ `/followers`, `/following`, `/repos`, `/events`, `/pinned`) or\n   `/github/org/{org}` (+ `/repos`). `/github/trending` and\n   `/github/trending/developers` (filter by `language`, `since`) cover\n   what's hot right now.\n3. **Chrome Web Store** — `/chromewebstore/search` (`term`) to find an\n   extension `id`; `/chromewebstore/item` for detail, `/permissions`,\n   `/privacy`, `/reviews`, `/similar`. `/chromewebstore/charts` and\n   `/chromewebstore/category` cover browsing/trending; `/chromewebstore/developer`\n   lists everything one publisher ships.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/github/user/torvalds\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every GitHub and\nChrome Web Store endpoint this skill uses.\n\n## Examples\n\n- **Repo due diligence:** `/github/repo/{owner}/{repo}` + `/contributors` +\n  `/releases` to gauge activity and maintenance health before depending on it.\n- **Trending scan:** `/github/trending` (by language) + `/github/trending/developers`\n  for a daily/weekly pulse on what's gaining traction.\n- **Extension safety check:** `/chromewebstore/item` + `/permissions` +\n  `/privacy` before recommending or installing a browser extension.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public profile/repo/extension pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **GitHub search accepts GitHub's own search qualifiers** (`language:`,\n  `stars:>N`, `org:`, …) inside `q` — same syntax as github.com's search bar.\n- List endpoints are paginated (`page`/`per_page`) — walk pages for full coverage.\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"developer-oss-research\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1789041180667\n}\n\nFile v1.0.12:reference/endpoints.md\n\n# developer-oss-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**29 endpoints across 2 platform group(s).**\n\n## GitHub (17)\n\n### `github_org`\n\n- **HTTP:** `GET /github/org/{org}`\n- **What:** Retrieve a GitHub organization profile. Returns a public GitHub organization profile (company-side enrichment).\n- **Params:** `org` (string, **required**) — GitHub organization login\n\n### `github_org_repos`\n\n- **HTTP:** `GET /github/org/{org}/repos`\n- **What:** List a GitHub organization's public repositories. Returns a page of an organization's public repositories (company tech stack).\n- **Params:** `direction` (string, optional) — Sort direction; `org` (string, **required**) — GitHub organization login; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type\n\n### `github_repo`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}`\n- **What:** Retrieve a GitHub repository. Returns public detail for a single repository (the core project object).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_contributors`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/contributors`\n- **What:** List a repository's contributors. Returns a page of a repository's contributors (who builds a project).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_repo_forks`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/forks`\n- **What:** List a repository's public forks. Returns a page of a repository's public forks (adopter signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name; `sort` (string, optional) — Sort order\n\n### `github_repo_languages`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/languages`\n- **What:** Retrieve a repository's language breakdown. Returns the language byte breakdown for a repository, sorted by bytes descending (tech fingerprint).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_releases`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/releases`\n- **What:** List a repository's releases. Returns a page of a repository's releases (momentum/health signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_search_repositories`\n\n- **HTTP:** `GET /github/search/repositories`\n- **What:** Search public GitHub repositories. Searches public GitHub repositories (market/competitive discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub repository search query; `sort` (string, optional) — Sort field\n\n### `github_search_users`\n\n- **HTTP:** `GET /github/search/users`\n- **What:** Search public GitHub users. Searches public GitHub users (developer discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub user search query; `sort` (string, optional) — Sort field\n\n### `github_trending`\n\n- **HTTP:** `GET /github/trending`\n- **What:** List trending GitHub repositories. Returns the repositories on GitHub's trending page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_trending_developers`\n\n- **HTTP:** `GET /github/trending/developers`\n- **What:** List trending GitHub developers. Returns the developers on GitHub's trending developers page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_user`\n\n- **HTTP:** `GET /github/user/{username}`\n- **What:** Retrieve a GitHub user profile. Returns a public GitHub user's profile plus user-published social links. Email is included only when the user has made it public on their profile.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_events`\n\n- **HTTP:** `GET /github/user/{username}/events`\n- **What:** List a GitHub user's recent public activity. Returns a page of a user's recent public events, normalized to type, repository, and timestamp (freshness signal).\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_followers`\n\n- **HTTP:** `GET /github/user/{username}/followers`\n- **What:** List a GitHub user's followers. Returns a page of the public accounts following a GitHub user.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_following`\n\n- **HTTP:** `GET /github/user/{username}/following`\n- **What:** List who a GitHub user follows. Returns a page of the public accounts a GitHub user follows.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_pinned`\n\n- **HTTP:** `GET /github/user/{username}/pinned`\n- **What:** List a GitHub user's pinned repositories. Returns the repositories a user pinned on their public profile (showcase signal). Empty when the user pinned nothing.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_repos`\n\n- **HTTP:** `GET /github/user/{username}/repos`\n- **What:** List a GitHub user's public repositories. Returns a page of a user's public repositories (tech-stack signal).\n- **Params:** `direction` (string, optional) — Sort direction; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type; `username` (string, **required**) — GitHub username\n\n## ChromeWebStore (12)\n\n### `chromewebstore_categories`\n\n- **HTTP:** `GET /chromewebstore/categories`\n- **What:** List Chrome Web Store categories and collections. Returns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.\n- **Params:** _none_\n\n### `chromewebstore_category`\n\n- **HTTP:** `GET /chromewebstore/category`\n- **What:** List items in a Chrome Web Store category. Returns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `category` (string, **required**) — Category slug under extensions; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_charts`\n\n- **HTTP:** `GET /chromewebstore/charts`\n- **What:** List a Chrome Web Store top chart. Returns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.\n- **Params:** `chart` (string, optional) — Top chart to list; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_collection`\n\n- **HTTP:** `GET /chromewebstore/collection`\n- **What:** List items in a curated Chrome Web Store collection. Returns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `collection` (string, **required**) — Curated collection slug; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_developer`\n\n- **HTTP:** `GET /chromewebstore/developer`\n- **What:** Retrieve a Chrome Web Store publisher and their items. Returns a Chrome Web Store publisher (developer) by publisher id, including the disclosed trader details — legal name, email, phone, address, website, and D-U-N-S number — plus the publisher's listed items (\"More from ...\"). Trader fields are only present for publishers that identify as EU traders. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store publisher id (u + 32 hex chars); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_item`\n\n- **HTTP:** `GET /chromewebstore/item`\n- **What:** Retrieve Chrome Web Store item details. Returns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_permissions`\n\n- **HTTP:** `GET /chromewebstore/permissions`\n- **What:** Retrieve a Chrome Web Store item's declared permissions. Returns the permissions a Chrome Web Store extension declares in its manifest: `permissions`, `optional_permissions`, `host_permissions`, `optional_host_permissions`, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_privacy`\n\n- **HTTP:** `GET /chromewebstore/privacy`\n- **What:** Retrieve a Chrome Web Store item's privacy disclosures. Returns an extension's privacy disclosures as the store renders them: the developer's data-use statement, whether it collects data, the standard data-handling declarations, and the privacy-policy link. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_reviews`\n\n- **HTTP:** `GET /chromewebstore/reviews`\n- **What:** Retrieve Chrome Web Store item reviews. Returns the reviews the store renders on an item's reviews page, each with author, star rating, text, posted/edited dates and reviewed version. Defaults: `num=20`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of reviews; `sort` (string, optional) — Review sort order\n\n### `chromewebstore_search`\n\n- **HTTP:** `GET /chromewebstore/search`\n- **What:** Search Chrome Web Store items. Returns Chrome Web Store search result cards for a keyword, each with id, name, rating, user count, publisher and detail URL. Defaults: `num=30`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of results; `term` (string, **required**) — Search keyword\n\n### `chromewebstore_similar`\n\n- **HTTP:** `GET /chromewebstore/similar`\n- **What:** Retrieve related Chrome Web Store items. Returns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_suggest`\n\n- **HTTP:** `GET /chromewebstore/suggest`\n- **What:** Suggest Chrome Web Store search terms. Returns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of suggestions; `term` (string, **required**) — Search prefix to autocomplete\n\nFile v1.0.12:skill-card.md\n\n## Description:\n\nResearches public GitHub repositories, users, organizations, and Chrome Web Store extensions through the Crawlora API and returns normalized JSON for agent workflows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to research public open-source projects, GitHub developers or organizations, and Chrome Web Store extensions before adopting, recommending, or analyzing them.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Queries and API requests are sent to Crawlora with the user's API key.\n\nMitigation: Use the skill only for public research, avoid secrets or confidential terms in requests, and keep the key in CRAWLORA_API_KEY rather than hardcoding it.\n\nRisk: The security summary reports that the helper can send the Crawlora key to unintended same-service routes.\n\nMitigation: Review or patch scripts/crawlora.sh before use when strict endpoint and method enforcement is required.\n\n## Reference(s):\n\n- [Endpoint reference](reference/endpoints.md)\n- [Crawlora API service](https://api.crawlora.net/api/v1)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/developer-oss-research)\n\n## Skill Output:\n\n**Output Type(s):** [JSON, Shell commands, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY and uses documented Crawlora API endpoints for public data.]\n\n## Skill Version(s):\n\n1.0.12 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.11: 5 files, 8151 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (3657b), skill-card.md (2218b), SKILL.md (4118b), _meta.json (142b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: developer-oss-research\ndescription: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n---\n\n# Developer & open-source research\n\nLook up GitHub repos, users, and orgs, plus Chrome Web Store extensions, as\nnormalized JSON from the Crawlora API — no scraping github.com or the\nChrome Web Store.\n\n## When to use this skill\n\n- \"Tell me about this GitHub repo/user/org\" (stars, languages, followers).\n- \"What's trending on GitHub right now?\" (by language).\n- \"Who contributes to this repo?\" / \"what are its releases?\"\n- \"Tell me about this Chrome extension\" (permissions, privacy, reviews).\n- \"Search extensions for <keyword>\" or \"what's similar to this extension?\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- All requests: `x-api-key: $CRAWLORA_API_KEY` against\n  `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **GitHub repos** — `/github/search/repositories` (`q`, GitHub search\n   syntax works) to find one; `/github/repo/{owner}/{repo}` for detail, plus\n   `/contributors`, `/languages`, `/releases`, `/forks`.\n2. **GitHub users/orgs** — `/github/search/users` (`q`); `/github/user/{username}`\n   (+ `/followers`, `/following`, `/repos`, `/events`, `/pinned`) or\n   `/github/org/{org}` (+ `/repos`). `/github/trending` and\n   `/github/trending/developers` (filter by `language`, `since`) cover\n   what's hot right now.\n3. **Chrome Web Store** — `/chromewebstore/search` (`term`) to find an\n   extension `id`; `/chromewebstore/item` for detail, `/permissions`,\n   `/privacy`, `/reviews`, `/similar`. `/chromewebstore/charts` and\n   `/chromewebstore/category` cover browsing/trending; `/chromewebstore/developer`\n   lists everything one publisher ships.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'\n```\n\nRaw `curl` fallback:\n\n```sh\ncurl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\\n  \"https://api.crawlora.net/api/v1/github/user/torvalds\" | jq '.'\n```\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every GitHub and\nChrome Web Store endpoint this skill uses.\n\n## Examples\n\n- **Repo due diligence:** `/github/repo/{owner}/{repo}` + `/contributors` +\n  `/releases` to gauge activity and maintenance health before depending on it.\n- **Trending scan:** `/github/trending` (by language) + `/github/trending/developers`\n  for a daily/weekly pulse on what's gaining traction.\n- **Extension safety check:** `/chromewebstore/item` + `/permissions` +\n  `/privacy` before recommending or installing a browser extension.\n\n## Notes & limits\n\n- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.\n  Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- **Public data only** — public profile/repo/extension pages.\n- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.\n- **GitHub search accepts GitHub's own search qualifiers** (`language:`,\n  `stars:>N`, `org:`, …) inside `q` — same syntax as github.com's search bar.\n- List endpoints are paginated (`page`/`per_page`) — walk pages for full coverage.\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"developer-oss-research\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1789040273342\n}\n\nFile v1.0.11:reference/endpoints.md\n\n# developer-oss-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**29 endpoints across 2 platform group(s).**\n\n## GitHub (17)\n\n### `github_org`\n\n- **HTTP:** `GET /github/org/{org}`\n- **What:** Retrieve a GitHub organization profile. Returns a public GitHub organization profile (company-side enrichment).\n- **Params:** `org` (string, **required**) — GitHub organization login\n\n### `github_org_repos`\n\n- **HTTP:** `GET /github/org/{org}/repos`\n- **What:** List a GitHub organization's public repositories. Returns a page of an organization's public repositories (company tech stack).\n- **Params:** `direction` (string, optional) — Sort direction; `org` (string, **required**) — GitHub organization login; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type\n\n### `github_repo`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}`\n- **What:** Retrieve a GitHub repository. Returns public detail for a single repository (the core project object).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_contributors`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/contributors`\n- **What:** List a repository's contributors. Returns a page of a repository's contributors (who builds a project).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_repo_forks`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/forks`\n- **What:** List a repository's public forks. Returns a page of a repository's public forks (adopter signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name; `sort` (string, optional) — Sort order\n\n### `github_repo_languages`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/languages`\n- **What:** Retrieve a repository's language breakdown. Returns the language byte breakdown for a repository, sorted by bytes descending (tech fingerprint).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_releases`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/releases`\n- **What:** List a repository's releases. Returns a page of a repository's releases (momentum/health signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_search_repositories`\n\n- **HTTP:** `GET /github/search/repositories`\n- **What:** Search public GitHub repositories. Searches public GitHub repositories (market/competitive discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub repository search query; `sort` (string, optional) — Sort field\n\n### `github_search_users`\n\n- **HTTP:** `GET /github/search/users`\n- **What:** Search public GitHub users. Searches public GitHub users (developer discovery). Unauthenticated search is rate limited to roughly 10 requests per minute.\n- **Params:** `order` (string, optional) — Sort order; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `q` (string, **required**) — GitHub user search query; `sort` (string, optional) — Sort field\n\n### `github_trending`\n\n- **HTTP:** `GET /github/trending`\n- **What:** List trending GitHub repositories. Returns the repositories on GitHub's trending page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_trending_developers`\n\n- **HTTP:** `GET /github/trending/developers`\n- **What:** List trending GitHub developers. Returns the developers on GitHub's trending developers page (market discovery).\n- **Params:** `language` (string, optional) — Programming language filter (e.g. go, python); `since` (string, optional) — Time window\n\n### `github_user`\n\n- **HTTP:** `GET /github/user/{username}`\n- **What:** Retrieve a GitHub user profile. Returns a public GitHub user's profile plus user-published social links. Email is included only when the user has made it public on their profile.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_events`\n\n- **HTTP:** `GET /github/user/{username}/events`\n- **What:** List a GitHub user's recent public activity. Returns a page of a user's recent public events, normalized to type, repository, and timestamp (freshness signal).\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_followers`\n\n- **HTTP:** `GET /github/user/{username}/followers`\n- **What:** List a GitHub user's followers. Returns a page of the public accounts following a GitHub user.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_following`\n\n- **HTTP:** `GET /github/user/{username}/following`\n- **What:** List who a GitHub user follows. Returns a page of the public accounts a GitHub user follows.\n- **Params:** `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `username` (string, **required**) — GitHub username\n\n### `github_user_pinned`\n\n- **HTTP:** `GET /github/user/{username}/pinned`\n- **What:** List a GitHub user's pinned repositories. Returns the repositories a user pinned on their public profile (showcase signal). Empty when the user pinned nothing.\n- **Params:** `username` (string, **required**) — GitHub username\n\n### `github_user_repos`\n\n- **HTTP:** `GET /github/user/{username}/repos`\n- **What:** List a GitHub user's public repositories. Returns a page of a user's public repositories (tech-stack signal).\n- **Params:** `direction` (string, optional) — Sort direction; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type; `username` (string, **required**) — GitHub username\n\n## ChromeWebStore (12)\n\n### `chromewebstore_categories`\n\n- **HTTP:** `GET /chromewebstore/categories`\n- **What:** List Chrome Web Store categories and collections. Returns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.\n- **Params:** _none_\n\n### `chromewebstore_category`\n\n- **HTTP:** `GET /chromewebstore/category`\n- **What:** List items in a Chrome Web Store category. Returns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `category` (string, **required**) — Category slug under extensions; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_charts`\n\n- **HTTP:** `GET /chromewebstore/charts`\n- **What:** List a Chrome Web Store top chart. Returns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.\n- **Params:** `chart` (string, optional) — Top chart to list; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_collection`\n\n- **HTTP:** `GET /chromewebstore/collection`\n- **What:** List items in a curated Chrome Web Store collection. Returns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `collection` (string, **required**) — Curated collection slug; `country` (string, optional) — Two-letter storefront country code; `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_developer`\n\n- **HTTP:** `GET /chromewebstore/developer`\n- **What:** Retrieve a Chrome Web Store publisher and their items. Returns a Chrome Web Store publisher (developer) by publisher id, including the disclosed trader details — legal name, email, phone, address, website, and D-U-N-S number — plus the publisher's listed items (\"More from ...\"). Trader fields are only present for publishers that identify as EU traders. Defaults: `num=50`, `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store publisher id (u + 32 hex chars); `lang` (string, optional) — Two-letter language code; `num` (integer, optional) — Maximum number of items\n\n### `chromewebstore_item`\n\n- **HTTP:** `GET /chromewebstore/item`\n- **What:** Retrieve Chrome Web Store item details. Returns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_permissions`\n\n- **HTTP:** `GET /chromewebstore/permissions`\n- **What:** Retrieve a Chrome Web Store item's declared permissions. Returns the permissions a Chrome Web Store extension declares in its manifest: `permissions`, `optional_permissions`, `host_permissions`, `optional_host_permissions`, plus `manifest_version` and `min_browser_version`. Useful for security and supply-chain review. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension id); `lang` (string, optional) — Two-letter language code\n\n### `chromewebstore_privacy`\n\n- **HTTP:** `GET /chromewebstore/privacy`\n- **What:** Retrieve a Chrome Web Store item's privacy disclosures. Returns an extension's privacy disclosures as the store renders them: the developer's data-use statement, whether it collects data, the standard data-handling declarations, and the privacy-policy link. Defaults: `country=us`, `lang=en`.\n- **Params:** `country` (string, optional) — Two-letter storefront country code; `id` (string, **required**) — Chrome Web Store item id (32-character extension/theme id)\n\nArchive v1.0.10: 5 files, 7560 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (2005b), skill-card.md (2248b), SKILL.md (4092b), _meta.json (142b)\n\nArchive v1.0.9: 5 files, 7436 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (1870b), skill-card.md (2085b), SKILL.md (4092b), _meta.json (141b)\n\nArchive v1.0.8: 5 files, 7403 bytes\n\nFiles: reference/endpoints.md (14366b), scripts/crawlora.sh (1796b), skill-card.md (2106b), SKILL.md (4092b), _meta.json (141b)","readmeExcerpt":"Skill: developer-oss-research Owner: crawlora-org Summary: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews. T","codeSnippets":[],"executableExamples":[{"language":"sh","snippet":"# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'"},{"language":"sh","snippet":"# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'"},{"language":"sh","snippet":"# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'"},{"language":"sh","snippet":"# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'"},{"language":"sh","snippet":"# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'"},{"language":"sh","snippet":"curl -fsS -H \"x-api-key: $CRAWLORA_API_KEY\" \\"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: developer-oss-research\ndescription: Researches GitHub repos/users/orgs and Chrome Web Store extensions via the Crawlora API — search, profiles, contributors, releases, trending, and extension detail/reviews/permissions — returning clean JSON. Use when the user wants a repo or developer's GitHub profile/stats, what's trending on GitHub, or a Chrome extension's details, permissions, or reviews.\n---\n\n# Developer & open-source research\n\nLook up GitHub repos, users, and orgs, plus Chrome Web Store extensions, as\nnormalized JSON from the Crawlora API — no scraping github.com or the\nChrome Web Store.\n\n## When to use this skill\n\n- \"Tell me about this GitHub repo/user/org\" (stars, languages, followers).\n- \"What's trending on GitHub right now?\" (by language).\n- \"Who contributes to this repo?\" / \"what are its releases?\"\n- \"Tell me about this Chrome extension\" (permissions, privacy, reviews).\n- \"Search extensions for <keyword>\" or \"what's similar to this extension?\"\n\n## Setup (one-time)\n\n- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).\n- Set `CRAWLORA_API_KEY` in the environment before running the helper.\n- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.\n\n## How it works\n\n1. **GitHub repos** — `/github/search/repositories` (`q`, GitHub search\n   syntax works) to find one; `/github/repo/{owner}/{repo}` for detail, plus\n   `/contributors`, `/languages`, `/releases`, `/forks`.\n2. **GitHub users/orgs** — `/github/search/users` (`q`); `/github/user/{username}`\n   (+ `/followers`, `/following`, `/repos`, `/events`, `/pinned`) or\n   `/github/org/{org}` (+ `/repos`). `/github/trending` and\n   `/github/trending/developers` (filter by `language`, `since`) cover\n   what's hot right now.\n3. **Chrome Web Store** — `/chromewebstore/search` (`term`) to find an\n   extension `id`; `/chromewebstore/item` for detail, `/permissions`,\n   `/privacy`, `/reviews`, `/similar`. `/chromewebstore/charts` and\n   `/chromewebstore/category` cover browsing/trending; `/chromewebstore/developer`\n   lists everything one publisher ships.\n\nFull endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).\n\n## Calling the API\n\n```sh\n# GitHub:\nscripts/crawlora.sh /github/search/repositories q=\"language:go stars:>1000\" | jq '.'\nscripts/crawlora.sh /github/repo/anthropics/claude-code | jq '.'\nscripts/crawlora.sh /github/trending language=python | jq '.'\n\n# Chrome Web Store:\nscripts/crawlora.sh /chromewebstore/search term=\"ad blocker\" | jq '.'\nscripts/crawlora.sh /chromewebstore/item id=<extension-id> | jq '.'\n```\n\nUse `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.\n\n\n## Endpoint reference\n\nSee [`reference/endpoints.md`](reference/endpoints.md) for every GitHub and\nChrome Web Store endpoint this skill use"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70shhkf6qpfwgfrbgtep2wkd8c6b4t\",\n  \"slug\": \"developer-oss-research\",\n  \"version\": \"1.0.17\",\n  \"publishedAt\": 1789640502573\n}"},{"path":"reference/endpoints.md","content":"# developer-oss-research — endpoint reference\n\n> Generated from `scripts/tools.json` by `scripts/generate.mjs` — do not edit by hand.\n\nEndpoints this skill uses, grouped by platform. Call them via `scripts/crawlora.sh` (see SKILL.md).\n\nAll paths are relative to the API base `https://api.crawlora.net/api/v1` and require the header `x-api-key: $CRAWLORA_API_KEY`. Path params like `{id}` are substituted into the URL; `GET` params go in the query string; `POST` params go in a JSON body.\n\n**29 endpoints across 2 platform group(s).**\n\n## GitHub (17)\n\n### `github_org`\n\n- **HTTP:** `GET /github/org/{org}`\n- **What:** Retrieve a GitHub organization profile. Returns a public GitHub organization profile (company-side enrichment).\n- **Params:** `org` (string, **required**) — GitHub organization login\n\n### `github_org_repos`\n\n- **HTTP:** `GET /github/org/{org}/repos`\n- **What:** List a GitHub organization's public repositories. Returns a page of an organization's public repositories (company tech stack).\n- **Params:** `direction` (string, optional) — Sort direction; `org` (string, **required**) — GitHub organization login; `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `sort` (string, optional) — Sort field; `type` (string, optional) — Repository type\n\n### `github_repo`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}`\n- **What:** Retrieve a GitHub repository. Returns public detail for a single repository (the core project object).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_contributors`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/contributors`\n- **What:** List a repository's contributors. Returns a page of a repository's contributors (who builds a project).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name\n\n### `github_repo_forks`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/forks`\n- **What:** List a repository's public forks. Returns a page of a repository's public forks (adopter signal).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `page` (integer, optional) — Page number; `per_page` (integer, optional) — Results per page (max 100); `repo` (string, **required**) — Repository name; `sort` (string, optional) — Sort order\n\n### `github_repo_languages`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/languages`\n- **What:** Retrieve a repository's language breakdown. Returns the language byte breakdown for a repository, sorted by bytes descending (tech fingerprint).\n- **Params:** `owner` (string, **required**) — Repository owner (user or org login); `repo` (string, **required**) — Repository name\n\n### `github_repo_releases`\n\n- **HTTP:** `GET /github/repo/{owner}/{repo}/releases`\n- *"},{"path":"skill-card.md","content":"## Description:\n\nResearches GitHub repos, users, orgs, and Chrome Web Store extensions through the Crawlora API, returning clean JSON for search, profiles, contributors, releases, trending projects, extension details, reviews, privacy, and permissions.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[crawlora-org](https://clawhub.ai/user/crawlora-org)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to research public GitHub projects, users, organizations, and Chrome Web Store extensions before dependency, marketplace, or safety decisions. It helps collect public activity, contributor, release, language, extension permission, privacy, review, and related-item signals as normalized JSON.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Lookup targets, search terms, and the Crawlora API key are sent to a third-party API.\n\nMitigation: Use the skill only for appropriate public research targets, keep CRAWLORA_API_KEY in the environment, and do not hardcode or commit credentials.\n\nRisk: Confidential private targets could be disclosed through API queries.\n\nMitigation: Avoid using the skill for confidential repositories, private investigations, or sensitive extension assessments.\n\nRisk: Chrome publisher lookups can return public trader-contact details where the Chrome Web Store exposes them.\n\nMitigation: Handle returned contact details as public but potentially personal data, and share only what is necessary for the review task.\n\n## Reference(s):\n\n- [developer-oss-research endpoint reference](artifact/reference/endpoints.md)\n- [Crawlora](https://crawlora.net)\n- [ClawHub skill page](https://clawhub.ai/crawlora-org/skills/developer-oss-research)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with shell command examples and JSON API responses]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires CRAWLORA_API_KEY; lookup targets and search terms are sent to the Crawlora API.]\n\n## Skill Version(s):\n\n1.0.17 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1520,"uniquenessScore":40,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T02:21:23.631Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T02:21:23.631Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T13:43:01.239Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}