{"id":"profullstack.com/summary-forge","name":"summary-forge","commands":["summary"],"examples":[{"run":"summary setup","does":"Enter API keys and settings interactively (OpenAI key required)"},{"run":"summary file <path/to/book.pdf>","does":"Summarize a local PDF or EPUB"},{"run":"summary url <url>","does":"Summarize a web page or article"},{"run":"summary interactive","does":"Open the guided interactive mode"}],"description":"CLI that uses AI to write summaries of technical books.","homepage":"https://github.com/profullstack/summary-forge-module","repository":"https://github.com/profullstack/summary-forge-module","license":"MIT","agentic":true,"latest_version":"1.10.2","vendor":"Profullstack","install":"curl -fsSL https://raw.githubusercontent.com/profullstack/summary-forge-module/master/install.sh | sh","publisher":"profullstack","w3bs":"w3bs install profullstack.com/summary-forge","scan":{"status":"passed","scanner":"threatcrush 0.13.30","filesScanned":80,"summary":{"critical":0,"high":0,"medium":13,"low":2,"info":0},"malware":0,"truncated":false,"version":"1.10.2","sources":{"installer":"https://raw.githubusercontent.com/profullstack/summary-forge-module/master/install.sh","installerSha256":"7370a526ee9e230adf584a18ab4faa4496ce27a6dd142dbfec7c754c05084269","repository":"github.com/profullstack/summary-forge-module"},"notes":[],"scannedAt":"2026-11-01T22:56:20.395Z","findings":[{"ruleId":"secret-hex-token","title":"High-entropy Hex Token","severity":"medium","category":"secret","cwe":"CWE-798","file":"source/CLOUDFLARE_2CAPTCHA_INTEGRATION.md","line":50,"malware":false},{"ruleId":"js-credential-logged","title":"credential read from the environment into a log sink","severity":"medium","category":"code","cwe":"CWE-532","file":"source/index.js","line":248,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"medium","category":"code","cwe":"CWE-338","file":"source/src/summary-forge.js","line":804,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"medium","category":"code","cwe":"CWE-95","file":"source/src/summary-forge.js","line":911,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"medium","category":"code","cwe":"CWE-338","file":"source/src/summary-forge.js","line":1079,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"medium","category":"code","cwe":"CWE-338","file":"source/src/summary-forge.js","line":1372,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"medium","category":"code","cwe":"CWE-338","file":"source/src/summary-forge.js","line":1787,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"medium","category":"code","cwe":"CWE-338","file":"source/src/summary-forge.js","line":2071,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"medium","category":"code","cwe":"CWE-95","file":"source/src/summary-forge.js","line":2225,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"medium","category":"code","cwe":"CWE-95","file":"source/src/summary-forge.js","line":2277,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"medium","category":"code","cwe":"CWE-95","file":"source/src/summary-forge.js","line":2313,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"medium","category":"code","cwe":"CWE-338","file":"source/src/utils/web-page.js","line":138,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"medium","category":"code","cwe":"CWE-338","file":"source/test-webshare-auth.js","line":23,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"low","category":"code","cwe":"CWE-338","file":"source/test/proxy-auth.test.js","line":50,"malware":false},{"ruleId":"insecure-randomness-for-secret","title":"predictable randomness used for a security value","severity":"low","category":"code","cwe":"CWE-338","file":"source/test/web-page-utils.test.js","line":146,"malware":false}]}}