{"id":"saasrow.com/saasrow","name":"saasrow","commands":["saasrow"],"examples":[{"run":"saasrow search \"analytics\" --pricing-model free --limit 10","does":"Search the software directory without an account"},{"run":"saasrow search --alternative-to Notion","does":"Find alternatives to a product"},{"run":"saasrow login","does":"Sign in with a one-time code mailed to you"},{"run":"saasrow listings create --name \"Acme Analytics\" --website https://acme.example --description \"...\" --category Analytics","does":"Submit a free listing for review"},{"run":"saasrow keys create \"CI deploy\"","does":"Create an API key (also works for the MCP server)"}],"description":"Command-line client for the saasrow.com software directory: search it without an account, and manage your free listings and API keys.","homepage":"https://saasrow.com","repository":"https://github.com/profullstack/saasrow-web","license":"MIT","agentic":false,"latest_version":"1.2.0","vendor":"Profullstack","install":"curl -fsSL https://saasrow.com/install.sh | sh","publisher":"profullstack","w3bs":"w3bs install saasrow.com/saasrow","scan":{"status":"passed","scanner":"threatcrush 0.13.30","filesScanned":398,"summary":{"critical":0,"high":2,"medium":11,"low":2,"info":0},"malware":0,"truncated":false,"version":"1.2.0","sources":{"installer":"https://saasrow.com/install.sh","installerSha256":"67af4ce001f00d879daa4e74992a1534383f840a4ceeda30213e027ff233ab43","repository":"github.com/profullstack/saasrow-web"},"notes":[],"scannedAt":"2026-11-01T22:56:39.270Z","findings":[{"ruleId":"js-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/public/sw.js","line":21,"malware":false},{"ruleId":"js-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/src/lib/edgeProxy.ts","line":69,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/components/JsonLd.tsx","line":13,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/src/lib/emailMarkdown.ts","line":43,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/src/lib/emailMarkdown.ts","line":302,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/views/Admin.tsx","line":1811,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/views/BlogPost.tsx","line":168,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/views/EmailBroadcast.tsx","line":412,"malware":false},{"ruleId":"js-open-redirect","title":"redirect to a non-constant destination","severity":"medium","category":"code","cwe":"CWE-601","file":"source/src/views/Featured.tsx","line":279,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/src/views/NewsPost.tsx","line":137,"malware":false},{"ruleId":"js-open-redirect","title":"redirect to a non-constant destination","severity":"medium","category":"code","cwe":"CWE-601","file":"source/src/views/SoftwareDetail.tsx","line":160,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/supabase/functions/_shared/emailMarkdown.ts","line":43,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/supabase/functions/_shared/emailMarkdown.ts","line":302,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/__tests__/lib/webhooks/supabaseStore.test.ts","line":11,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/cli/test/cli.test.mjs","line":309,"malware":false}]}}