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.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
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
- suspicious endpoint 169.254.169.254 (cloud metadata) naveenalavilli-nabsun-9d7b3cd/src/test/agent-harness.ts :774
['link-local metadata', 'http://169.254.169.254/latest/meta-data/'],
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") || "")',