DeepWiki indexing — do it, don't ask
When a public repo should have a live DeepWiki, index it yourself and verify it. Never stop to ask the human whether to index — just do it and report the result.
The verified mechanics (don't re-research these)
- Trigger:
POST https://api.devin.ai/ada/index_public_repo?repo_name=<owner/repo>&email_to_notify=<email>&recaptcha_token=<tok> - Status (open, no auth):
GET https://api.devin.ai/ada/public_repo_indexing_status?repo_name=<owner/repo>→{"status":"unknown"|"indexing"|"completed"} - The token is mandatory (server returns
400 {"detail":"reCAPTCHA validation failed"}without it). It is reCAPTCHA v2-invisible, site key6LeK1G0rAAAAAGVDKn-92dkphJzZvEobSLCyZJg4, domain-bound to deepwiki.com. - A trusted browser mints the token silently (no challenge). A datacenter / headless / low-reputation context gets an image challenge instead — do NOT solve image challenges (that's defeating an anti-bot control). So always run on a trusted browser.
- One-time: after the first index, DeepWiki re-crawls on its own. Do not wire per-commit re-indexing.
Procedure
- Check first.
GET .../public_repo_indexing_status. Ifcompleted/indexed, done — say so, stop. - Trigger on a TRUSTED browser (one of, in order of preference):
- screen-mcp (real desktop): with the
screen-mcpplugin connected, drive the user's real Chrome — openhttps://deepwiki.com/<owner>/<repo>, type the notify email, click Index Repository. On the real browser the reCAPTCHA passes invisibly (no challenge to solve). - Bundled helper (real Chrome profile):
CHROME_USER_DATA_DIR="$HOME/.config/google-chrome" REPO=<owner/repo|all> node ${CLAUDE_PLUGIN_ROOT}/scripts/index-deepwiki.mjs— it mints the invisible token in-page and POSTs the trigger directly.REPO=alldoes the whole 88plug marketplace.
- screen-mcp (real desktop): with the
- Verify. Poll the status endpoint until
completed(2–10 min). Only report success when the API says so — never claim "indexed" from a button click alone.
Honesty / limits
- It cannot be done from CI or a datacenter/headless context (reCAPTCHA always challenges there) and must not be forced with a captcha-solving service.
- If no trusted browser is available (screen-mcp down, no local Chrome), say exactly that and hand the user the one command — don't pretend it indexed.