github re-analysis due

jeongmk522-netizen/agentlas-desktop

github

Open-source macOS control room for running local AI agent teams with Claude Code, Codex, Gemini, and BYOK runtimes.

maintainer
jeongmk522-netizen
license
Apache-2.0
first seen
2026-06-04
last seen
2026-06-04
releases · 30d
33
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.

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

filesystem 58

  • fs agentlas-ai-agentlas-desktop-36a3acd/build-resources/after-pack-clean.cjs :1 const { rm } = require("node:fs/promises");
  • fs agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-cloud-runtime.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-config.cjs :6 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-input.cjs :10 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-native-host.cjs :16 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-repl.cjs :641 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-tools.cjs :11 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas.cjs :28 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/agents/env-detect.ts :1 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/agents/files.ts :10 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/agents/import-local.ts :7 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/agents/org-resolver.ts :6 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/agents/routes.ts :4 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/agents/routing-cards.ts :10 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/app-factory/operations.ts :3 import fs from "node:fs/promises";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/app-factory/scaffold.ts :2 import fs from "node:fs/promises";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/cloud-agents/package.ts :2 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/main.ts :11 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/mcp-tools/mcp-config.ts :10 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/mcp/client.ts :4 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/mcp/registry.ts :2 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/memory/project-files.ts :7 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/meta-agent/commerce-team.ts :5 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/migrate/sources.ts :6 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/ontology/project-runtime.ts :1 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/claude-code.ts :8 import fs from "node:fs/promises";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/commands.ts :9 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/env-resolver.ts :1 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/exec.ts :8 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/gemini.ts :7 import fs from "node:fs/promises";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/install-agentlas-cli.ts :6 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/install-cli.ts :9 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/surface-assets/materialize.ts :2 import fs from "node:fs/promises";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/tool-factory/operations.ts :1 import fs from "node:fs/promises";
  • fs agentlas-ai-agentlas-desktop-36a3acd/electron/tool-factory/scaffold.ts :3 import fs from "node:fs/promises";
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/apply-web-release-env.mjs :2 import { existsSync, readFileSync } from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/committee-gate.mjs :3 import fs from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/fix-mac-latest-zip.mjs :5 import { readFileSync, writeFileSync, existsSync } from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/gen-cli-architecture.mjs :5 import { writeFileSync, existsSync } from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-chat-local-agent-os.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-chat-local-creative-os.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-creative-agent-os.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-ecommerce-agent-os.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-electron-chat-agent-os.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/publish-mac-release.mjs :2 import { existsSync, readFileSync, writeFileSync } from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/release-readiness.mjs :3 import { existsSync, readFileSync } from "node:fs";
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-agent-os-handsfree.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-app-autopilot.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-app-factory.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-chat-local-agent-os.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-chat-local-creative-os.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-creative-durable.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-creative-pack.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-ecommerce-agent-os.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-multimodal-settings.cjs :4 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-surface-assets.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-tool-factory.cjs :3 const fs = require("node:fs");
  • fs agentlas-ai-agentlas-desktop-36a3acd/scripts/verify-mac-release.mjs :3 import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";

shell / exec 22

  • shell agentlas-ai-agentlas-desktop-36a3acd/build-resources/after-pack-clean.cjs :3 const { execFile } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-native-host.cjs :15 const { spawn } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-repl.cjs :608 const { spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-tools.cjs :12 const { spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas.cjs :29 const { spawn } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/electron/app-factory/operations.ts :1 import { execFile, spawn } from "node:child_process";
  • shell agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/exec.ts :4 // 설치된다. Node의 child_process.spawn/execFile은 `shell:true` 없이는 `.cmd`/`.bat`
  • shell agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/install-cli.ts :8 import { spawn } from "node:child_process";
  • shell agentlas-ai-agentlas-desktop-36a3acd/electron/tool-factory/scaffold.ts :2 import { execFile } from "node:child_process";
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/apply-web-release-env.mjs :4 import { spawnSync } from "node:child_process";
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/check-railway-release-access.mjs :2 import { spawnSync } from "node:child_process";
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-chat-local-agent-os.cjs :7 const { spawn, spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-chat-local-creative-os.cjs :6 const { spawn } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-creative-agent-os.cjs :7 const { spawn, spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-ecommerce-agent-os.cjs :7 const { spawn, spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-electron-chat-agent-os.cjs :7 const { spawn, spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/publish-mac-release.mjs :4 import { spawnSync } from "node:child_process";
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/release-readiness.mjs :2 import { spawnSync } from "node:child_process";
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-app-autopilot.cjs :6 const { spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-app-factory.cjs :6 const { spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-ecommerce-agent-os.cjs :6 const { spawnSync } = require("node:child_process");
  • shell agentlas-ai-agentlas-desktop-36a3acd/scripts/verify-mac-release.mjs :5 import { spawnSync } from "node:child_process";

network 22

  • net agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-api-agent.cjs :77 const resp = await fetch("https://api.anthropic.com/v1/messages", {
  • net agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas.cjs :1082 const resp = await fetch(`${base}/api/cloud-agents/v1/register`, {
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/app-factory/scaffold.ts :1604 const res = await fetch("./data/operations.json", { cache: "no-store" });
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/auth.ts :21 import http from "node:http";
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/cloud-agents/package.ts :442 const response = await fetch(`${base}/api/cloud-agents/v1/register`, {
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/creative-pack/surface.ts :501 const res = await fetch(url, {
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/main.ts :135 return net.fetch(pathToFileURL(abs).toString());
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/marketplace/mcp-source.ts :31 const resp = await fetch(url, {
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/byok.ts :118 const resp = await fetch("https://api.anthropic.com/v1/messages", {
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/ollama.ts :34 const tagsRes = await fetch(`${host}/api/tags`, { signal: ctrl.signal });
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/runtime/providers.ts :27 return await fetch(url, { ...init, signal: ctrl.signal });
  • net agentlas-ai-agentlas-desktop-36a3acd/electron/surface-assets/materialize.ts :385 const res = await fetch(url, {
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/apply-web-release-env.mjs :5 import https from "node:https";
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/committee-gate.mjs :411 const release = await fetch(`${webBase}/api/desktop/latest`).then((res) => res.json());
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-chat-local-agent-os.cjs :4 const http = require("node:http");
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-chat-local-creative-os.cjs :4 const http = require("node:http");
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-creative-agent-os.cjs :4 const http = require("node:http");
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-ecommerce-agent-os.cjs :4 const http = require("node:http");
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/proof-electron-chat-agent-os.cjs :4 const http = require("node:http");
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-chat-local-creative-os.cjs :4 const http = require("node:http");
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-creative-durable.cjs :4 const http = require("node:http");
  • net agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-creative-pack.cjs :4 const http = require("node:http");

secrets 1

  • secrets agentlas-ai-agentlas-desktop-36a3acd/scripts/smoke-multimodal-settings.cjs :33 "Use process.env.OPENAI_API_KEY for image generation.",

database 2

  • db agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas.cjs :68 const Database = require("better-sqlite3");
  • db agentlas-ai-agentlas-desktop-36a3acd/electron/store/db.ts :6 import Database from "better-sqlite3";

tool registrations 3

  • Bash agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-native-host.cjs :334
  • Edit agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-native-host.cjs :351
  • $ agentlas-ai-agentlas-desktop-36a3acd/cli/agentlas-repl.cjs :633

install hooks 1

  • postinstall agentlas-ai-agentlas-desktop-36a3acd/package.json :29 electron-rebuild --force

declared dependencies 21

  • @modelcontextprotocol/sdk@^1.0.4
  • better-sqlite3@^11.3.0
  • cross-spawn@^7.0.6
  • electron-updater@^6.3.9
  • keytar@^7.9.0
  • zod@^3.23.8
  • @types/better-sqlite3@^7.6.11
  • @types/cross-spawn@^6.0.6
  • @types/node@^22.7.4
  • @types/react@^18.3.11
  • @types/react-dom@^18.3.0
  • concurrently@^9.0.1
  • cross-env@^7.0.3
  • electron@^33.0.0
  • electron-builder@^25.1.7
  • next@^15.0.0
  • playwright@^1.60.0
  • react@^18.3.1
  • react-dom@^18.3.1
  • typescript@^5.6.2
  • wait-on@^8.0.1