{"_id":"@booyaahh/cli","name":"@booyaahh/cli","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@booyaahh/cli","version":"0.1.0","description":"Scan a repo's compliance posture at a commit and sync findings to Booyaahh.","type":"module","bin":{"booyaahh":"dist/index.js"},"engines":{"node":">=20"},"scripts":{"dev":"tsx src/index.ts","build":"tsc -p tsconfig.json","prepublishOnly":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test":"tsx --test src/**/*.test.ts"},"dependencies":{},"devDependencies":{"@types/node":"^20","tsx":"^4.22.0","typescript":"^5"},"gitHead":"58130db3713e7b5445cbf1cb0784e0c0f4303ba4","_id":"@booyaahh/cli@0.1.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-KUJVB0wDgBSvZkNOA9ClY5/PaniDfJdethCV31CWE/ZzOHHMvL/nCZIx0XEWdYX0Z3lRTx5C7ftgKMIiEF9O0w==","shasum":"5ac6e78e23916208e82077a2dcf58ab1c5dd120a","tarball":"https://registry.npmjs.org/@booyaahh/cli/-/cli-0.1.0.tgz","fileCount":42,"unpackedSize":102491,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCEuUpTwtsaPZmbZEkIartS1QhqIgU1ewxQTmyZwlwnPwIgNY3zYiX7DAecEoVS2mv/gtRSScWGS26gqGh4bANIpPg="}]},"_npmUser":{"name":"yourmercury","email":"momohpolycarp@gmail.com"},"directories":{},"maintainers":[{"name":"yourmercury","email":"momohpolycarp@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.1.0_1781070145235_0.8622651083338564"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-10T05:42:25.095Z","0.1.0":"2026-06-10T05:42:25.385Z","modified":"2026-06-10T05:42:25.562Z"},"maintainers":[{"name":"yourmercury","email":"momohpolycarp@gmail.com"}],"description":"Scan a repo's compliance posture at a commit and sync findings to Booyaahh.","readme":"# @booyaahh/cli\n\nScan a repository's **compliance posture** at a specific commit and sync the\nfindings to Booyaahh, where they become code-cited evidence for answering\nsecurity/privacy/AI-risk questionnaires.\n\nDesign contract: [`docs/CLI_PLAN.md`](../../docs/CLI_PLAN.md).\n\n## What it does\n\nThe CLI is a thin, authenticated **uploader** — it does **not** run AI. It\ndetects the git commit, resolves a file scope, scrubs secrets, and uploads the\nbundle. A server-side Inngest job calls Anthropic to produce the findings.\n\n## Install\n\n```bash\nnpm i -g @booyaahh/cli      # or: npx @booyaahh/cli <command>\n```\n\n## Quick start\n\n```bash\nbooyaahh login              # browser device flow (Clerk); pick your org\ncd your-repo\nbooyaahh link              # connect this repo to a Booyaahh project\nbooyaahh scan              # scan the full tracked source at HEAD\n```\n\n## Commands\n\n| Command | Purpose |\n|---|---|\n| `login` | Device-flow auth, or `--token <pat>` / `BOOYAAHH_TOKEN` for CI |\n| `logout` | Clear stored credentials |\n| `whoami` / `status` | Show auth + linked project/repo + commit context |\n| `link` | Connect the repo to a project (writes `.booyaahh.json`) |\n| `scan [paths…]` | Scan & upload — no paths = full tracked source |\n| `scope list\\|add\\|rm` | Manage registered scan scopes |\n\n### Scoped scans\n\n```bash\nbooyaahh scan lib/auth proxy.ts        # isolated: only these paths\nbooyaahh scan --persistent             # the registered scan.persistent set\nbooyaahh scan --scope auth             # a named scope\nbooyaahh scan lib/auth --save auth     # scan + persist the selection\n```\n\n### Safety\n\n- **Secret scan** runs before any upload; on a hit the scan **aborts**\n  (`--redact` to placeholder-swap, `--allow-secrets` to override).\n- **Dirty working tree** aborts by default (`--allow-dirty` to override) so every\n  scan pins a real commit.\n- Fixtures, seeds, `.env*`, keys, and binaries are excluded by default; add more\n  via `.booyaahhignore`.\n\n`--dry-run` runs every check and prints the file set without uploading.\n\n## Develop\n\nZero runtime dependencies (Node built-ins + `git`). From the repo root:\n\n```bash\npnpm --filter @booyaahh/cli dev -- <command>   # run from source via tsx\npnpm --filter @booyaahh/cli typecheck\npnpm --filter @booyaahh/cli test\npnpm --filter @booyaahh/cli build              # tsc → dist/\n```\n\n## Status\n\n`v0.1` — CLI complete and verified. The server contract it calls\n(`/api/cli/*`, the `Project`/`Repo`/`ComplianceScan`/`ComplianceFinding` models,\nand the Inngest analysis job) is the next workstream.\n","readmeFilename":"README.md","_rev":"1-33f65df184c387da9a38627d0052ef1c"}