registry  /  opencode-nvim  /  0.1.0

opencode-nvim@0.1.0

OpenCode plugin that opens AI-edited files in Neovim automatically

AI Security Review

scanned 3h ago · by lpm-firewall-ai

Install-time code fetches an unpinned, unchecked executable and stores it in the package directory. A later `/nvim` command executes that binary.

Static reason
One or more suspicious static signals were detected.
Trigger
npm installation, then explicit `/nvim` command use
Impact
A compromised or changed release/redirect could supply arbitrary code for later local execution.
Mechanism
remote binary download followed by user-command execution
Rationale
The package has no confirmed malicious payload in the inspected source, but its install hook introduces an unchecked remote executable supply chain. This warrants a warning rather than a block under the stated policy.
Evidence
package.jsonscripts/postinstall.jscommands/nvim.mdREADME.mdbin/ocnvim
Network endpoints1
github.com/mauri870/opencode-nvim/releases/latest/download/ocnvim-${target}

Decision evidence

public snapshot
AI called this Suspicious at 91.0% confidence as Dangerous Capability with low false-positive risk.
Evidence for warning
  • `package.json` runs `scripts/postinstall.js` on install.
  • `scripts/postinstall.js` downloads a platform binary from GitHub Releases using `latest`.
  • The installer follows redirect locations without host validation or integrity checking.
  • The downloaded `bin/ocnvim` is made executable.
  • `commands/nvim.md` executes that binary through `execFileSync`.
Evidence against
  • No source reads environment variables, credentials, or user files.
  • No exfiltration, destructive operations, or foreign AI-agent config writes are present.
  • The binary is placed only under this package's `bin/` directory.
  • Execution from the command is user-triggered and uses argument-array `execFileSync`.
Behavioral surface
Source
FilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 1 file(s), 2.46 KB of source, external domains: github.com

Source & flagged code

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

Package defines install-time lifecycle scripts.

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

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

package.jsonView on unpkg

Findings

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