{"id":"profullstack.com/cli-tools","name":"cli-tools","commands":["cli-tools","gh-prs","gh-prs-merge","websearch","ask-web","domainjson","domainfree","openinstall","openmcp","proxy","codeburn","jobhunt","img","vid","dl","tts"],"examples":[{"run":"cli-tools config set perplexity","does":"Store an API key once (prompted, never echoed) for the commands that need one"},{"run":"gh-prs --orgs <org>","does":"List open pull requests across a GitHub org, newest first"},{"run":"ask-web \"<question>\" --recency month","does":"Answer a question from a live web search, with numbered sources"},{"run":"vid info <file.mp4>","does":"Show a video's duration, streams and size"}],"description":"A collection of TypeScript command-line tools for working across many repositories, searching the web, checking domains, handling media and provisioning servers.","homepage":"https://github.com/profullstack/cli-tools","repository":"https://github.com/profullstack/cli-tools","license":"MIT","agentic":true,"latest_version":"0.73.0","vendor":"Profullstack","install":"curl -fsSL https://raw.githubusercontent.com/profullstack/cli-tools/master/install.sh | sh","publisher":"profullstack","w3bs":"w3bs install profullstack.com/cli-tools","scan":{"status":"passed","scanner":"threatcrush 0.13.30","filesScanned":408,"summary":{"critical":0,"high":15,"medium":12,"low":14,"info":0},"malware":0,"truncated":false,"version":"0.73.0","sources":{"installer":"https://raw.githubusercontent.com/profullstack/cli-tools/master/install.sh","installerSha256":"e5259c9021eb8493cfa8a6ef2f0289844de2c981bfa94f88b3ad6325d753f795","repository":"github.com/profullstack/cli-tools","commit":"47faec1f10ea25800291e661d31b2e1a76211ca0"},"notes":[],"scannedAt":"2026-11-03T04:48:47.321Z","findings":[{"ruleId":"py-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/dev2/dev2-site","line":151,"malware":false},{"ruleId":"py-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/dev2/dev2-site","line":1099,"malware":false},{"ruleId":"py-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/dev2/dev2-site","line":1843,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-ubuntu.sh","line":3262,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-ubuntu.sh","line":3263,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-ubuntu.sh","line":5168,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-ubuntu.sh","line":5172,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-w3bs-os.sh","line":3639,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-w3bs-os.sh","line":3640,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-w3bs-os.sh","line":5569,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-w3bs-os.sh","line":5579,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-w3bs-os.sh","line":5586,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-w3bs-os.sh","line":5602,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"high","category":"code","cwe":"CWE-494","file":"source/root-w3bs-os.sh","line":5607,"malware":false},{"ruleId":"sh-plaintext-download","title":"download over plain HTTP","severity":"high","category":"code","cwe":"CWE-319","file":"source/root-w3bs-os.sh","line":6289,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/dev2/dev2-site","line":1326,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/dev2/dev2-site","line":1403,"malware":false},{"ruleId":"sh-remote-script-execution","title":"network output piped into a shell","severity":"medium","category":"code","cwe":"CWE-494","file":"source/root-ubuntu.sh","line":5376,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/src/domain-free.ts","line":56,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/src/emoji.ts","line":167,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/src/icon.ts","line":166,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/src/mail.ts","line":1060,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/users-dump.ts","line":487,"malware":false},{"ruleId":"sql-string-concatenation","title":"SQL assembled by concatenation or interpolation","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/users-dump.ts","line":507,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/users-dump.ts","line":540,"malware":false},{"ruleId":"sql-string-concatenation","title":"SQL assembled by concatenation or interpolation","severity":"medium","category":"code","cwe":"CWE-89","file":"source/src/users-dump.ts","line":574,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/src/wcag.ts","line":556,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/src/credentials.ts","line":41,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/src/credentials.ts","line":58,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/src/credentials.ts","line":61,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/src/credentials.ts","line":66,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/src/user-export.ts","line":689,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/src/user-export.ts","line":695,"malware":false},{"ruleId":"secret-generic-api-key","title":"Generic API Key","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/credentials.test.ts","line":208,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/mail.test.ts","line":141,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/proxy.test.ts","line":69,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/proxy.test.ts","line":85,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/shorten.test.ts","line":36,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/users-dump.test.ts","line":108,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/users-dump.test.ts","line":119,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/users-dump.test.ts","line":120,"malware":false}]}}