{"_id":"huntflow","_rev":"8-80d98ed19c9eeccabec32cd1332b4364","name":"huntflow","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.2":{"name":"huntflow","version":"1.0.2","keywords":["bug-bounty","security","hunting","pentest","vulnerability","tracker","offline","pwa"],"author":{"name":"xalgord"},"license":"SEE LICENSE IN LICENSE","_id":"huntflow@1.0.2","maintainers":[{"name":"xalgord","email":"xalgord@gmail.com"}],"homepage":"https://huntflow.xalgorix.com","bin":{"huntflow":"bin/huntflow.mjs"},"dist":{"shasum":"815aabb024056dacd05bc945901a84d8b1db0d41","tarball":"https://registry.npmjs.org/huntflow/-/huntflow-1.0.2.tgz","fileCount":147,"integrity":"sha512-yNothbT5Uv8Y8Ckz6QNGjELRatcpeo5fzFpHmHMFT6QqDpGtTOpDfxF0X8LTHk1TcDVw25q8l3V4ewGZ3iOplg==","signatures":[{"sig":"MEUCIQCp+QJWl5XAz4T8SZX/N5rCNxzn/0kOUnwFugGlKvLzEAIgMDac/mU9WJ8rhdJCTGQp4aTeqCEYIreI9zpV4wBeinY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3634228},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"14905c9139d26f632221157602b4babdd9d6624a","scripts":{"dev":"vite dev","lint":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","test":"vitest","build":"vite build","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepare":"node bin/prepare.mjs","preview":"vite preview","test:e2e":"playwright test","build:app":"node bin/build-app.mjs","build:web":"vite build","convex:dev":"convex dev","screenshots":"node scripts/capture-readme-screenshots.mjs","convex:deploy":"convex deploy","prepublishOnly":"npm run build:app"},"_npmUser":{"name":"xalgord","email":"xalgord@gmail.com"},"_npmVersion":"9.2.0","description":"Bug bounty hunting companion — track targets, sessions, notes, evidence, and payouts. Offline-first, zero telemetry.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"idb":"^7.1.0","clsx":"^2.1.1","convex":"^1.36.1","svelte":"^4.0.0","chart.js":"^4.4.0","d3-force":"^3.0.0","tailwindcss":"^3.3.0","@vercel/node":"^5.7.13","@sveltejs/kit":"2.0.0","lucide-svelte":"^0.300.0","tailwind-merge":"^3.5.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","vitest":"^1.0.0","postcss":"^8.4.32","typescript":"^5.0.0","autoprefixer":"^10.4.16","svelte-check":"^3.6.0","@clerk/clerk-js":"^6.7.7","@types/d3-force":"^3.0.10","vite-plugin-pwa":"^0.17.4","@playwright/test":"^1.40.0","@sveltejs/adapter-static":"3.0.0","@sveltejs/vite-plugin-svelte":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/huntflow_1.0.2_1777624952661_0.7388666961064352","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"huntflow","version":"1.0.3","keywords":["bug-bounty","security","hunting","pentest","vulnerability","tracker","offline","pwa"],"author":{"name":"xalgord"},"license":"SEE LICENSE IN LICENSE","_id":"huntflow@1.0.3","maintainers":[{"name":"xalgord","email":"xalgord@gmail.com"}],"homepage":"https://huntflow.xalgorix.com","bin":{"huntflow":"bin/huntflow.mjs"},"dist":{"shasum":"e169b49e36c48a1e1d460cf821e0c0dca3ca40e9","tarball":"https://registry.npmjs.org/huntflow/-/huntflow-1.0.3.tgz","fileCount":147,"integrity":"sha512-VmngKK5JBl1XjkuKx5XMCQXsJ+9ko9GYrOyYlqdQYVQJZqfGqMjwTLT87MMhv3fow0a3pl6DCS7l+xcIgWE43Q==","signatures":[{"sig":"MEUCIHMP4lEEzkDx2wWbFf1tXZK3kIgaePcf0saLwksLlzguAiEA2xg/eYLErHzlXx9OCfODhTZA6LeCCRl2P3eOtgbUkHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3634424},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"14905c9139d26f632221157602b4babdd9d6624a","scripts":{"dev":"vite dev","lint":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","test":"vitest","build":"vite build","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepare":"node bin/prepare.mjs","preview":"vite preview","test:e2e":"playwright test","build:app":"node bin/build-app.mjs","build:web":"vite build","convex:dev":"convex dev","screenshots":"node scripts/capture-readme-screenshots.mjs","convex:deploy":"convex deploy","prepublishOnly":"npm run build:app"},"_npmUser":{"name":"xalgord","email":"xalgord@gmail.com"},"_npmVersion":"9.2.0","description":"Bug bounty hunting companion — track targets, sessions, notes, evidence, and payouts. Offline-first, zero telemetry.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"idb":"^7.1.0","clsx":"^2.1.1","convex":"^1.36.1","svelte":"^4.0.0","chart.js":"^4.4.0","d3-force":"^3.0.0","tailwindcss":"^3.3.0","@vercel/node":"^5.7.13","@sveltejs/kit":"2.0.0","lucide-svelte":"^0.300.0","tailwind-merge":"^3.5.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","vitest":"^1.0.0","postcss":"^8.4.32","typescript":"^5.0.0","autoprefixer":"^10.4.16","svelte-check":"^3.6.0","@clerk/clerk-js":"^6.7.7","@types/d3-force":"^3.0.10","vite-plugin-pwa":"^0.17.4","@playwright/test":"^1.40.0","@sveltejs/adapter-static":"3.0.0","@sveltejs/vite-plugin-svelte":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/huntflow_1.0.3_1777638151759_0.1603367565177749","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"huntflow","version":"1.0.4","keywords":["bug-bounty","security","hunting","pentest","vulnerability","tracker","offline","pwa"],"author":{"name":"xalgord"},"license":"SEE LICENSE IN LICENSE","_id":"huntflow@1.0.4","maintainers":[{"name":"xalgord","email":"xalgord@gmail.com"}],"homepage":"https://huntflow.xalgorix.com","bin":{"huntflow":"bin/huntflow.mjs"},"dist":{"shasum":"e7d5ae30f86951dc33a59e393fd270db2c417c31","tarball":"https://registry.npmjs.org/huntflow/-/huntflow-1.0.4.tgz","fileCount":165,"integrity":"sha512-Nm+YPyOFSo4PkhxxWgf9alOsYYd/2czyHy9iSuFqaiWLWlUvIg7U4vJCKgfMlRK62gDBuSxINBbeDG1WbLBJbg==","signatures":[{"sig":"MEUCIQD5pKAnD7vL8NE/0HX/RFsNMT5lL0T1P4HYsw0Kq2K99QIgZzufwj9JjvxC/9LOk1Ee+HqjA/98PV35OTxbHJozGkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4171634},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"1b21417941ac5f6af0dec923240a64f28f77ecaa","scripts":{"dev":"vite dev","lint":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","test":"vitest","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.json","prepare":"node bin/prepare.mjs","preview":"vite preview","test:e2e":"playwright test","build:app":"node bin/build-app.mjs","build:web":"vite build","convex:dev":"convex dev","screenshots":"node scripts/capture-readme-screenshots.mjs","convex:deploy":"convex deploy","check:no-clerk":"! grep -rEn '\\b(ClerkInstance|clerkAuthStore|getClerkToken|mountClerk[A-Za-z]*|signInWithClerk|signOutFromClerk|huntflowClerkAppearance|openClerkSubscriptions)\\b' src/ convex/ tests/ && ! grep -rEn '(@clerk/clerk-js|window\\.Clerk\\b)' src/ convex/ tests/","prepublishOnly":"npm run build:app"},"_npmUser":{"name":"xalgord","email":"xalgord@gmail.com"},"_npmVersion":"11.16.0","description":"Bug bounty hunting companion — track targets, sessions, notes, evidence, and payouts. Offline-first, zero telemetry.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"idb":"^7.1.0","clsx":"^2.1.1","convex":"^1.39.1","svelte":"^4.0.0","chart.js":"^4.4.0","d3-force":"^3.0.0","firebase":"^11.10.0","dompurify":"^3.4.11","tailwindcss":"^3.3.0","@vercel/node":"^5.7.13","@sveltejs/kit":"^2.60.1","lucide-svelte":"^0.300.0","tailwind-merge":"^3.6.0","standardwebhooks":"^1.0.0","class-variance-authority":"^0.7.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^24.1.3","vitest":"^1.0.0","postcss":"^8.5.14","fast-check":"^4.8.0","typescript":"^5.0.0","autoprefixer":"^10.4.16","svelte-check":"^3.6.0","fake-indexeddb":"^5.0.2","@types/d3-force":"^3.0.10","vite-plugin-pwa":"^0.17.4","@playwright/test":"^1.40.0","@testing-library/svelte":"^4.2.3","@sveltejs/adapter-static":"^3.0.10","@testing-library/jest-dom":"^6.6.3","@sveltejs/vite-plugin-svelte":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/huntflow_1.0.4_1783372261458_0.1336493224070383","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"huntflow","version":"1.0.5","description":"Bug bounty hunting companion — track targets, sessions, notes, evidence, and payouts. Offline-first, zero telemetry.","license":"SEE LICENSE IN LICENSE","type":"module","bin":{"huntflow":"bin/huntflow.mjs"},"keywords":["bug-bounty","security","hunting","pentest","vulnerability","tracker","offline","pwa"],"homepage":"https://huntflow.xalgorix.com","author":{"name":"xalgorix"},"engines":{"node":">=18.0.0"},"scripts":{"dev":"vite dev","convex:dev":"convex dev","convex:deploy":"convex deploy","build":"vite build","build:web":"vite build","build:app":"node bin/build-app.mjs","preview":"vite preview","screenshots":"node scripts/capture-readme-screenshots.mjs","test":"vitest","test:e2e":"playwright test","check:no-clerk":"! grep -rEn '\\b(ClerkInstance|clerkAuthStore|getClerkToken|mountClerk[A-Za-z]*|signInWithClerk|signOutFromClerk|huntflowClerkAppearance|openClerkSubscriptions)\\b' src/ convex/ tests/ && ! grep -rEn '(@clerk/clerk-js|window\\.Clerk\\b)' src/ convex/ tests/","lint":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","check":"svelte-check --tsconfig ./tsconfig.json","prepublishOnly":"npm run build:app","prepare":"node bin/prepare.mjs"},"dependencies":{"@sveltejs/kit":"^2.60.1","@vercel/node":"^5.7.13","chart.js":"^4.4.0","class-variance-authority":"^0.7.1","clsx":"^2.1.1","convex":"^1.39.1","d3-force":"^3.0.0","dompurify":"^3.4.11","firebase":"^11.10.0","idb":"^7.1.0","lucide-svelte":"^0.300.0","standardwebhooks":"^1.0.0","svelte":"^4.0.0","tailwind-merge":"^3.6.0","tailwindcss":"^3.3.0"},"devDependencies":{"@playwright/test":"^1.40.0","@sveltejs/adapter-static":"^3.0.10","@sveltejs/vite-plugin-svelte":"^3.0.0","@testing-library/jest-dom":"^6.6.3","@testing-library/svelte":"^4.2.3","@types/d3-force":"^3.0.10","autoprefixer":"^10.4.16","fake-indexeddb":"^5.0.2","fast-check":"^4.8.0","jsdom":"^24.1.3","postcss":"^8.5.14","svelte-check":"^3.6.0","typescript":"^5.0.0","vite":"^5.0.0","vite-plugin-pwa":"^0.17.4","vitest":"^1.0.0"},"gitHead":"3e6d90221d5d4312431f6de41d6648420081e658","_id":"huntflow@1.0.5","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-hsGR2OFA49drzL56m/SeWV9Azv8LJBaZLefzoSN85+Rwg+4cbbv3e4GFBgpLpFnrIXZmNOIFDD3Dbqp8wWUATw==","shasum":"d1f824bada9995e14c8def017060eb292c3b8cb7","tarball":"https://registry.npmjs.org/huntflow/-/huntflow-1.0.5.tgz","fileCount":165,"unpackedSize":4171651,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCUxlbvorgTU9W6uQaWIFSyfovKsTW09MJ5x+/OeIoxRQIhAOpEH4DDJyT0eRDrJLeXU/mgfNen7RIgNSi6aYmPlmGS"}]},"_npmUser":{"name":"xalgord","email":"xalgord@gmail.com"},"directories":{},"maintainers":[{"name":"xalgord","email":"xalgord@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/huntflow_1.0.5_1783372833727_0.035261348188396546"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-01T08:42:32.558Z","modified":"2026-07-06T21:20:34.112Z","1.0.0":"2026-04-28T23:02:40.421Z","1.0.1":"2026-04-28T23:11:05.360Z","1.0.2":"2026-05-01T08:42:32.880Z","1.0.3":"2026-05-01T12:22:32.003Z","1.0.4":"2026-07-06T21:11:01.741Z","1.0.5":"2026-07-06T21:20:34.005Z"},"author":{"name":"xalgorix"},"license":"SEE LICENSE IN LICENSE","homepage":"https://huntflow.xalgorix.com","keywords":["bug-bounty","security","hunting","pentest","vulnerability","tracker","offline","pwa"],"description":"Bug bounty hunting companion — track targets, sessions, notes, evidence, and payouts. Offline-first, zero telemetry.","maintainers":[{"name":"xalgord","email":"xalgord@gmail.com"}],"readme":"# HuntFlow\n\nYour personal bug bounty command center. Track targets, time hunts, capture evidence, draft reports, and monitor payouts — all from a single local-first app that runs entirely on your machine.\n\n## Why HuntFlow?\n\n- **Local-first, zero telemetry** — Your data stays in your browser. No accounts required, no tracking, nothing phones home.\n- **Purpose-built for hunters** — Every feature is designed around real bug bounty workflows, not retrofitted from generic project tools.\n- **Offline-ready PWA** — Works without an internet connection. Install it like a native app.\n- **Optional cloud sync** — Sign in to sync across devices when you need it. Skip it when you don't.\n\n## Quick Start\n\nRun HuntFlow locally with one command:\n\n```bash\nnpx huntflow\n```\n\nOpens your browser at `http://localhost:3000` with a fresh workspace ready to go.\n\nTo install globally:\n\n```bash\nnpm install -g huntflow\nhuntflow\n```\n\nOverride the default port:\n\n```bash\nnpx huntflow --port 4000\n```\n\n## What You Get\n\n- **Target Tracker** — Organize programs by platform, priority, status, and scope\n- **Focus Timer** — Timed hunt sessions with completion notes and tags\n- **Notes** — Rich markdown notes with templates, preview, and autosave\n- **Evidence Vault** — Proof files, URLs, code snippets, and relationship mapping\n- **Report Builder** — Auto-populated reports with severity suggestions and PDF/markdown export\n- **Stats Dashboard** — Visualize your hunting patterns and progress\n- **Income Tracker** — Track payouts, status progression, and export for taxes\n- **Cloud Sync (Pro)** — Optional sync across devices with end-to-end security\n\n## Screenshots\n\n![HuntFlow dashboard](docs/screenshots/dashboard.png)\n\n| Targets | Notes |\n| --- | --- |\n| ![Targets](docs/screenshots/target-detail.png) | ![Notes](docs/screenshots/notes-preview.png) |\n\n| Stats | Income |\n| --- | --- |\n| ![Stats](docs/screenshots/stats.png) | ![Income](docs/screenshots/income.png) |\n\n## License\n\nHuntFlow is proprietary software. Copyright © 2026 xalgorix. All rights reserved.\n\nYou may install and use HuntFlow on your own devices for personal or internal business use under the terms in [`LICENSE`](./LICENSE). Redistribution, resale, sublicensing, and reverse engineering are not permitted.\n\nFor commercial licensing or inquiries → [huntflow.xalgorix.com](https://huntflow.xalgorix.com)\n","readmeFilename":"README.md"}