github TypeScript analyzed a92ed89

KazKozDev/WebOperator

github

Local-first AI browser agent and MCP server for Chrome — runs on Ollama or any cloud model. Open-source alternative to OpenAI Operator.

maintainer
KazKozDev
licence
MIT
first seen
2026-08-31
last seen
2026-09-06
releases · 30d
2
short id

Drift inferred · capture-to-capture

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

capabilities 10 tools
transport stdio · http verified reported listed in the official MCP registry counts 10 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • browser_click
  • browser_extract
  • browser_navigate
  • browser_press
  • browser_screenshot
  • browser_scroll
  • browser_snapshot
  • browser_solve_captcha
  • browser_type
  • weboperator_execute_goal
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit a92ed89 · analyzer v33 · 2d ago

skills & prompt files 1

danger signals1

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

code files: 130

filesystem 7

  • fs (weak) KazKozDev-WebOperator-a92ed89/core/vite.config.ts :5 import fs from 'node:fs';
  • fs (weak) KazKozDev-WebOperator-a92ed89/scripts/changelog-section.mjs :4 import { readFile } from 'node:fs/promises';
  • fs (weak) KazKozDev-WebOperator-a92ed89/scripts/eval-extension.mjs :3 import { readFile, mkdir, rm, writeFile } from 'node:fs/promises';
  • fs (weak) KazKozDev-WebOperator-a92ed89/scripts/eval-fixtures.mjs :2 import { readFile } from 'node:fs/promises';
  • fs (weak) KazKozDev-WebOperator-a92ed89/scripts/eval-repeat.mjs :2 import { mkdir, readFile, stat, writeFile } from 'node:fs/promises';
  • fs (weak) KazKozDev-WebOperator-a92ed89/scripts/fetch-assistantbench.mjs :8 import { writeFile, mkdir } from 'node:fs/promises';
  • fs KazKozDev-WebOperator-a92ed89/weboperator-bridge/bridge.js :6 const fs = require('fs');

shell / exec 3

  • shell (weak) KazKozDev-WebOperator-a92ed89/scripts/bridge-smoke.mjs :4 import { spawn } from 'node:child_process';
  • shell (weak) KazKozDev-WebOperator-a92ed89/scripts/eval-extension.mjs :8 import { spawn } from 'node:child_process';
  • shell (weak) KazKozDev-WebOperator-a92ed89/scripts/eval-repeat.mjs :6 import { spawn } from 'node:child_process';

network 13

  • net KazKozDev-WebOperator-a92ed89/core/src/lib/anthropic-client.ts :119 const res = await fetch('https://api.anthropic.com/v1/messages', {
  • net KazKozDev-WebOperator-a92ed89/core/src/lib/captcha-solver.ts :1735 const res = await fetch('https://api.openai.com/v1/audio/transcriptions', {
  • net KazKozDev-WebOperator-a92ed89/core/src/lib/deepseek-client.ts :60 const res = await fetch('https://api.deepseek.com/chat/completions', {
  • net KazKozDev-WebOperator-a92ed89/core/src/lib/file-reader.ts :92 const res = await fetch(target.url);
  • net KazKozDev-WebOperator-a92ed89/core/src/lib/http-retry.ts :38 const res = await fetch(input, { ...init, signal });
  • net KazKozDev-WebOperator-a92ed89/core/src/lib/ollama-client.ts :121 const send = (thinking: boolean, withImages: boolean) => fetch(`${targetUrl}/api/chat`, {
  • net KazKozDev-WebOperator-a92ed89/core/src/lib/screenshot.ts :15 const blob = await (await fetch(dataUrl)).blob();
  • net (weak) KazKozDev-WebOperator-a92ed89/scripts/bridge-smoke.mjs :5 import net from 'node:net';
  • net (weak) KazKozDev-WebOperator-a92ed89/scripts/eval-extension.mjs :2 import { createServer } from 'node:http';
  • net (weak) KazKozDev-WebOperator-a92ed89/scripts/fetch-assistantbench.mjs :19 const res = await fetch(SOURCE);
  • net KazKozDev-WebOperator-a92ed89/weboperator-bridge/agent-client.js :3 const net = require('net');
  • net KazKozDev-WebOperator-a92ed89/weboperator-bridge/bridge.js :3 const http = require('http');
show 1 more
  • net KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :8 const net = require('net');

secrets 4

  • secrets (weak) KazKozDev-WebOperator-a92ed89/scripts/eval-extension.mjs :573 const apiKey = args.apiKey ?? process.env.WEBOPERATOR_API_KEY;
  • secrets KazKozDev-WebOperator-a92ed89/weboperator-bridge/agent-client.js :7 const token = process.env.WEBOPERATOR_API_TOKEN || '';
  • secrets KazKozDev-WebOperator-a92ed89/weboperator-bridge/bridge.js :11 const API_TOKEN = process.env.WEBOPERATOR_API_TOKEN || '';
  • secrets KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :18 const API_TOKEN = process.env.WEBOPERATOR_API_TOKEN || '';

tool registrations 10

  • browser_snapshot KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :30
  • browser_navigate KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :39
  • browser_click KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :54
  • browser_type KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :72
  • browser_press KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :99
  • browser_scroll KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :114
  • browser_screenshot KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :133
  • browser_extract KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :142
  • browser_solve_captcha KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :160
  • weboperator_execute_goal KazKozDev-WebOperator-a92ed89/weboperator-bridge/mcp-server.js :175

declared dependencies 22

  • @huggingface/transformers@^4.2.0
  • dexie@^4.4.5
  • pdfmake@^0.3.11
  • react@^19.2.8
  • react-dom@^19.2.8
  • @crxjs/vite-plugin@^2.7.1
  • @eslint/js@^10.0.1
  • @types/chrome@^0.2.7
  • @types/pdfmake@^0.3.3
  • @types/react@^19.2.18
  • @types/react-dom@^19.2.5
  • @vitejs/plugin-react@^6.1.1
show 10 more
  • @vitest/coverage-v8@^4.1.11
  • eslint@^10.9.1
  • eslint-plugin-react-hooks@^7.1.1
  • globals@^17.11.0
  • knip@^6.33.0
  • playwright@^1.62.1
  • typescript@^5.5.3
  • typescript-eslint@^8.68.0
  • vite@^8.2.2
  • vitest@^4.1.5