Voice-first Mac assistant that uses the computer for you. GPT-Live-1 voice, vendor-neutral brains (Codex, Claude Code, any API), native Swift hands, an ASCII blob that shows its work.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http 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 commit f6c3b40 · analyzer v33 · 4h ago
skills & prompt files 1
- agent-rules Kevin-Liu-01-Jarhead-f6c3b40/AGENTS.md
danger signals3
- suspicious endpoint 169.254.169.254 (cloud metadata) Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/policy.test.ts :524
assert.equal(v("http://169.254.169.254/latest/meta-data/", "read https://example.com"), "refuse", "link-local is private"); - over-broad OAuth scope https://mail.google.com/ Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/reflex.ts :181
gmail: "https://mail.google.com/", - over-broad OAuth scope https://mail.google.com/ Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/policy.test.ts :579
assert.ok(presenceGated(undefined, "https://mail.google.com/mail/u/0/#inbox"));
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 216
filesystem 62
- fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/__tests__/codex.test.ts :3
import { chmodSync, cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync, utimesSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/__tests__/fixtures/fake-codex.mjs :17
import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/__tests__/sessions.test.ts :3
import { appendFileSync, cpSync, mkdirSync, mkdtempSync, readFileSync, rmSync, utimesSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/__tests__/transcript.test.ts :3
import { appendFileSync, cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/claude-registry.ts :1
import { readdir, readFile } from "node:fs/promises"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/claude-store.ts :1
import { readdir, stat } from "node:fs/promises"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/codex-bin.ts :2
import { access, readFile, readdir, stat } from "node:fs/promises"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/codex-store.ts :1
import { readFile, readdir, stat } from "node:fs/promises"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/connector.ts :2
import { stat } from "node:fs/promises"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/others.ts :1
import { stat } from "node:fs/promises"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/runners/claude-code.ts :1
import { stat } from "node:fs/promises"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/runners/codex.ts :2
import { stat } from "node:fs/promises";
show 28 more
- fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/store.ts :1
import { open, stat } from "node:fs/promises"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/tail.ts :1
import { watch, type FSWatcher } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/transcript.ts :1
import { open, readFile, stat, type FileHandle } from "node:fs/promises"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/archive.test.ts :3
import { existsSync, mkdirSync, readFileSync, readdirSync, utimesSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/brain.test.ts :3
import { mkdtempSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/codex.test.ts :4
import { chmodSync, existsSync, lstatSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, readlinkSync, realpathSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/fakes.ts :1
import { mkdtempSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/files.test.ts :4
import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/marks.test.ts :4
import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/mcp-bridge.test.ts :4
import { mkdtempSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/reflex.test.ts :4
import { mkdtempSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/selfedit.test.ts :4
import { chmodSync, existsSync, mkdirSync, mkdtempSync, readFileSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/tools.test.ts :4
import { existsSync, mkdirSync, mkdtempSync, readFileSync, symlinkSync, writeFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/attachments.ts :1
import { readFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/claude.ts :1
import { readFileSync, rmSync, writeFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/codex-config.ts :1
import { existsSync, lstatSync, mkdirSync, readFileSync, readlinkSync, realpathSync, renameSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/codex.ts :1
import { accessSync, constants, existsSync, mkdirSync, readFileSync, statSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/files.ts :2
import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync, writeFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/mcp-bridge.ts :1
import { realpathSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/runner.ts :2
import { appendFileSync, existsSync, mkdirSync, readdirSync, renameSync, rmdirSync, statSync, writeFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/selfedit.ts :2
import { accessSync, constants, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/shell.ts :2
import { mkdirSync, openSync, closeSync, readFileSync, statSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/bench-brain.ts :3
import { existsSync, mkdtempSync, readFileSync, writeFileSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/bench.ts :3
import { existsSync, mkdtempSync } from "node:fs"; - fs Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/doctor.ts :2
import { existsSync, readFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/env.test.ts :3
import { mkdtempSync, writeFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/ledger.test.ts :3
import { mkdtempSync, appendFileSync } from "node:fs"; - fs (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/policy.test.ts :690
"node -e \"require('fs').rmSync(process.env.HOME + '/.jarhead/trash',{recursive:true})\"",
22 more not shown — this panel samples each group; the count above is the real total.
shell / exec 25
- shell Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/codex-bin.ts :1
import { execFile } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/processes.ts :1
import { execFile } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/agents/src/sessions/runners/codex.ts :1
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/codex-app-server.test.ts :5
import type { ChildProcess } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/files.test.ts :3
import { execFileSync } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/selfedit.test.ts :3
import { execFileSync } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/codex-app-server.ts :1
import { spawn, type ChildProcess } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/codex.ts :2
import { execFile, spawn, type ChildProcess } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/files.ts :1
import { execFile } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/selfedit.ts :1
import { execFile, spawn, type ChildProcess } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/shell.ts :1
import { spawn, type ChildProcess } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/bench-brain.ts :2
import { spawn as realSpawn, type ChildProcess } from "node:child_process";
show 13 more
- shell Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/bench.ts :1
import { spawn } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/doctor.ts :1
import { execFileSync } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/main.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/env.test.ts :6
import { spawnSync } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/hands/native/smoke.mjs :9
import { spawn } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/hands/src/__tests__/delivery.test.ts :8
import type { ChildProcess } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/hands/src/__tests__/native.test.ts :8
import type { ChildProcess } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/hands/src/fake.ts :3
import type { ChildProcess, spawn } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/hands/src/fallback.ts :1
import { execFile } from "node:child_process"; - shell Kevin-Liu-01-Jarhead-f6c3b40/packages/hands/src/native.ts :1
import { execFile, spawn, type ChildProcess } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/scripts/build-hands.ts :4
import { execFileSync } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/scripts/build-mac.ts :2
import { execFileSync } from "node:child_process"; - shell (weak) Kevin-Liu-01-Jarhead-f6c3b40/scripts/make-icon.ts :3
import { execFileSync } from "node:child_process";
network 9
- net (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/fakes.ts :2
import { createServer, type IncomingMessage, type Server, type ServerResponse } from "node:http"; - net (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/__tests__/tools.test.ts :3
import { createServer, type Server } from "node:http"; - net Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/claude.ts :76
const r = await fetch("https://api.anthropic.com/v1/models?limit=1", { headers: { "x-api-key": key, "anthropic-version": "2023-06-01" }, signal: AbortSignal.timeout(6000) }); - net Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/doctor.ts :114
const r = await fetch(url, { headers, signal: AbortSignal.timeout(8000) }); - net Kevin-Liu-01-Jarhead-f6c3b40/packages/cli/src/main.ts :169
const tts = await fetch("https://api.openai.com/v1/audio/speech", { - net (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/policy.test.ts :266
["node -e 'fetch(\"https://x\", {method:\"POST\", body: require(\"fs\").readFileSync(\"/etc/hosts\")})'", "confirm"], - net Kevin-Liu-01-Jarhead-f6c3b40/packages/daemon/src/client.ts :1
import { createConnection, type Socket } from "node:net"; - net Kevin-Liu-01-Jarhead-f6c3b40/packages/daemon/src/server.ts :1
import { createServer, type Server, type Socket } from "node:net"; - net Kevin-Liu-01-Jarhead-f6c3b40/packages/engine/src/engine.ts :930
const r = await fetch(`https://api.openai.com/v1/models/${encodeURIComponent(this.config.liveModel)}`, {
secrets 4
- secrets Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/claude.ts :63
let key = process.env["ANTHROPIC_API_KEY"]; - secrets (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/env.test.ts :40
assert.equal(process.env["OPENAI_API_KEY"], "sk-new"); - secrets (weak) Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/__tests__/policy.test.ts :217
["node -e 'console.log(process.env.ANTHROPIC_API_KEY)'", "refuse"], - secrets Kevin-Liu-01-Jarhead-f6c3b40/packages/core/src/env.ts :137
openai: Boolean(process.env["OPENAI_API_KEY"]),
declared dependencies 16
- @modelcontextprotocol/sdk@^1.30.0
- @anthropic-ai/claude-agent-sdk@^0.3.267
- @anthropic-ai/sdk@^0.116.0
- @jarhead/agents@workspace:*
- @jarhead/brain@workspace:*
- @jarhead/cli@workspace:*
- @jarhead/core@workspace:*
- @jarhead/daemon@workspace:*
- @jarhead/engine@workspace:*
- @jarhead/hands@workspace:*
- @jarhead/live@workspace:*
- @jarhead/protocol@workspace:*
show 4 more
- zod@^4.0.0
- @types/node@^24.10.1
- tsx@^4.20.6
- typescript@^5.9.3
clipboard 1
- clipboard shell call Kevin-Liu-01-Jarhead-f6c3b40/packages/brain/src/runner.ts :690
const r = await runShell({ command: "pbpaste", argv: ["/usr/bin/pbpaste"], timeoutMs: 5000, env: this.opts.env });