github.com / earendil-works
earendil-works/ pi
TypeScript·1929 files·commit 5fd446c·scanned 10m ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 15 — 109,216+ stars — findings likely false positives
verdict accurate?
109,216 stars
Partial architecture graph
threat-state: lowlive
FINDINGS ░▒▓
criticalchild_process / exec usageExecuting shell commands can be used to download and run malware, exfiltrate data, or modify system files.packages/agent/src/harness/pico3/bash.ts
const started = Date.now();
const child = spawn("bash", ["-c", command], { cwd, stdio: ["ignore", "pipe", "pipe"] });
const onAbort = () => child.kill("SIGKILL");
ctx.abortSignal?.addEvent...+8criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.packages/agent/test/utils/calculate.ts
try {
const result = new Function(`return ${expression}`)();
return { content: [{ type: "text", text: `${expression} = ${result}` }], details: undefined };
} catch (e: any) {+5criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.packages/ai/test/validation.test.ts
// The CSP test above selects TypeBox's process-wide interpreted fallback, so exercise the generated validator explicitly.
const generatedCheck = new Function(Compile(tool.parameters).Code())() as...+5criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.packages/coding-agent/examples/extensions/doom-overlay/doom-engine.ts
const nativeRequire = createRequire(doomJsPath);
const moduleFunc = new Function("module", "exports", "__dirname", "__filename", "require", doomJsCode);
moduleFunc(moduleExports, moduleExports.e...+5warningSuspicious Windows batch commandBatch file contains commands commonly used to download and execute remote payloads (powershell, certutil, bitsadmin, curl to pipe, etc.).pi-test.bat
set "SCRIPT_DIR=%~dp0" set "POWERSHELL_EXE=powershell.exe" where %POWERSHELL_EXE% >nul 2>nul+5
infoBase64 encoding usedatob() or Buffer.from with base64. Common in legitimate code but also used to hide malicious URLs.packages/ai/src/auth/oauth/openai-codex.ts
const payload = parts[1] ?? "";
const decoded = atob(payload);
return JSON.parse(decoded) as JwtPayload;
} catch {+2warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.packages/coding-agent/src/modes/interactive/components/daxnuts.ts+4
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.packages/coding-agent/src/core/export-html/index.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.packages/coding-agent/src/core/export-html/index.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.packages/coding-agent/src/experimental/server.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.packages/coding-agent/src/extensions/llama/index.ts+3
warningHigh-entropy string literalsFound 6 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.packages/coding-agent/src/main.ts+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.packages/server/src/server.ts+3
warningLarge base64-encoded blobA 6144-character base64 blob was found. May hide a remote payload or encoded executable code.packages/coding-agent/src/modes/interactive/components/daxnuts.ts
bbbab8b9b9b6b9b8b5bcbbb8b8b7b4b7b5b2b6b5b2b8b7b4b7b6b3b6b4b1...+3
warningLarge hex-encoded blobA 6144-character hex blob was found. Often used to hide shellcode or C2 addresses.packages/coding-agent/src/modes/interactive/components/daxnuts.ts
bbbab8b9b9b6b9b8b5bcbbb8b8b7b4b7b5b2b6b5b2b8b7b4b7b6b3b6b4b1...+3
infoNative addon dependency"@typescript/native-preview" includes native compiled code. Native addons can hide behavior that static JS analysis cannot see.package.json+2
Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.
1690 files scanned @ 5fd446c | 9/25/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration2
file system access0
obfuscation15
supply chain6
owasp / injection0
telemetry
files 1690/1929rules hit 19engine v6commit 5fd446c
github
earendil-works/pi
AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI
109216
13874
412d
1929 files
1690 scanned(88%)
5fd446c
architecture░▒▓
entry (0) flagged (162) pkg (91)
491 nodes · 1499 edgesscroll to zoom · click node to jump to finding