Open-source macOS control room for running local AI agent teams with Claude Code, Codex, Gemini, and BYOK runtimes.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
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