github analyzed ee1d9ef

sidebutton/sidebutton

github

Open-source browser automation for AI agents. MCP server + Chrome extension + YAML workflow engine + knowledge packs. Give your AI agent a browser and domain expertise.

maintainer
sidebutton
license
Apache-2.0
first seen
2026-06-04
last seen
2026-06-17
releases · 30d
1
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged committed secret in sidebutton/sidebutton
  2. HIGH code analysis flagged committed secret in sidebutton/sidebutton
capabilities 25 tools
transport stdio · http · sse counts 25 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • capture_page

    Capture selectors from current page

  • check_writing_quality

    Evaluate text quality

  • click

    Click an element

  • evaluate

    Execute JavaScript in browser

  • exists

    Check if element exists

  • extract

    Extract text from element

  • extract_all

    Extract all matching elements

  • extract_map

    Extract structured data from repeated elements

  • fill

    Fill input value (React-compatible)

  • get_browser_status

    Check browser extension connection

  • get_run_log

    Get execution log for a run

  • get_workflow

    Get workflow YAML definition

  • hover

    Hover over element

  • list_run_logs

    List recent workflow executions

  • list_workflows

    List all available workflows

  • navigate

    Navigate browser to URL

  • press_key

    Send keyboard keys

  • run_workflow

    Execute a workflow by ID

  • screenshot

    Capture page screenshot

  • scroll

    Scroll the page

  • scroll_into_view

    Scroll element into viewport

  • select_option

    Select dropdown option

  • snapshot

    Get page accessibility snapshot

  • type

    Type text into an element

  • wait

    Wait for element or delay

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

analyzed commit ee1d9ef · analyzer v20 · 13h ago

skills & prompt files 1

danger signals1

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

filesystem 11

  • fs sidebutton-sidebutton-ee1d9ef/packages/core/src/parser.ts :6 import * as fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/core/src/steps/shell.ts :9 import { writeFileSync, chmodSync, existsSync } from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/cli.ts :10 import * as fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/context.ts :6 import * as fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/mcp/handler.ts :21 import * as fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/plugins/loader.ts :5 import fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/projects.ts :11 import * as fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/registry.ts :9 import * as fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/server.ts :12 import * as fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/skill-pack.ts :5 import * as fs from 'node:fs';
  • fs sidebutton-sidebutton-ee1d9ef/packages/server/src/skills.ts :13 import * as fs from 'node:fs';

shell / exec 9

  • shell sidebutton-sidebutton-ee1d9ef/packages/core/src/providers/github.ts :3 * Calls gh commands via child_process.execFile, parses JSON output,
  • shell sidebutton-sidebutton-ee1d9ef/packages/core/src/providers/jira-acli.ts :3 * Calls `acli jira workitem` commands via child_process.execFile.
  • shell sidebutton-sidebutton-ee1d9ef/packages/core/src/providers/registry.ts :7 import { execFile } from 'node:child_process';
  • shell sidebutton-sidebutton-ee1d9ef/packages/core/src/steps/shell.ts :6 import { exec, spawn } from 'node:child_process';
  • shell sidebutton-sidebutton-ee1d9ef/packages/server/src/cli.ts :1187 const { exec } = await import('node:child_process');
  • shell sidebutton-sidebutton-ee1d9ef/packages/server/src/plugins/executor.ts :6 import { spawn } from 'node:child_process';
  • shell sidebutton-sidebutton-ee1d9ef/packages/server/src/projects.ts :9 import { execFile } from 'node:child_process';
  • shell sidebutton-sidebutton-ee1d9ef/packages/server/src/registry.ts :11 import { execFile, execFileSync } from 'node:child_process';
  • shell sidebutton-sidebutton-ee1d9ef/packages/server/src/server.ts :15 import { execSync } from 'node:child_process';

network 7

  • net sidebutton-sidebutton-ee1d9ef/packages/core/src/providers/jira.ts :33 const response = await fetch(url, {
  • net sidebutton-sidebutton-ee1d9ef/packages/core/src/steps/llm.ts :48 const response = await fetch(url, {
  • net sidebutton-sidebutton-ee1d9ef/packages/dashboard/src/lib/api.ts :45 const response = await fetch(`${API_BASE}${url}`, fetchOptions);
  • net sidebutton-sidebutton-ee1d9ef/packages/server/src/cli.ts :203 const res = await fetch(`${REMOTE_BASE_URL}/api/skill-packs/${encodeURIComponent(domain)}/download`);
  • net sidebutton-sidebutton-ee1d9ef/packages/server/src/registry.ts :426 const res = await fetch(`${REMOTE_REGISTRY_URL}/api/skill-packs`);
  • net sidebutton-sidebutton-ee1d9ef/packages/server/src/server.ts :14 import * as net from 'node:net';
  • net sidebutton-sidebutton-ee1d9ef/packages/server/src/services/report.ts :92 const res = await fetch(url, {

secrets 3

  • secrets sidebutton-sidebutton-ee1d9ef/packages/core/src/steps/llm.ts :42 const apiKey = api_key || process.env.OPENAI_API_KEY;
  • secrets sidebutton-sidebutton-ee1d9ef/packages/dashboard/vite.config.ts :11 authToken: process.env.SENTRY_AUTH_TOKEN,
  • secrets sidebutton-sidebutton-ee1d9ef/packages/server/src/server.ts :607 const agentToken = process.env.SIDEBUTTON_AGENT_TOKEN;

declared dependencies 2

  • turbo@^2.3.0
  • typescript@^5.7.2

transport_posture 1

  • binds all interfaces (0.0.0.0) sidebutton-sidebutton-ee1d9ef/packages/server/src/server.ts :3776 await fastify.listen({ port: config.port, host: '0.0.0.0' });