registry  /  oh-my-opencode  /  4.15.0

oh-my-opencode@4.15.0

The Best AI Agent Harness - Batteries-Included OpenCode Plugin with Multi-Model Orchestration, Parallel Background Agents, and Crafted LSP/AST Tools

Static Scan Results

scanned 9d ago · by rust-scanner

Static analysis flagged 22 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsTelemetryUrlStrings
ManifestNo manifest risk signals triggered.
scanned 384 file(s), 6.34 MB of source, external domains: 127.0.0.1, api.github.com, biomejs.dev, bun.sh, clangd.llvm.org, cli.github.com, clojure-lsp.io, deno.land, eu-assets.i.posthog.com, eu.i.posthog.com, github.com, gleam.run, json-schema.org, mcp.context7.com, models.dev, nodejs.org, posthog.com, registry.npmjs.org, sentry.io, us-assets.i.posthog.com, us.i.posthog.com, yandex.com, your-server.example.com
Oversized source lightweight scan
dist/cli/index.js2.85 MB file, sampled 256 KB
FilesystemNetworkChildProcessEnvironmentVarsCryptoShellHighEntropyStringsTelemetryUrlStrings127.0.0.1cli.github.comgithub.comyour-server.example.com
dist/cli-node/index.js2.81 MB file, sampled 256 KB
FilesystemNetworkChildProcessEnvironmentVarsCryptoShellHighEntropyStringsTelemetryUrlStrings127.0.0.1github.comyour-server.example.com
dist/index.js5.18 MB file, sampled 256 KB
FilesystemNetworkChildProcessEnvironmentVarsHighEntropyStringsTelemetryUrlStringsposthog.comsentry.ious.i.posthog.com

Source & flagged code

13 flagged · loading source
package.jsonView file
scripts.postinstall = node postinstall.mjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

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

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

package.jsonView on unpkg
bin/oh-my-opencode.jsView file
4L5: import { spawnSync } from "node:child_process"; L6: import { existsSync, readFileSync } from "node:fs";
High
Child Process

Package source references child process execution.

bin/oh-my-opencode.jsView on unpkg · L4
4Cross-file remote execution chain: bin/oh-my-opencode.js spawns packages/omo-codex/scripts/install-dist/install-local.mjs; helper contains network access plus dynamic code execution. L4: L5: import { spawnSync } from "node:child_process"; L6: import { existsSync, readFileSync } from "node:fs"; ... L23: function getLibcFamily() { L24: if (process.platform !== "linux") { L25: return undefined; // Not needed on non-Linux ... L41: L42: if (process.env.OH_MY_OPENCODE_FORCE_BASELINE === "1") { L43: return false; ... L63: L64: return probe.stdout.toUpperCase().includes("AVX2"); L65: }
High
Cross File Remote Execution Context

Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.

bin/oh-my-opencode.jsView on unpkg · L4
16L17: const require = createRequire(import.meta.url); L18:
Medium
Dynamic Require

Package source references dynamic require/import behavior.

bin/oh-my-opencode.jsView on unpkg · L16
dist/tui.jsView file
4254import { promisify as promisify2 } from "util"; L4255: var execAsync; L4256: var init_execute_command = __esm(() => {
High
Shell

Package source references shell execution.

dist/tui.jsView on unpkg · L4254
189var init_js_yaml = __esm(() => { L190: /*! js-yaml 4.2.0 https://github.com/nodeca/js-yaml @license MIT */ L191: __create2 = Object.create; ... L619: for (;index < max; index++) { L620: if (!isHexCode(data.charCodeAt(index))) L621: return false; ... L3907: const osProvider = options.osProvider ?? os; L3908: const env = options.env ?? process.env; L3909: const preferredDir = env.XDG_DATA_HOME ?? path.join(osProvider.homedir(), ".local", "share"); L3910: return resolveWritableDirectory(preferredDir, `${appName}-data`, osProvider); ... L4214: // [redacted].ts L4215: import { execFile } from "child_process";
Low
Weak Crypto

Package source references weak cryptographic algorithms.

dist/tui.jsView on unpkg · L189
postinstall.mjsView file
80package = oh-my-opencode; repositoryIdentity = oh-my-openagent; dependency = detect-libc L80: try { L81: const detectLibc = require("detect-libc"); L82: return detectLibc.familySync();
High
Copied Package Dependency Bridge

Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.

postinstall.mjsView on unpkg · L80
packages/omo-codex/scripts/install-local-entrypoint.test.mjsView file
64// when L65: const output = execFileSync( L66: process.execPath, ... L71: // then L72: assert.equal(output, "npx --yes oh-my-openagent@latest install --platform=codex --no-tui --codex-autonomous"); L73: });
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

packages/omo-codex/scripts/install-local-entrypoint.test.mjsView on unpkg · L64
dist/skills/ast-grep/install.shView file
path = dist/skills/ast-grep/install.sh kind = build_helper sizeBytes = 7581 magicHex = [redacted]
Medium
Ships Build Helper

Package ships non-JavaScript build or shell helper files.

dist/skills/ast-grep/install.shView on unpkg
dist/skills/ast-grep/tests/smoke.ps1View file
path = dist/skills/ast-grep/tests/smoke.ps1 kind = payload_in_excluded_dir sizeBytes = 5701 magicHex = [redacted]
High
Payload In Excluded Dir

Package hides binary, compressed, or executable-looking payloads in test/fixture/hidden paths.

dist/skills/ast-grep/tests/smoke.ps1View on unpkg
dist/cli-node/index.jsView file
path = dist/cli-node/index.js kind = oversized_source_file sizeBytes = 2943305 magicHex = [redacted]
High
Oversized Source File

Package contains source files above the static scanner size ceiling.

dist/cli-node/index.jsView on unpkg
path = dist/cli-node/index.js kind = oversized_cli_entrypoint sizeBytes = 2943305 magicHex = [redacted]
Medium
Oversized Cli Entrypoint

Package contains an oversized executable-looking CLI entrypoint.

dist/cli-node/index.jsView on unpkg

Findings

8 High7 Medium7 Low
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processbin/oh-my-opencode.js
HighShelldist/tui.js
HighCopied Package Dependency Bridgepostinstall.mjs
HighCross File Remote Execution Contextbin/oh-my-opencode.js
HighRuntime Package Installpackages/omo-codex/scripts/install-local-entrypoint.test.mjs
HighPayload In Excluded Dirdist/skills/ast-grep/tests/smoke.ps1
HighOversized Source Filedist/cli-node/index.js
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumDynamic Requirebin/oh-my-opencode.js
MediumNetwork
MediumEnvironment Vars
MediumShips Build Helperdist/skills/ast-grep/install.sh
MediumOversized Cli Entrypointdist/cli-node/index.js
MediumStructural Risk Force Deep Review
LowNon Install Lifecycle Scripts
LowScripts Present
LowWeak Cryptodist/tui.js
LowFilesystem
LowHigh Entropy Strings
LowTelemetry
LowUrl Strings