focalapi-cli@1.0.4
让任意 AI Agent 直接调用 focalapi 创作模型的命令行工具
AI Security Review
scanned 1mo ago · by lpm-firewall-aiAutomatic postinstall copies first-party FocalAPI skills into detected third-party agent skill directories, which is unconsented install-time agent extension rather than secret theft or remote code. Scanner DNS and credential-redirect labels do not match the source: the dummy focalapi.invalid origin is path validation, and API keys are sent only on user-invoked auth to api.focalapi.com.
Decision evidence
public snapshot- package.json postinstall runs scripts/postinstall.cjs on npm install.
- postinstall spawns dist/cli.js connect install --json, which copies bundled focalapi-* skills into every detected agent skills directory.
- The install catalog targets many third-party agents under the user home directory, including Claude Code, Codex, and Cursor.
- Bundled skills tell those agents to send creative work through FocalAPI even when the user does not name it.
- Writes are limited to namespaced focalapi-* skill folders plus a package-owned manifest; uninstall keeps user-modified skills.
- postinstall does not read API keys, change agent providers, or call the network; CI and FOCALAPI_SKIP_POSTINSTALL=1 skip it.
- HTTP is to api.focalapi.com and the npm registry; https://focalapi.invalid is a dummy origin for path checks, not DNS exfiltration.
- auth login is a user command that stores keys in ~/.focalapi/config.json after checking them against the package API.
- No eval, remote payload execution, or runtime self-dependency install chain.
Source & flagged code
7 flagged · loading sourcePackage defines install-time lifecycle scripts.
package.jsonView on unpkgInstall-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgFindings
Affected versions and remediation
This report applies to focalapi-cli@1.0.4.
See all versions of focalapi-cli for other recorded verdicts.
- Review the evidence and your use of focalapi-cli@1.0.4 before allowing it. Restrict the permissions described in this report.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
Evidence last updated: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.