registry  /  @emend-ai/utim  /  1.46.14

@emend-ai/utim@1.46.14

UTIM – Universal Terminal Intelligence Manager. An agentic AI coding assistant for your terminal.

AI Security Review

scanned 3h ago · by lpm-firewall-ai

The package uses an npm postinstall hook to preinstall a package-aligned Python engine from pip, and the CLI can install it later if absent. This is install-time dependency bootstrapping with remote package execution risk, but no confirmed malicious payload or exfiltration in the npm package source.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; running utim triggers first-run Python engine installation/launch
Impact
Remote Python dependencies may be installed into the user's Python environment; no confirmed data theft, persistence, or destructive behavior in package source.
Mechanism
npm wrapper bootstraps and launches pip package utim-cli
Rationale
Source inspection shows risky install-hook bootstrapping of a remote Python engine, including one curl-to-bash Termux path, but the behavior is disclosed/package-aligned and no concrete malicious exfiltration, persistence, prompt manipulation, or destructive chain is present. Treat as warn-level lifecycle/install risk, not a publish block.
Evidence
package.jsonscripts/postinstall.jsbin/utim.jsREADME.mdbin/utim.js chmod 0755OS temp utim_install_*.lock
Network endpoints3
raw.githubusercontent.com/Eutalix/android-pydantic-core/main/install_pydantic_core.sheutalix.github.io/android-pydantic-core/termux-user-repository.github.io/pypi/

Decision evidence

public snapshot
AI called this Suspicious at 78.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • package.json defines postinstall: node scripts/postinstall.js
  • scripts/postinstall.js silently runs python -m pip install --upgrade --quiet utim-cli during npm install
  • bin/utim.js installs/updates utim-cli via pip on first CLI run if missing
  • bin/utim.js Termux path pipes curl output from raw.githubusercontent.com/Eutalix/android-pydantic-core to bash
Evidence against
  • No credential, env, or filesystem harvesting found in inspected JS
  • No obfuscation, eval, dynamic require, or embedded payloads found
  • Network/install behavior is aligned with declared UTIM Python engine launcher purpose
  • No AI-agent config/control-surface mutation found during npm install
  • postinstall failures are ignored and launcher provides user-visible install flow on first run
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystem
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 2 file(s), 13.8 KB of source, external domains: eutalix.github.io, python.org, raw.githubusercontent.com, termux-user-repository.github.io

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
MediumEnvironment Vars
LowScripts Present
LowFilesystem
LowUrl Strings