github TypeScript re-analysis due

naveenalavilli/nabsun

github

A browser for AI. Chromium as an execution environment for agents: the browser supplies the tools, page state and permissions — the agent is the program. Ships a local model that runs offline with no API key, or use Claude, OpenAI, Ollama, or the CLI you're signed into. Also an MCP server, so your editor can drive your real browser.

maintainer
naveenalavilli
licence
MIT
first seen
2026-09-17
last seen
2026-09-18
releases · 30d
1
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 9d7b3cd · analyzer v33 · 7h ago

danger signals1

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

code files: 69

filesystem 27

  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/build.mjs :14 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/check-release-payload.mjs :17 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/electron-run.mjs :12 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/fetch-local-model.mjs :19 import { createReadStream } from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/fix-encoding.mjs :14 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/make-fixture-icon.mjs :2 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/make-icon.mjs :8 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/release.mjs :27 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/verify-bridge.cjs :11 const fs = require('node:fs');
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/scripts/verify-ci-artifacts.cjs :2 const fs = require('node:fs');
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/ai/providers/cli.ts :2 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/ai/providers/local.ts :3 import fs from 'node:fs';
show 15 more
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/ai/sessions.ts :2 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/ai/tools/workspace.ts :2 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/downloads.ts :2 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/index.ts :2 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/integrations/extensions.ts :1 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/integrations/plugins.ts :1 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/internalPages.ts :2 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/ipc.ts :1 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/rebrand.ts :1 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/soul.ts :1 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/store.ts :2 import fs from 'node:fs';
  • fs naveenalavilli-nabsun-9d7b3cd/src/main/tabs.ts :2 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/src/test/agent-harness.ts :10 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/src/test/browsing-harness.ts :10 import fs from 'node:fs';
  • fs (weak) naveenalavilli-nabsun-9d7b3cd/src/test/cli-harness.ts :17 import fs from 'node:fs';

shell / exec 11

  • shell (weak) naveenalavilli-nabsun-9d7b3cd/scripts/build.mjs :13 import { spawn } from 'node:child_process';
  • shell (weak) naveenalavilli-nabsun-9d7b3cd/scripts/electron-run.mjs :11 import { spawn } from 'node:child_process';
  • shell (weak) naveenalavilli-nabsun-9d7b3cd/scripts/fetch-local-model.mjs :23 import { execFileSync } from 'node:child_process';
  • shell (weak) naveenalavilli-nabsun-9d7b3cd/scripts/release.mjs :26 import { execFileSync } from 'node:child_process';
  • shell (weak) naveenalavilli-nabsun-9d7b3cd/scripts/verify-ci-artifacts.cjs :6 const { spawnSync } = require('node:child_process');
  • shell naveenalavilli-nabsun-9d7b3cd/src/main/ai/providers/cli.ts :1 import { spawn, spawnSync, type ChildProcessWithoutNullStreams } from 'node:child_process';
  • shell naveenalavilli-nabsun-9d7b3cd/src/main/ai/providers/local.ts :1 import { spawn, type ChildProcess } from 'node:child_process';
  • shell naveenalavilli-nabsun-9d7b3cd/src/main/integrations/agentExtensions.ts :2 import { spawnSync } from 'node:child_process';
  • shell naveenalavilli-nabsun-9d7b3cd/src/main/integrations/cliAccounts.ts :1 import { spawn } from 'node:child_process';
  • shell (weak) naveenalavilli-nabsun-9d7b3cd/src/test/cli-harness.ts :16 import { spawn } from 'node:child_process';
  • shell (weak) naveenalavilli-nabsun-9d7b3cd/src/test/codex-tools-live.ts :15 import { spawn } from 'node:child_process';

network 8

  • net (weak) naveenalavilli-nabsun-9d7b3cd/scripts/fetch-local-model.mjs :377 const res = await fetch(url, { redirect: 'follow' });
  • net naveenalavilli-nabsun-9d7b3cd/src/main/ai/providers/local.ts :345 const res = await fetch(`http://127.0.0.1:${port}/health`, {
  • net naveenalavilli-nabsun-9d7b3cd/src/main/ai/providers/ollama.ts :39 const res = await fetch(`${this.base()}/api/tags`);
  • net naveenalavilli-nabsun-9d7b3cd/src/main/ai/tools/workspace.ts :351 const res = await net.fetch(url, {
  • net naveenalavilli-nabsun-9d7b3cd/src/main/bridge/server.ts :1 import { createServer, type Server } from 'node:http';
  • net naveenalavilli-nabsun-9d7b3cd/src/mcp-server/main.ts :54 const res = await fetch(`${BASE}${pathname}`, {
  • net (weak) naveenalavilli-nabsun-9d7b3cd/src/test/bridge-harness.ts :60 const unauth = await fetch(`${bridge.url}/tools`);
  • net (weak) naveenalavilli-nabsun-9d7b3cd/src/test/browsing-harness.ts :9 import { createServer, type Server } from 'node:http';

secrets 1

  • secrets naveenalavilli-nabsun-9d7b3cd/src/mcp-server/main.ts :44 const TOKEN = process.env.NABSUN_BRIDGE_TOKEN ?? process.env.SMARTBROWSER_BRIDGE_TOKEN;

declared dependencies 8

  • @modelcontextprotocol/sdk@^1.24.0
  • @anthropic-ai/sdk@^0.124.0
  • openai@^6.10.0
  • @types/node@^24.10.1
  • electron@^44.2.0
  • electron-builder@^26.15.3
  • esbuild@^0.25.12
  • typescript@^5.9.3

perm:untrusted 1

  • untrusted (weak) naveenalavilli-nabsun-9d7b3cd/src/test/browsing-harness.ts :523 'fetch(location.href).then(r => r.headers.get("content-security-policy") || "")',