Anakinscraper
Anakin-Inc/anakin
Scrape any website into clean markdown or structured JSON. An agent skill from Anakin-Inc/anakin.
Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…
$ npx skills add 1broseidon/ketch --skill ketch -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install 1broseidon/ketch ketch --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/1broseidon/ketch.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ketch .claude/skills/ketch && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ketch" agent skill from https://github.com/1broseidon/ketch/tree/main/skills/ketch into .claude/skills/ketch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ketch", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/1broseidon/ketch/tree/main/skills/ketchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add 1broseidon/ketch --skill ketch -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install 1broseidon/ketch ketch --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/1broseidon/ketch.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ketch .agents/skills/ketch && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ketch" agent skill from https://github.com/1broseidon/ketch/tree/main/skills/ketch into .agents/skills/ketch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ketch", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add 1broseidon/ketch --skill ketch -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install 1broseidon/ketch ketch --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/1broseidon/ketch.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ketch .cursor/skills/ketch && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ketch" agent skill from https://github.com/1broseidon/ketch/tree/main/skills/ketch into .cursor/skills/ketch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ketch", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/1broseidon/ketch.git --path skills/ketch--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add 1broseidon/ketch --skill ketch -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install 1broseidon/ketch ketch --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/1broseidon/ketch.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ketch .gemini/skills/ketch && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ketch" agent skill from https://github.com/1broseidon/ketch/tree/main/skills/ketch into .gemini/skills/ketch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ketch", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install 1broseidon/ketch ketchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add 1broseidon/ketch --skill ketch -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/1broseidon/ketch.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ketch .github/skills/ketch && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ketch" agent skill from https://github.com/1broseidon/ketch/tree/main/skills/ketch into .github/skills/ketch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ketch", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add 1broseidon/ketch --skill ketch -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install 1broseidon/ketch ketch --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/1broseidon/ketch.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ketch .opencode/skills/ketch && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ketch" agent skill from https://github.com/1broseidon/ketch/tree/main/skills/ketch into .opencode/skills/ketch/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ketch", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ketchResearch skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…
Ketch is an agent skill from 1broseidon/ketch. Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but the CLI is the primary interface. Use when a question needs live sources: 'research X', 'what are people saying about Y', 'find docs or real-world examples for Z', 'scrape/crawl this site' — or when installing or configuring ketch backends. Routes search vs code vs docs vs scrape vs crawl, keeps every fetch inside a…
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/surfaces.md`, `references/verbs/ketch-research.md` and `references/verbs/setup.md`).
It sits in Data & Analytics, covering Web scraping. It works with Model Context Protocol, Visual Studio Code and Go. The repository describes itself as: Fast, stateless CLI for web search and scrape. Built for AI agents. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d66bde7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
brewgoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ketch loads about 3.9k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 168 tokens; SKILL.md has 1,971 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from 1broseidon/ketch at commit d66bde7, republished under its MIT licence (© 1broseidon). 1,971 words, ~3,919 tokens.
.claude/skills/ketch/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Route every live-source question to one of ketch's five research surfaces — search, code, docs, scrape, crawl — over the transport the operator gave you, with a token budget on every fetch and a source URL on every claim. ketch is one stateless binary — call, result, exit — with web search, OSS code grep, curated library docs, and page/site extraction together, so a complete research pipeline needs no other tool and no daemon.
The CLI is ketch's identity: call → result → exit, --json on every call, exit codes as control flow, zero daemon. That is the default transport and the zero-infrastructure path. The MCP server is a supported alternative for operators who want it — never a prerequisite.
Decide once per session, before the first call:
which ketch succeeds → the CLI is your transport: --json on every call, exit codes as control flow.search, code, docs, scrape, crawl and tag from a server named ketch (in Claude Code: mcp__ketch__search, …). Present → the operator wired them up on purpose, and using them for research calls is correct and good: structured output, per-URL errors, no shell round-trip. Do not shell out around tools the operator set up.brew install ketch or go install github.com/1broseidon/ketch@latest — an operator action: propose, wait for confirmation.The rule: use the transport the operator gave you — when both are live, either is fine for research calls, and operator actions are always CLI.
tag is the one exception to the operator-action rule below: it changes local state but the agent is both writer and reader, so it is published over MCP as well as the CLI.
Config discovery is CLI regardless of transport: ketch config prints effective settings and available backends as JSON; there is no config tool over MCP. Operator actions — config set, cache, browser install, crawl --background/status/stop, doctor — are deliberately not in MCP. They are always CLI.
Use only these terms in ketch output.
| Term | Meaning |
|---|---|
| surface | One of the five research operations: search, code, docs, scrape, crawl |
| tag | A label filed across surfaces: search hits, code hits, docs chunks, scraped pages, crawled pages. Not a research surface — it answers "what did I already find?", not "what is out there?" |
| transport | How a surface is called: the CLI binary (default) or the optional MCP tools |
| backend | The provider behind a surface: auto (default; a fallback chain, not a provider)/brave/ddg/searxng/exa/firecrawl/keenable/tavily/parallel/serpbase/degoog/serply/youcom (search), grepapp/sourcegraph/github (code), context7 (docs) |
| operator action | A system-managing or diagnostic command — config set, cache, browser install, background crawls, doctor — CLI-only by design |
| error prefix | The stable class on every ketch error: CLI exit codes 2–6, mirrored as the bracketed prefix opening every MCP tool error — [validation], [not_found], [upstream], [precondition], [cancelled] |
| fan-out | How many queries are searched and URLs scraped under one plan |
| token budget | The per-call output bound: max_chars/trim on scrapes, tokens on docs, limit/--minimal on lists |
| probe | One cheap read-only call that tests whether a surface is configured and reachable |
ketch research <question>: deep multi-source research — search fan-out → scrape top hits → optional code/docs corroboration → synthesized, cited answer. Read references/verbs/ketch-research.md.ketch setup: configure backends with the operator — probe current state, propose exact commands, mutate only on confirmation. Read references/verbs/setup.md. Enter this verb whenever any call returns [precondition] / exit 5.One question = one plan. Escalate a default run into ketch research when the first search shows the answer is contested, multi-part, or needs corroboration.
max_chars 4000–8000 plus trim on any scrape of a page you have not seen — an unguarded page can cost ~25k tokens. Skipping the cap requires a stated one-line reason ("known ~200-word page").[validation] or [not_found] unchanged.config set, browser install, docker runs, installs — only after the operator confirms the exact command. Never touch a value that is already configured and working.ketch config and --help are ground truth; where they disagree with a table here, trust the binary and flag the skill as drifted.Request: "ketch research — do people actually use Go's iter.Seq in real projects, and what are the gotchas?"
Transport: operator wired mcp__ketch__* into this session → honor it; research calls go over MCP.
Plan: 2 queries · scrape top 3 · max_chars 6000 + trim · ≤8 calls
search {query: "Go iter.Seq real-world experience gotchas", limit: 5}
→ "[upstream] ddg rate limited" → an explicit backend failed; rotate to another
usable provider from available_backends, retry once:
search {query: ..., backend: "brave", limit: 5} → ok
search {query: "Go range-over-func adoption production", backend: "brave", limit: 5}
→ 10 results, 8 unique hosts → picked 3: official blog post, one experience
report, one issue thread (primary sources over aggregators)
scrape {urls: [u1, u2, u3], max_chars: 6000, trim: true}
→ isError=false; checked results[] one by one: u1, u2 ok;
u3.error = "[upstream] … 503" → dropped, will be named in synthesis
code {query: "iter.Seq", lang: "go", limit: 3} # corroborate real usage
→ 3 repos with file/line URLs
Synthesis: five claims, each cited to its URL; u3 listed as unretrieved;
one conflict between u1 and u2 stated and attributed, not averaged.
Budget: 5 of 8 calls (the rate-limited attempt counts).First match wins:
| The question needs | Surface | Not |
|---|---|---|
| Current web pages, opinions, news, comparisons | search | docs — that is curated library docs only |
| How real projects call an API | code | search — blogs talk about code; code greps public OSS repos via grep.app |
| A library's own documentation, version-aware | docs | scrape of the docs site — docs is already extracted and token-budgeted |
| The content of a URL you already hold | scrape | search — never re-find a known URL |
| Many pages from one site | crawl | looped scrape — crawl dedupes, bounds, and streams |
| Anything you already found earlier in this project | tag (operation: show) | search again — you already paid for these once |
In reverse: search finds URLs; scrape reads them; crawl reads a site; code reads public source; docs reads library docs. search with scrape: true fuses the first two when you will want full content from every hit — budget it like a scrape.
tagOn work that spans more than one session or more than a handful of sources,
pass --tag <name> (CLI) or tag (MCP) on the calls you will want again,
naming the project or scope of work — remote-access, not results-3.
It works on every surface, and one tag holds them all: search, code,
docs, scrape, crawl. So a project tag ends up holding the vendor's
documentation, the code that calls it, and the write-up that explained the
undocumented flag, in one list. Later, tag show returns that as an
llms.txt-shaped index — titles, URLs, descriptions — limited to the newest 50,
and you re-read one source instead of re-running the searches that found them.
Tag the sources you actually used, not every hit.
Use --limit N / MCP limit for a smaller view; 0 explicitly requests all.
entries counts the whole tag and shown counts returned pages. Read the index
before searching again, but do not request all of a large tag by default.
The index is durable and outlives the cached page bodies, so it still answers
days later. cached: false means no fresh body was confirmed, not a dead link.
When cache_status is unavailable, the page cache could not be checked;
bookmarks still work and sources can still be fetched. Entries from code, docs and
unscraped search hits start that way by nature, since those calls return
snippets rather than fetched pages; scrape the URL when you want the whole
thing. Read the index first, then fetch only what you need: assembling the
whole tag defeats the point.
Check bookmark diagnostics separately from research success: CLI warnings go to
stderr (structured under --json), and MCP returns warnings. A failed write
does not discard the useful research result. Durable bookmarks use a separate
file; test labs must set KETCH_TAGS_PATH as well as isolating the page cache.
| Call | Bound with | Measured cost |
|---|---|---|
search, limit 5 | limit | ~1.4 KB |
code, limit 3 | limit | ~0.7 KB |
docs, default budget | tokens (default 4000) | ~3.3 KB |
scrape, unknown page | max_chars 4000–8000 + trim | unguarded: up to ~100 KB (~25k tokens) |
crawl (MCP) | max_pages + per-page max_chars | 30 pages default, 100 cap, 3-min wall clock |
tag show / MCP tag show | limit (default 50; 0 all) | bounded source metadata; no page bodies |
| Any CLI list | --minimal | roughly halves output |
| Exit (CLI) | Prefix (MCP) | Meaning | Do |
|---|---|---|---|
| 2 | [validation] | Bad input | Fix the call; retrying unchanged can never succeed |
| 3 | [not_found] | Nothing matched | Change the query or selector; not an outage |
| 4 | [upstream] | Backend or network failure | Explicit backend: rotate to another provider (available_backends in ketch config) or retry once. auto already fell through every usable provider: retry once, then report the outage |
| 5 | [precondition] | Operator config missing | Stop researching; enter ketch setup |
| 6 | [cancelled] | Cancelled or timed out | Rerun with smaller scope |
Situations → class: unknown backend, regexp on github → [validation]. Selector matched nothing, a repo the code backend does not have → [not_found] (for repo, change the backend). ddg rate limit (it rate-limits readily under fan-out), DNS failure, grepapp's intermittent 504 → [upstream], rotate or retry once. Missing API key, docs backend local (planned, unimplemented), force_browser with no browser configured → [precondition]. One asymmetry: a CLI crawl interrupted by SIGINT exits 0 with partial results, by design.
Detail for each lives in references/surfaces.md.
/llms.txt and may silently return that instead of the homepage — the title field reveals the swap; no_llms_txt opts out.docs is a two-step: resolve the name → vet the matches → fetch by library ID. Resolve never returns empty — garbage in gets confident fuzzy matches out, so check the name, not just the trust score.isError=false with results[].error set. Check every entry.regexp works on grepapp and sourcegraph only; github rejects it with a pointer to those backends.--background, status, stop) are CLI-only; the MCP crawl is synchronous and capped.ketch doctor reports the cache as locked by another process. Running the server degrades the CLI; prefer CLI-only when both would run long-term.BAD: scrape {url: "https://docs.example.com"} — no bound; you get llms.txt or ~25k tokens, whichever is worse.
GOOD: scrape {url: "https://docs.example.com/quickstart", max_chars: 6000, trim: true} — plus no_llms_txt: true when you want the page itself, not the site's llms.txt.
BAD: Telling a user they must run an MCP server to use ketch with agents — the CLI plus a prompt block is the zero-infrastructure path, and a long-running server holds the page-cache lock against every CLI call.
GOOD: CLI by default; MCP when the operator wired it — and when mcp__ketch__* tools are in your list, use them for research instead of shelling out around the operator's setup.
BAD: [upstream] ddg rate limited → retry the identical call three times.
GOOD: Rotate — backend: "brave" (or another provider from available_backends; auto is a chain, not a rotation target) — retry once, and note the swap. When auto itself failed, it already tried every usable provider: retry once, then report the outage.
BAD: Fetch docs from resolve's first match because its trust score is high, even though its name is not the library you asked about. GOOD: Vet name + snippet count + trust; if no match names the intended library, say so instead of fetching junk docs.
ketch research … → read references/verbs/ketch-research.md before starting.ketch setup, any [precondition]/exit 5, or an install → read references/verbs/setup.md.references/surfaces.md.In scope: the five research surfaces over both transports, the research and setup verbs, token budgets, error-prefix control flow, backend configuration. Out of scope: local or private codebase search (use repo tools), pages behind auth or paywalls, bulk archival crawling beyond the caps, browser automation beyond ketch's headless-rendering fallback.
Bound every fetch; cite every claim.
© 1broseidon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in skills/ketch of 1broseidon/ketch.
Open the folder on GitHubat commit d66bde7
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in 1broseidon/ketch, which our catalogue first saw on October 7, 2026.
Ketch next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ketch this skill1broseidon/ketch | 697 | 1 repos | ~3.9k | Automated safety check: Pass | MIT | |
| AnakinscraperAnakin-Inc/anakin | 4.5k | — | ~859 | Automated safety check: Pass | AGPL-3.0 | |
| Querying Indonesian Gov Datasuryast/indonesia-gov-apis | 172 | — | ~997 | Automated safety check: Pass | MIT | |
| Media Crawlertsingyuai/growth-lab | 2k | — | ~731 | Automated safety check: Pass | Apache-2.0 | |
| Xquik MCPXquik-dev/x-twitter-scraper | 209 | 1 repos | ~997 | Automated safety check: Pass | MIT | |
| Erd Studio Setupliam-machine/erd-studio | 165 | — | ~8.5k | Automated safety check: Pass | Custom licence |
Anakin-Inc/anakin
Scrape any website into clean markdown or structured JSON. An agent skill from Anakin-Inc/anakin.
suryast/indonesia-gov-apis
Query 57 Indonesian government APIs and data sources — BPJPH halal certification, BPOM food safety, OJK financial legality, BPS statistics, BMKG weather/earthquakes, Bank Indonesia exchange rates…
tsingyuai/growth-lab
Install, authenticate, configure, operate, and troubleshoot the external MediaCrawler client shared by Douyin, Kuaishou, Bilibili, Weibo, Tieba, and Zhihu collectors.
Xquik-dev/x-twitter-scraper
Connect, verify, and troubleshoot Xquik's remote MCP server.
liam-machine/erd-studio
Friendly, step-by-step setup for ERD Studio in an existing dbt project, for people who may be new to dbt or data modelling.
apify/awesome-skills
Wire an AI agent to live e-commerce product data using Apify's E-commerce Scraping Tool over MCP, either as runtime tool calls or as a scheduled refresh into a vector store.
Categories
Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…. Ketch is an agent skill from 1broseidon/ketch. Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but the CLI is the primary interface.
Ketch fits situations like: A question needs live sources: research X; what are people saying about Y; real-world examples for Z; scrape/crawl this site —.
Run `npx skills add 1broseidon/ketch --skill ketch -a claude-code`. Or copy the skill folder (skills/ketch in 1broseidon/ketch) into .claude/skills/ketch in your project. Claude Code loads it when a task matches its description.
Run `npx skills add 1broseidon/ketch --skill ketch -a codex`. Or copy the skill folder (skills/ketch in 1broseidon/ketch) into .agents/skills/ketch in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add 1broseidon/ketch --skill ketch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ketch, .gemini/skills/ketch, .github/skills/ketch and .opencode/skills/ketch in your project.
Going by SKILL.md and its folder, Ketch needs the command-line tools its instructions call (brew and go). Our summary lists: Docker.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ketch is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Ketch: Anakinscraper (Anakin-Inc/anakin, 4.5k stars), Querying Indonesian Gov Data (suryast/indonesia-gov-apis, 172 stars), Media Crawler (tsingyuai/growth-lab, 2k stars) and Xquik MCP (Xquik-dev/x-twitter-scraper, 209 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
1broseidon (a GitHub user) maintains it in 1broseidon/ketch, which has 697 GitHub stars. The repository was last updated on October 8, 2026.
Source: 1broseidon/ketch on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.