OpenVSX Registry Verified

AI Error Message Humanizer — Rewrite Cryptic Errors with OpenRouter

9a8de322-1164-5a92-a12d-251bd416e631 | v0.0.5
52/ 100
MEDIUM risk
+1 since v0.0.4
Analyst verdict
Review before use

The AI review rates the findings as likely false positive, but the risk score (52/100) still counts them.

Analysis record

Analysed
1 weeks ago
Version
v0.0.5
Artifact
SHA256 D44…028
Source
Findings (non-IoC)

Is AI Error Message Humanizer — Rewrite Cryptic Errors with OpenRouter safe?

The extension turns a cryptic error message into a plain-English one by sending that message and the code around it to a model hosted on openrouter.ai. It declares no special permissions in its manifest, which is normal for a VS Code code-action extension. The outbound traffic we recorded is a single fetch call to openrouter.ai, the same provider the extension advertises, plus link strings in its packaged build such as img.shields.io and schemas.openxmlformats.org.

The finding worth naming is NET-FETCH-extension/out/extension.js-1, a network call inside extension/out/extension.js. If that call went somewhere unrelated to the stated job, it would mean your code leaving the machine for no disclosed reason. Here the destination matches the service the extension says it uses, so the call is the feature. The scan also logged 21 domain hits; most are badge and namespace strings pulled in by the build, and two are sites carrying the author's own name.

The rest of the noise comes from how the packaged file is produced. extension/out/extension.js is bundled and minified, so code-quality rules fire on ordinary Node.js patterns like fetch and environment variables, and one bundled dependency shows up as its own finding. None of the items is a malware signature, and the scan turned up no obfuscation and no access to key files like .env or .git/config.

The real question isn't malware, it's whether you want to send code context to OpenRouter in exchange for better error messages, since the extension needs an OpenRouter API key and bills per token. That's a decision about the AI provider. The code in this package does what its description says.

No Findings

All security checks passed

Publisher Evidence

Low

ciro-maciel

Publisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.

65
Noisy-finding weight
x1.00
Publisher domain
No domain
Missing
Store verification signal
Verified publisher
Verified
Extension portfolio
11
Portfolio

12 evidence rows available.

No Threats Detected

This extension passed all security checks

AI Security Report

AI Security Review

Evidence context: threat category none; evidence quality moderate.

This extension reads the error message at your cursor, sends it plus the surrounding code to a model on OpenRouter, and offers a rewritten message as a code action. Every finding in the scan follows from that one loop.

The network finding is NET-FETCH-extension/out/extension.js-1, a fetch call in extension/out/extension.js. That path is the compiled JavaScript build output, and the destination is openrouter.ai, the provider named in the extension's own description. A single HTTP call to a model API, inside a file whose only job is to call a model API, is the product working.

The 21 domain hits break down into strings the build carried along. openrouter.ai is the API. img.shields.io is a README badge. schemas.openxmlformats.org is an XML namespace identifier, a label inside a document format rather than a host the code contacts. errors.new is a Go error-handling site that shows up in prose about error messages. ciromaciel.click and by-ciromaciel.click are the only entries not tied to a third party, and both carry the publisher's own name, which fits a docs or landing page.

On credentials: there are no secret findings. Nothing in extension/out/extension.js shows reads of .env files, .git/config, SSH keys or cloud credential files, and no hit touches VS Code's secret storage. The extension needs exactly one credential, an OpenRouter API key, because the model calls are pay-per-token. The scan does not resolve how that key is stored or where it travels beyond openrouter.ai. Anyone installing it should assume the code context around an error reaches OpenRouter, because that is the transaction being sold.

The 14 code-smell hits and the single dependency hit are pattern matches against bundled npm code inside the minified build. Those rules fire on fetch calls, process.env references and crypto imports that any Node bundle contains. No malware signature matched, no obfuscation was flagged, and nothing points at tool poisoning or a modified IDE configuration.

The strongest counterargument is that this tool ships source context off the machine to a paid API and lists two .click domains, a cheap TLD that attracts abuse. That is fair to weigh. It does not change the conclusion: both .click domains match the author's name, the confirmed outbound call is the advertised one, and no code path reads secrets or writes outside the document you invoke the action on. Users who cannot send code to a third-party model provider shouldn't install it, and that is a question about OpenRouter's terms, which this scan does not answer.

Key Reasons

  • NET-FETCH-extension/out/extension.js-1 resolves to extension/out/extension.js, the compiled build output, and targets openrouter.ai, the model provider named in the extension's own description.
  • No secret findings: nothing in the scan shows reads of .env, .git/config, SSH keys, cloud credential files, or VS Code secret storage.
  • Most of the 21 domain hits are non-endpoints: img.shields.io is a README badge, schemas.openxmlformats.org is an XML namespace identifier, errors.new is a Go error-handling site, openrouter.ai is the stated API.
  • The 14 code-smell and single dependency findings match bundled npm code inside the minified extension/out/extension.js, which is build output from any non-trivial Node extension.
  • No malware signature, no obfuscation, and no tool-poisoning findings; ciromaciel.click and by-ciromaciel.click carry the publisher's own name.

False Positive Considerations

  • IoC extractor harvesting README badges and XML namespace URIs as network endpoints
  • Code-smell rules firing on ordinary fetch, process.env and crypto patterns in bundled JavaScript
  • Dependency finding generated by a package bundled into extension/out/extension.js
  • Minified compiled output treated as suspicious structure rather than webpack/tsc build artifact

Reviewed 2026-10-18; recommended action: suppress false positive; model confidence 85%.

Open VSX version history

Risk trend by version

3 analyzed versions. Each point is the latest successful scan for that version; failed zero-score scans are hidden. Dates are based on first seen by risky plugins.

Selected
52
Change since first
+1
Change from previous
+1
Versions:
First analyzed version
0.0.1
Sep 24, 2026
Risk range
51 to 52
Across analyzed versions
Latest analyzed version
0.0.5
Oct 15, 2026
Selected version
medium
Version
v0.0.5
1 weeks ago
Risk score
52
Findings
37
Change vs previous
+1

Pick any point on the chart to explore that version's code below.

About This Extension

AI code action that rewrites cryptic throw new Error() / raise / panic! messages into actionable, human-readable ones — using the surrounding code as context. Any model on OpenRouter — GPT-5, Claude Sonnet, Gemini, DeepSeek. Pay-per-token.

Frequently Asked Questions