registry  /  @leohenon/ocv  /  1.17.17-ocv.4.7

@leohenon/ocv@1.17.17-ocv.4.7

ocv (OpenCode fork with vim keybindings).

AI Security Review

scanned 7d ago · by lpm-firewall-ai

No confirmed malicious attack surface was established. The package installs and launches a package-aligned native CLI binary, with normal supply-chain risk from install-time binary download but no source evidence of exfiltration or unauthorized mutation.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; user command ocv runs bin/ocv
Impact
Installs package-local executable and runs it when the user invokes ocv
Mechanism
platform-specific binary downloader and CLI wrapper
Rationale
The suspicious primitives are aligned with a binary-distributed CLI: postinstall fetches release assets from the package repository and writes only the package-local executable. Static inspection found no credential collection, exfiltration, persistence, destructive behavior, or AI-agent control hijack.
Evidence
package.jsonpostinstall.cjsbin/ocvbin/.ocvbin/.ocv.exe
Network endpoints1
github.com/leohenon/opencode-vim/releases/download

Decision evidence

public snapshot
AI called this Clean at 84.0% confidence as Benign with medium false-positive risk.
Evidence for block
  • package.json defines postinstall: node ./postinstall.cjs
  • postinstall.cjs downloads a platform binary over fetch and writes bin/.ocv
  • postinstall.cjs uses child_process.spawnSync only for sysctl/ldd platform detection
  • bin/ocv spawns bin/.ocv, or OCV_BIN_PATH when explicitly set
Evidence against
  • Download URL is package-aligned: github.com/leohenon/opencode-vim releases
  • Lifecycle write is limited to package-local bin/.ocv and chmod
  • No credential, env, home directory, or project file harvesting found
  • No broad AI-agent config/control-surface writes found
  • No obfuscated eval, remote script execution, persistence, or destructive behavior found
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 1 file(s), 3.59 KB of source, external domains: github.com

Source & flagged code

2 flagged · loading source
package.jsonView file
scripts.postinstall = node ./postinstall.cjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node ./postinstall.cjs
Medium
Ambiguous Install Lifecycle Script

Install-time lifecycle script is not statically allowlisted and needs review.

package.jsonView on unpkg

Findings

1 High3 Medium3 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
LowScripts Present
LowFilesystem
LowUrl Strings