search — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited search (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this skill when you need to find where something is implemented, understand how subsystems connect, or orient yourself before making changes.
| Package | Owns |
|---|---|
cmd/agnt/ | CLI entry points, PTY wrapper, MCP server bootstrap |
internal/daemon/ | Background service, session/process/proxy lifecycle, IPC hub |
internal/proxy/ | Reverse HTTP proxy, traffic logging, JS injection, WebSocket |
internal/tools/ | All MCP tool implementations and schemas |
internal/overlay/ | Terminal status bar, popup menus, ANSI output filtering |
internal/chromedp/ | Browser automation sessions (CDP) |
internal/browser/ | Chrome/Chromium process lifecycle |
internal/tunnel/ | Cloudflare/ngrok tunnel management |
internal/snapshot/ | Visual regression: baseline capture, image diffing |
internal/aichannel/ | AI agent CLI/API abstraction (Claude, Gemini, Copilot…) |
internal/automation/ | Prompt-driven task processing via claude-go |
internal/project/ | Project type detection (Go/Node/Python) |
internal/config/ | .agnt.kdl parsing, proxy/script config |
internal/protocol/ | IPC verb definitions and request/response types |
internal/store/ | Persistent key-value storage (global/folder/page scopes) |
internal/debug/ | Debug logging to ~/.cache/agnt/logs/ |
grep -r "Register.*Tools\|mcp.NewTool" internal/tools/internal/tools/daemon_tools.go — handleProxy*, handleProc*grep "json:\"" internal/tools/*.gointernal/tools/get_errors.gointernal/tools/responsive_audit.gointernal/tools/daemon_tools.gointernal/daemon/daemon.go — StartScript, autostartScript, CleanupSessionResourcesdaemon.go — RunAutostart, startAutostartScriptsinternal/daemon/process_readiness.go — ProcessReadiness, MarkReady/Failed/Exited, Waitdocs/plans/2026-03-15-process-dependency-ordering-design.mdinternal/daemon/daemon.go + go-cli-server/processgo-cli-server/script.RegistryCleanupSessionResources clears it on last session disconnectinternal/daemon/auto_restart.gointernal/daemon/port_preflight.gointernal/overlay/alerts.go → internal/daemon/alert_store.gointernal/daemon/proxy_events.gohandleURLDetected — URL in script output → find matching proxy config → create proxyhandleFallbackPortCheck — fallback-port used when URL detection failshandleScriptStopped — cleans up proxies linked to a script.claude/rules/proxy-events.mdinternal/daemon/daemon.go — autostartProxyscriptProxies map + trackScriptProxyinternal/daemon/hub_handlers.gointernal/daemon/daemon.go — handleSessionRegistergo-cli-server/session.Registryinternal/protocol/commands.gointernal/daemon/client.gointernal/daemon/doctor.gocheckProcessHealth, checkProxyHealth, checkMissingProxies, checkRunningWithErrors, checkSessionHealth, checkStartupErrors, checkProcessTreeinternal/daemon/startup_log_store.gointernal/daemon/alert_store.gohub_handlers.go — detectRogueProcess.claude/rules/daemon-architecture.mdinternal/proxy/server.gointernal/proxy/manager.goGetWithPathFilter — project-scoped lookupErrProxyAmbiguous — multiple fuzzy matchesinternal/proxy/logger.gointernal/proxy/injector.gointernal/proxy/websocket.gointernal/daemon/urltracker.gointernal/daemon/urlmatcher.gocmd/agnt/run.go — runCommandinternal/overlay/filter.gointernal/overlay/gate.gointernal/overlay/summarizer.gointernal/overlay/alerts.gocmd/agnt/pty_common.go — wires scanner → daemon alert pushinternal/chromedp/manager.go, session.gointernal/chromedp/session.go — CaptureScreenshotinternal/browser/browser.gointernal/config/agnt.gointernal/config/agnt.go — ProxyConfiginternal/config/agnt.go — ScriptConfiginternal/config/agnt_deps.go.claude/rules/config-contracts.mdinternal/platform/wsl.go — IsWSL(), ShouldUseWindowsShell(path).claude/rules/daemon-architecture.mdBefore changing anything in `internal/daemon/` read:
.claude/rules/daemon-architecture.md — personas, source of truth, silent failure rules.claude/rules/daemon-lifecycle.md — process/proxy state machines, session ownership.claude/rules/proxy-events.md — event pipeline, known silent failure pointsBefore changing anything in `internal/proxy/` or `internal/config/` read:
.claude/rules/config-contracts.md — fields that are parsed must be acted onImport cycle constraint:
daemon cannot import overlay (overlay imports daemon via status types)cmd/agnt/pty_common.go# Find where a specific IPC verb is handled
grep -n "VerbProxy\|\"PROXY\"" internal/daemon/hub_handlers.go internal/protocol/commands.go
# Find all places a ProxyEvent type is used
grep -n "URLDetected\|ScriptStopped\|FallbackPortCheck\|ExplicitStart" internal/daemon/
# Find all MCP tool input/output structs
grep -n "type.*Input\|type.*Output" internal/tools/*.go
# Find all places ProcessReadiness is called (dependency coordination)
grep -n "MarkReady\|MarkFailed\|MarkExited\|MarkStarting\|\.Wait(" internal/daemon/daemon.go
# Find all places the script registry is touched
grep -rn "scriptRegistry\." internal/daemon/daemon.go
# Find where a specific config field is read vs. acted on
grep -rn "FallbackPort\|fallback.port" internal/
# Find all hub handler functions (IPC verb implementations)
grep -n "^func (d \*Daemon) hubHandle" internal/daemon/hub_handlers.go
# Find all doctor check functions
grep -n "^func check" internal/daemon/doctor.goProcess stdout → URLTracker.Scan()
→ url-matchers (or regex scan)
→ onURLDetected(processID, url)
→ processReadiness.MarkReady(processID)
→ proxyEvents <- URLDetected{...}
→ handleURLDetected()
→ load .agnt.kdl
→ find ProxyConfig where Script == scriptName
→ proxym.Create(proxyID, targetURL)ProcessManager removes process
→ URLTracker.cleanupRemovedProcesses()
→ onProcessStopped(processID)
→ processReadiness.MarkExited(processID) ← unblocks all waiters immediately
→ proxyEvents <- ScriptStopped{...}
→ handleScriptStopped() → stop linked proxiesAI Agent calls MCP tool (e.g. proc {action:"list"})
→ internal/tools/daemon_tools.go handler
→ DaemonTools.client.SendCommand("PROC LIST", filter)
→ Unix socket → daemon hub_handlers.go
→ hubHandleProcList() → ProcessManager.List()
→ JSON response → tool outputagnt run / Claude Code session
→ daemon.handleSessionRegister()
→ session added to registry
→ RunAutostart(projectPath)
→ load .agnt.kdl
→ port conflict pre-flight
→ TopologicalSort(scripts) → layers
→ for each layer: startAutostartScripts()
→ processReadiness.MarkStarting(pid)
→ waitForDependencies() → processReadiness.Wait(depPid)
→ autostartScript() → StartScript()~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.