github TypeScript analyzed 06515da unconfirmed MCP

Ninthless/StackFerry

github

A focused desktop provider manager and router for AI coding tools.

maintainer
Ninthless
licence
MIT
first seen
2026-07-30
last seen
2026-09-10
releases · 30d
11
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  2. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  3. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  4. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  5. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  6. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  7. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  8. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  9. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  10. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  11. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  12. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  13. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  14. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  15. HIGH code analysis flagged committed secret in Ninthless/StackFerry
  16. HIGH code analysis flagged committed secret in Ninthless/StackFerry
capabilities 0 tools
transport http counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

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

code files: 245

filesystem 43

  • fs Ninthless-StackFerry-06515da/electron/main/appearance-store.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/claude/code-writer.ts :1 import { copyFile, mkdir, readFile } from 'node:fs/promises'
  • fs Ninthless-StackFerry-06515da/electron/main/claude/desktop-writer.ts :2 import { copyFile, mkdir, readFile, unlink } from 'node:fs/promises'
  • fs Ninthless-StackFerry-06515da/electron/main/claude/home.ts :1 import { existsSync, readdirSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/claude/service.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/claude/store.ts :2 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/cli-tools/service.ts :2 import { existsSync, rmSync, statSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/codex/writer.ts :1 import { copyFile, mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises'
  • fs Ninthless-StackFerry-06515da/electron/main/grok/auth.ts :1 import { copyFile, readFile, rm } from 'node:fs/promises'
  • fs Ninthless-StackFerry-06515da/electron/main/grok/policy.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/grok/service.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/grok/store.ts :2 import { existsSync } from 'node:fs'
show 28 more
  • fs Ninthless-StackFerry-06515da/electron/main/grok/writer.ts :1 import { copyFile, mkdir, readFile } from 'node:fs/promises'
  • fs Ninthless-StackFerry-06515da/electron/main/ipc.ts :2 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/locale-store.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/providers/store.ts :2 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/releases/store.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/routing/store.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/skills/catalog.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/skills/hash.ts :2 import { readdir, readFile, stat } from 'node:fs/promises'
  • fs Ninthless-StackFerry-06515da/electron/main/skills/scan.ts :1 import { readdir, readFile, stat } from 'node:fs/promises'
  • fs Ninthless-StackFerry-06515da/electron/main/skills/service.ts :1 import { mkdir, readdir, rm } from 'node:fs/promises'
  • fs Ninthless-StackFerry-06515da/electron/main/skills/store.ts :1 import { existsSync } from 'node:fs'
  • fs Ninthless-StackFerry-06515da/electron/main/skills/sync.ts :1 import { mkdir, rm, symlink, lstat, cp, writeFile, readlink } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/app-releases.test.ts :1 import { mkdtemp, readFile, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/appearance-store.test.ts :1 import { mkdtemp, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/claude-home.test.ts :1 import { mkdir, mkdtemp } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/claude-service.test.ts :1 import { mkdtemp, readFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/claude-writer.test.ts :1 import { mkdir, mkdtemp, readFile, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/codex-writer.test.ts :1 import { mkdir, mkdtemp, readFile, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/effort-energy.test.ts :1 import { readFileSync } from 'node:fs'
  • fs (weak) Ninthless-StackFerry-06515da/test/electron-builder.test.ts :1 import { readFileSync } from 'node:fs'
  • fs (weak) Ninthless-StackFerry-06515da/test/grok-auth.test.ts :1 import { mkdtemp, readFile, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/grok-writer.test.ts :1 import { mkdir, mkdtemp, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/i18n-messages.test.ts :1 import { readFileSync } from 'node:fs'
  • fs (weak) Ninthless-StackFerry-06515da/test/provider-order-store.test.ts :1 import { mkdtemp, readFile, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/routing-enable-queue.test.ts :1 import { mkdir, mkdtemp, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/routing-store.test.ts :1 import { mkdtemp, readFile, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/skill-hash.test.ts :1 import { mkdtemp, mkdir, writeFile } from 'node:fs/promises'
  • fs (weak) Ninthless-StackFerry-06515da/test/skill-service.test.ts :1 import { mkdir, mkdtemp, readFile, writeFile } from 'node:fs/promises'

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

shell / exec 2

  • shell Ninthless-StackFerry-06515da/electron/main/claude/policy.ts :1 import { execFile } from 'node:child_process'
  • shell Ninthless-StackFerry-06515da/electron/main/cli-tools/service.ts :1 import { execFile } from 'node:child_process'

network 6

  • net Ninthless-StackFerry-06515da/electron/main/claude/models.ts :58 const response = await fetch(url, {
  • net Ninthless-StackFerry-06515da/electron/main/cli-tools/service.ts :175 const response = await fetch(npmLatestUrl(pkg), { signal: AbortSignal.timeout(CHECK_TIMEOUT_MS) })
  • net Ninthless-StackFerry-06515da/electron/main/grok/models.ts :32 const response = await fetch(url, {
  • net Ninthless-StackFerry-06515da/electron/main/providers/models.ts :41 const response = await fetch(url, {
  • net Ninthless-StackFerry-06515da/electron/main/routing/proxy.ts :1 import { createServer, type IncomingMessage, type Server, type ServerResponse } from 'node:http'
  • net (weak) Ninthless-StackFerry-06515da/test/routing-proxy.test.ts :1 import { createServer, type AddressInfo, type IncomingMessage, type ServerResponse } from 'node:http'

declared dependencies 46

  • @codeproxy/core@0.1.26
  • electron-updater@6.6.4
  • fflate@^0.8.3
  • smol-toml@^1.5.2
  • @ant-design/cssinjs@^2.1.2
  • @ant-design/icons@^6.3.4
  • @base-ui/react@^1.7.0
  • @codemirror/lang-markdown@^6.5.2
  • @codemirror/language@^6.12.4
  • @codemirror/legacy-modes@^6.5.4
  • @codemirror/view@^6.43.11
  • @dnd-kit/core@^6.3.1
show 28 more
  • @dnd-kit/modifiers@^9.0.0
  • @dnd-kit/sortable@^10.0.0
  • @dnd-kit/utilities@^3.2.2
  • @fontsource-variable/geist@^5.3.0
  • @inlang/paraglide-js@^2.25.0
  • @inlang/plugin-m-function-matcher@^2.2.13
  • @inlang/plugin-message-format@^4.4.4
  • @lezer/highlight@^1.2.3
  • @lobehub/icons-static-svg@^1.94.0
  • @tailwindcss/vite@^4.3.0
  • @types/node@^26.4.1
  • @types/react@^19.2.16
  • @types/react-dom@^19.2.3
  • @uiw/react-codemirror@^4.25.11
  • @vitejs/plugin-react@^6.0.2
  • antd@^6.6.2
  • class-variance-authority@^0.7.1
  • clsx@^2.1.1
  • cn@^0.2.5
  • electron@^42.1.0
  • electron-builder@^26.8.1
  • lucide-react@^1.39.0
  • react@^19.2.7
  • react-dom@^19.2.7
  • recharts@3.8.0
  • shadcn@^4.20.1
  • tailwind-merge@^3.6.0
  • tailwindcss@^4.3.0

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