registry  /  relay-agent-studio  /  0.1.0-alpha.3

relay-agent-studio@0.1.0-alpha.3

Relay — an AI software studio that runs on your machine. Describe an app; a team of AI agents plans, builds, tests, and fixes it.

Static Scan Results

scanned 3d ago · by rust-scanner

Static analysis flagged 17 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
ChildProcessCryptoDynamicRequireEnvironmentVarsEvalFilesystemNetworkShell
Supply chain
HighEntropyStringsMinifiedUrlStrings
Manifest
NoLicense
scanned 34 file(s), 988 KB of source, external domains: 127.0.0.1, api.anthropic.com, api.deepseek.com, api.groq.com, api.mistral.ai, api.openai.com, api.perplexity.ai, api.together.xyz, api.x.ai, generativelanguage.googleapis.com, github.com, openrouter.ai, reactjs.org, registry.npmjs.org, relay.local, www.w3.org, xxxxx.supabase.co, your-api.example

Source & flagged code

8 flagged · loading source
relay.app.jsonView file
4patternName = supabase_service_key severity = critical line = 4 matchedText = "supabas...xM",
Critical
Critical Secret

Package contains a critical-looking secret pattern.

relay.app.jsonView on unpkg · L4
4patternName = supabase_service_key severity = critical line = 4 matchedText = "supabas...xM",
Critical
Secret Pattern

Supabase service role key (JWT) in relay.app.json

relay.app.jsonView on unpkg · L4
bin/relay-studio.mjsView file
3// Starts the local server (which also serves the built UI) and opens the browser. L4: import { spawn } from "node:child_process"; L5: import { homedir } from "node:os";
High
Child Process

Package source references child process execution.

bin/relay-studio.mjsView on unpkg · L3
35try { L36: if (process.platform === "win32") spawn("cmd.exe", ["/d", "/s", "/c", "start", "", target], { detached: true, stdio: "ignore", windowsHide: true }); L37: else if (process.platform === "darwin") spawn("open", [target], { detached: true, stdio: "ignore" });
High
Shell

Package source references shell execution.

bin/relay-studio.mjsView on unpkg · L35
server/agentLoop.mjsView file
1075} else { L1076: try { new Function(content); results.push(`JS ${path}: syntax OK`); } L1077: catch (e) { hasError = true; results.push(`JS ${path}: SYNTAX ERROR — ${e.message}`); }
Low
Eval

Package source references a known benign dynamic code generation pattern.

server/agentLoop.mjsView on unpkg · L1075
electron/main.cjsView file
2Manifest entrypoint (manifest.main) carries capability families absent from dist/build output: environment+network L2: // (it needs full Node: child processes for npm/tsc/dev servers, Playwright, CLI agents), L3: // and the window is just a client of http://127.0.0.1:<port> — same origin the browser L4: // and npx flows use, so SSE, the session token, and the OAuth callback all work as-is. ... L11: L12: const port = Number(process.env.RELAY_PORT || 4317); L13: let relayPort = port; ... L42: async function boot() { L43: await import(pathToFileURL(join(__dirname, "..", "server", "index.mjs")).href); L44: await app.whenReady();
High
Entrypoint Build Divergence

Manifest entrypoint contains risky behavior absent from dist/build output.

electron/main.cjsView on unpkg · L2
6// CommonJS on purpose: `electron` is a CJS module and does not provide ESM named L7: // exports in the main process; the ESM server is pulled in via dynamic import(). L8: const { app, BrowserWindow, shell } = require("electron");
Medium
Dynamic Require

Package source references dynamic require/import behavior.

electron/main.cjsView on unpkg · L6
server/preview.mjsView file
1import { createServer } from "node:http"; L2: import { spawn } from "node:child_process"; L3: import { readFile } from "node:fs/promises"; ... L8: L9: const PREVIEW_PORT = Number(process.env.RELAY_PREVIEW_PORT || 4319); L10:
High
Same File Env Network Execution

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

server/preview.mjsView on unpkg · L1

Findings

2 Critical4 High4 Medium7 Low
CriticalCritical Secretrelay.app.json
CriticalSecret Patternrelay.app.json
HighChild Processbin/relay-studio.mjs
HighShellbin/relay-studio.mjs
HighEntrypoint Build Divergenceelectron/main.cjs
HighSame File Env Network Executionserver/preview.mjs
MediumDynamic Requireelectron/main.cjs
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowNon Install Lifecycle Scripts
LowScripts Present
LowEvalserver/agentLoop.mjs
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings
LowNo License