Local-first AI coding CLI with embedded model router, multi-agent orchestration, and codebase indexing
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed v3.3.0 · analyzer v28 · 2h ago
skills & prompt files 1
- agent-rules package/AGENTS.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 177
filesystem 45
- fs package/dist/agents/ensemble.js :1
import fs from 'fs'; - fs package/dist/agents/loop.js :2
import fs from 'fs'; - fs package/dist/agents/orchestrator-validation.js :1
import fs from 'fs'; - fs package/dist/agents/orchestrator-verification.js :1
import fs from 'fs'; - fs package/dist/agents/orchestrator.js :2
import fs from 'fs'; - fs package/dist/agents/spec.js :2
import fs from 'fs'; - fs package/dist/bot/prompt.js :1
import fs from 'fs'; - fs package/dist/ci.js :1
import fs from 'fs'; - fs package/dist/clipboard.js :2
import fs from 'fs'; - fs package/dist/commands/agents.js :2
import fs from 'fs'; - fs package/dist/commands/badge.js :1
import fs from 'fs'; - fs package/dist/commands/context.js :2
import fs from 'fs'; - fs package/dist/commands/dev.js :2
import fs from 'fs'; - fs package/dist/commands/feedback.js :1
import fs from 'fs'; - fs package/dist/commands/shortcut.js :1
import fs from 'fs'; - fs package/dist/config/index.js :3
import * as fs from 'fs'; - fs package/dist/config/stack.js :1
import * as fs from 'fs'; - fs package/dist/config/validate.js :3
import * as fs from 'fs'; - fs package/dist/index.js :2
import fs from 'fs'; - fs package/dist/indexing/fts.js :2
import fs from 'fs'; - fs package/dist/indexing/indexer.js :1
import fs from 'fs'; - fs package/dist/indexing/watcher.js :1
import fs from 'fs'; - fs package/dist/profile.js :1
import fs from 'fs'; - fs package/dist/repl.js :1
import fs from 'fs'; - fs package/dist/session/branching.js :1
import fs from 'node:fs'; - fs package/dist/session/gitMerger.js :3
import fs from 'node:fs/promises'; - fs package/dist/session/jsonl.js :1
import fs from 'fs'; - fs package/dist/session/manager.js :2
import fs from 'fs'; - fs package/dist/session/memory.js :2
import fs from 'fs'; - fs package/dist/session/selector.js :2
import fs from 'fs'; - fs package/dist/session/sqlite.js :3
import fs from 'fs'; - fs package/dist/system-prompt.js :2
import fs from 'fs'; - fs package/dist/tools/builtin/files.js :1
import fs from 'fs'; - fs package/dist/tools/builtin/image.js :1
import * as fs from 'fs'; - fs package/dist/tools/builtin/impact.js :1
import fs from 'fs'; - fs package/dist/tools/builtin/lsp.js :2
import fs from 'fs'; - fs package/dist/tools/builtin/patch-utils.js :1
import fs from 'fs'; - fs package/dist/tools/builtin/project-config.js :1
import fs from 'fs'; - fs package/dist/tools/builtin/screenshot.js :2
import fs from 'fs'; - fs package/dist/tools/builtin/terminal.js :3
import fs from 'fs'; - fs package/dist/tui/index.js :3
import fs from 'fs'; - fs package/dist/tui/widgets/file-tree.js :2
import fs from 'fs'; - fs package/dist/update-check.js :1
import fs from 'fs'; - fs package/dist/utils/gitAwareTest.js :2
import fs from 'node:fs'; - fs package/dist/utils/sys-stats.js :1
import fs from 'fs';
shell / exec 19
- shell package/dist/agents/ensemble.js :4
import { execSync } from 'child_process'; - shell package/dist/agents/loop.js :4
import { execSync } from 'child_process'; - shell package/dist/agents/orchestrator-verification.js :255
const { exec } = await import('child_process'); - shell package/dist/bot/prompt.js :3
import { execSync } from 'child_process'; - shell package/dist/clipboard.js :1
import { execSync } from 'child_process'; - shell package/dist/commands/agents.js :10
import { execSync } from 'child_process'; - shell package/dist/commands/feedback.js :4
import { execSync, spawn } from 'child_process'; - shell package/dist/index.js :359
const { execSync } = await import('child_process'); - shell package/dist/session/gitMerger.js :1
import { exec } from 'node:child_process'; - shell package/dist/tools/builtin/diff-ui.js :170
const { spawn } = await import('child_process'); - shell package/dist/tools/builtin/eval.js :1
import { spawnSync } from 'child_process'; - shell package/dist/tools/builtin/files.js :3
import { execSync, spawn } from 'child_process'; - shell package/dist/tools/builtin/patch-utils.js :3
import { spawnSync } from 'child_process'; - shell package/dist/tools/builtin/process-watcher.js :1
import { spawn } from 'child_process'; - shell package/dist/tools/builtin/terminal.js :2
import { spawn, execSync } from 'child_process'; - shell package/dist/tools/deps.js :1
import * as child from 'child_process'; - shell package/dist/tools/git-checkpoint.js :2
import { execSync, execFileSync } from 'child_process'; - shell package/dist/tools/mcp/stdio.js :2
import { spawn } from 'child_process'; - shell package/dist/utils/gitAwareTest.js :1
import { execSync } from 'node:child_process';
network 12
- net package/dist/agents/loop.js :82
const res = await fetch(webhookUrl, { - net package/dist/bot/handlers.js :12
const response = await fetch(attachment.url, { headers: { 'User-Agent': 'Daedalus-Discord-Bot/1.0' } }); - net package/dist/commands/agents.js :895
const prResponse = await fetch(`https://api.github.com/repos/${repoInfo.owner}/${repoInfo.repo}/pulls`, { - net package/dist/commands/feedback.js :172
await fetch(discordWebhookUrl, { - net package/dist/config/index.js :312
const res = await fetch(c.url, { signal: AbortSignal.timeout(3000) }); - net package/dist/onboarding/wizard.js :255
const res = await fetch(testEndpoint, { - net package/dist/router/health.js :24
const response = await fetch(`${baseUrl}/models`, { - net package/dist/tools/builtin/image.js :8
const response = await fetch(url); - net package/dist/tools/builtin/web.js :7
return await fetch(url, { - net package/dist/tools/mcp/http.js :18
const response = await fetch(this.url, { - net package/dist/tools/mcp/manager.js :9
return fetch(url, { signal: AbortSignal.timeout(REQUEST_TIMEOUT) }); - net package/dist/update-check.js :32
const res = await fetch('https://registry.npmjs.org/daedalus-cli/latest');
secrets 3
- secrets package/dist/agents/loop.js :107
let token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN; - secrets package/dist/bot/index.js :7
const token = process.env.DISCORD_BOT_TOKEN; - secrets package/dist/commands/agents.js :882
let token = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
database 2
- db package/dist/indexing/fts.js :1
import Database from 'better-sqlite3'; - db package/dist/session/sqlite.js :2
import Database from 'better-sqlite3';
install hooks 2
- prepublishOnly package/package.json :26
npm run build - postinstall package/package.json :32
node scripts/postinstall.js
declared dependencies 32
- better-sqlite3@^12.10.0
- cli-highlight@^2.1.11
- diff@^7.0.0
- discord.js@^14.27.0
- dotenv@^17.4.2
- neo-blessed@^0.2.0
- openai@^4.85.4
- pdf-parse@^2.4.5
- picocolors@^1.1.1
- puppeteer-core@^25.1.0
- zod@^3.23.8
- @eslint/js@^10.0.1
- @semantic-release/changelog@^6.0.3
- @semantic-release/exec@^7.1.0
- @semantic-release/git@^10.0.1
- @semantic-release/github@^11.0.6
- @semantic-release/npm@^12.0.2
- @types/better-sqlite3@^7.6.13
- @types/blessed@^0.1.27
- @types/diff@^6.0.0
- @types/node@^22.15.3
- conventional-changelog-conventionalcommits@^8.0.0
- esbuild@^0.24.0
- eslint@^10.5.0
- globals@^16.5.0
- node-pty@^1.1.0
- semantic-release@^25.0.5
- tsx@^4.19.4
- typedoc@^0.28.20
- typescript@^5.8.3
- typescript-eslint@^8.61.1
- vitest@^2.1.8
clipboard 2
- clipboard shell call package/dist/clipboard.js :11
return execSync('pbpaste', { timeout: 5000, encoding: 'utf8' }).trim().slice(0, 100_000); - clipboard shell call package/dist/commands/feedback.js :69
const cp = spawn('pbcopy', { stdio: ['pipe', 'pipe', 'pipe'] });