The flagged line simply reads the PORT setting from the environment so the server can listen on a configurable port, defaulting to 8182. This is a normal and expected part of any web server and does not expose or steal any sensitive information.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.serialize-environment. The match applies to this repository.
Contextual assessment: The flagged line reads process.env.PORT with a fallback to 8182 and parses it as an integer for the Bun.serve port. This is a standard and benign server configuration pattern. No other environment variables are read, serialized, or transmitted. The server code also includes directory-traversal guards for static file serving and a fixed OpenRouter proxy target. No credential exfiltration or environment serialization is present.
The flagged text is part of standard code for reading streaming responses from AI providers. It is not a suspicious link or data-theft mechanism. The tool sends requests only to legitimate AI service endpoints that the user selects, which is exactly what it is designed to do.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: The scanner flagged line 409 which contains the string 'data: ' used as an SSE protocol field prefix in a streaming response parser. This is not a data: URI or a suspicious external link; it is standard Server-Sent Events parsing logic for an OpenAI-compatible chat completions endpoint. The network destinations in this file are the well-known provider API base URLs enumerated in the PROVIDERS registry plus a user-configurable custom endpoint. API keys are retrieved from local storage and sent as Bearer tokens only to the selected provider endpoint, which matches the project's stated purpose of AI-assisted card editing across multiple model providers.
The flagged links are just example addresses for local AI tools shown in the settings menu, repeated once for each of the 10 supported languages. They are plain text in a translation file, not actual network connections or code that runs anything.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.shady-link. The match applies to this repository.
Contextual assessment: Detailed technical wording was omitted by the public report safety filter.
The flagged text is just the standard one-line command to install the Bun runtime, copied from Bun's own documentation into the project's setup guide. It only runs if a developer manually copies and pastes it during setup, and it comes from the official Bun installer URL.
Technical evidence
Scanner reason: OpenGrep matched static-analysis rule tavernkeeper.download-and-execute.shell-pipeline. The match applies to this repository.
Contextual assessment: The scanner matched the standard Bun runtime installation instruction in README documentation. This is a well-known install pattern from the official Bun project, appears in a markdown code block under installation instructions, and is not executable code shipped by the project. No downloaded content is executed by the application itself.
This is a normal text-formatting rule that converts markdown code blocks into styled HTML for display. It runs after the text is already escaped for safety, and the pattern itself does not have any performance or security problems.
Technical evidence
Scanner reason: JavaScript analysis matched static JavaScript security signal javascript.xray.unsafe-regex. The match applies to this repository.
Contextual assessment: The flagged regex on line 492 is a markdown-to-HTML formatting pattern that matches triple-backtick code fences. It uses a lazy quantifier over a character class, which does not exhibit catastrophic backtracking. The regex is applied after Ui.escapeHtml escapes the AI response text, so the replaced content is already sanitized before HTML tags are inserted. This is a standard text-rendering utility for displaying AI chat output in a card editor extension and matches the project's stated purpose.
AI response content is escaped before HTML injection
low risk · high confidence
AI-generated text is cleaned of dangerous characters before being turned into formatted HTML, which is the correct approach for displaying model output safely.
Technical assessment
Detailed technical wording was omitted by the public report safety filter.
API key handling is proportional to stated purpose
low risk · high confidence
The tool stores your API key locally and sends it only to the AI service you choose. There is no sign of keys being sent anywhere unexpected.
Technical assessment
API keys are stored via CardStorage and sent only as Authorization Bearer headers to the user-selected provider endpoint. There is no evidence of keys being logged, sent to third-party endpoints, or exfiltrated. The custom provider mode allows a user-supplied endpoint, which is an expected feature for OpenAI-compatible local models.