Skip to content

Document the CLI, on the site and in the repo - #245

Merged
ralyodio merged 1 commit into
masterfrom
docs-cli
Sep 6, 2026
Merged

Document the CLI, on the site and in the repo#245
ralyodio merged 1 commit into
masterfrom
docs-cli

Conversation

@ralyodio

@ralyodio ralyodio commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

The CLI shipped, went on npm, got a cli-tools command and a moshcode entry, and was documented in none of the places anyone would look: crawlproof.com had no page for it, and the repo README did not mention it exists. The only writeup lived inside the published package, which you have to install before you can read it.

/docs/cli

Install and auth (including ~/.crawlproof.json, so nobody has to remember an export), the five dashboard screens and their keys, stats, running an ad, and the bearer-token routes underneath — so anything that is not this CLI can call them too.

It also states what the ROI numbers mean, because those are the figures someone will end up quoting at somebody else:

  • self-deal is not revenue
  • personal money is not business cost
  • everything is a monthly rate prorated onto the window
  • the bank window is not the traffic range, because bank data has no hourly resolution

and what the dashboard refuses to claim: a site that did not answer is missing rather than zero, and a "visitor" is any non-crawler hit, which is why the per-pageview figure sits beside the per-visitor one.

README

Says where the package comes from and that it is a build artifact of lib/dashboard/* rather than a second copy, so nobody edits the wrong file. Plus the route table.

Verified

Rendered against a local server on the production environment:

docs index:  200
docs/cli:    200
href="/docs/cli"        ← card is linked from the index
ok: npm install -g @profullstack/crawlproof
ok: crawlproof dashboard
ok: crawlproof ad https
ok: Self-deal is not revenue
ok: api/ads/v1/earnings

tsc --noEmit clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01HvWJ4336pxTFRdRbvsTQeD

The CLI shipped, went on npm, got a cli-tools command and a moshcode entry, and
was documented in none of the places someone would look for it: crawlproof.com
had no page, and the repo README did not mention it existed. The only writeup
was inside the published package, which you have to install before you can read.

/docs/cli covers install and auth, the five dashboard screens and their keys,
stats, running an ad, and the bearer-token routes underneath, so anything that
is not this CLI can call them too.

It also states what the ROI numbers mean, because those are the figures someone
will quote at somebody else: self-deal is not revenue, personal money is not
business cost, everything is a monthly rate prorated onto the window, and the
bank window is not the traffic range. Along with what the dashboard refuses to
claim -- a site that did not answer is missing rather than zero, and a visitor
is any non-crawler hit, which is why the per-pageview figure sits beside it.

The README section says where the package comes from and that it is a build
artifact of lib/dashboard/* rather than a second copy, so nobody edits the
wrong one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HvWJ4336pxTFRdRbvsTQeD
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

39 finding(s)

HIGH/CRITICAL: 2 | MEDIUM: 28 | LOW: 9

Severity Rule Location
HIGH tls-verification-disabled lib/onion.ts:48
HIGH secret-generic-credential lib/sp/platforms/facebook.ts:32
MEDIUM js-unescaped-html-sink app/(app)/dashboard/admin/email-broadcast/EmailBroadcastForm.tsx:125
MEDIUM js-unescaped-html-sink app/(app)/dashboard/projects/[id]/autoblog/articles/[articleId]/page.tsx:214
MEDIUM js-unescaped-html-sink app/(marketing)/blog/[slug]/page.tsx:67
MEDIUM js-unescaped-html-sink app/(marketing)/blog/[slug]/page.tsx:97
MEDIUM js-unescaped-html-sink app/(marketing)/blog/[slug]/page.tsx:104
MEDIUM js-unescaped-html-sink app/(marketing)/blog/[slug]/page.tsx:110
MEDIUM js-unescaped-html-sink app/(marketing)/recent/page.tsx:186
MEDIUM js-unescaped-html-sink app/(marketing)/recent/page.tsx:190
MEDIUM js-unescaped-html-sink app/c/[project]/[slug]/page.tsx:77
MEDIUM js-unescaped-html-sink app/c/[project]/page.tsx:57
MEDIUM js-unescaped-html-sink app/careers.js/route.ts:228
MEDIUM js-unescaped-html-sink app/careers.js/route.ts:285
MEDIUM js-unescaped-html-sink app/layout.tsx:129
MEDIUM js-open-redirect app/login/form.tsx:39
MEDIUM js-unescaped-html-sink app/r/[token]/page.tsx:176
MEDIUM js-open-redirect app/signup/form.tsx:43
MEDIUM js-open-redirect components/billing/buy-credits-modal.tsx:98
MEDIUM js-unescaped-html-sink components/json-ld.tsx:8
MEDIUM js-unescaped-html-sink components/report/markdown-view.tsx:15
MEDIUM js-unescaped-html-sink lib/careers/page-templates.ts:198
MEDIUM redos-nested-quantifier lib/emailMarkdown.ts:41
MEDIUM redos-nested-quantifier lib/emailMarkdown.ts:324
MEDIUM redos-nested-quantifier lib/lx/articleGen.ts:99
MEDIUM redos-nested-quantifier lib/tracker/agent-gate.ts:61
MEDIUM sh-remote-script-execution prober/deploy/provision.sh:30
MEDIUM sql-template-interpolation scripts/detect-slot-themes.ts:31
MEDIUM sql-template-interpolation scripts/purge-constructed-keywords.ts:163
MEDIUM sql-template-interpolation scripts/purge-offniche-keywords.ts:124
LOW secret-generic-credential app/(marketing)/docs/autoblog-webhook/page.tsx:145
LOW secret-generic-credential lib/sp/platforms/linkedin.ts:25
LOW js-dynamic-code-execution tests/careers-page-templates.test.ts:21
LOW js-dynamic-code-execution tests/careers-widget-script.test.ts:19
LOW js-dynamic-code-execution tests/careers-widget-script.test.ts:69
LOW js-dynamic-code-execution tests/contract/ad-visitor-id.test.ts:51
LOW js-dynamic-code-execution tests/contract/ad-visitor-id.test.ts:52
LOW secret-generic-credential tests/contract/posthog-integration.test.ts:13
LOW secret-generic-credential tests/lead-campaign.test.ts:16

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit 1523b1c into master Sep 6, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant