| name | threatcaddy |
| description | Read and write data in a live ThreatCaddy investigation session via Chrome DevTools Protocol |
ThreatCaddy
Interact with a live ThreatCaddy investigation session running in Chrome. Create notes, IOCs, timeline events, tasks, and more โ directly from your AI coding agent.
Prerequisites
- Chrome launched with
--remote-debugging-port=9222 (recommended, no popups)
- macOS:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
- Alternative:
chrome://inspect/#remote-debugging โ toggle on (shows allow popup each time)
- ThreatCaddy open in a Chrome tab with an investigation selected
- Node.js 22+
Commands
All commands use scripts/tc.mjs. The first command spawns a background daemon that holds the Chrome CDP session open. Chrome's "Allow debugging" popup fires once; all subsequent commands reuse the session silently. The daemon auto-exits after 20 minutes idle.
Check connection
scripts/tc.mjs status
List investigations
scripts/tc.mjs investigations
Set active investigation
scripts/tc.mjs folder <investigation_id>
Execute a tool
scripts/tc.mjs exec <tool_name> '<json_input>'
Stop the daemon
scripts/tc.mjs stop
Available Tools (29)
Search & Read (10 tools)
- search_notes โ
{"query": "malware"} โ Search notes by keyword
- search_all โ
{"query": "apt29"} โ Search across all entity types
- read_note โ
{"id": "..."} or {"title": "..."} โ Get full note content
- read_task โ
{"id": "..."} or {"title": "..."} โ Get full task details
- read_ioc โ
{"id": "..."} or {"value": "10.0.0.1"} โ Get full IOC details
- read_timeline_event โ
{"id": "..."} or {"title": "..."} โ Get full event details
- list_tasks โ
{"status": "todo"} โ List tasks, optional status filter
- list_iocs โ
{"type": "ipv4"} โ List IOCs, optional type filter
- list_timeline_events โ
{"eventType": "initial-access"} โ List events
- get_investigation_summary โ
{} โ Get entity counts and metadata
Create & Update (11 tools)
- create_note โ
{"title": "Finding", "content": "# Details"}
- update_note โ
{"id": "...", "appendContent": "New paragraph"}
- create_task โ
{"title": "Review logs", "priority": "high", "status": "todo"}
- update_task โ
{"id": "...", "status": "done"}
- create_ioc โ
{"type": "ipv4", "value": "10.0.0.1", "confidence": "high", "analystNotes": "C2 server"}
- update_ioc โ
{"id": "...", "confidence": "confirmed", "attribution": "APT29"}
- bulk_create_iocs โ
{"iocs": [{"type": "ipv4", "value": "10.0.0.1"}, {"type": "domain", "value": "evil.com"}]}
- create_timeline_event โ
{"title": "Phishing email", "timestamp": "2025-06-15T14:00:00Z", "eventType": "initial-access"}
- update_timeline_event โ
{"id": "...", "actor": "APT29"}
- link_entities โ
{"links": [{"sourceType": "note", "sourceId": "...", "targetType": "task", "targetId": "..."}]}
- generate_report โ
{"executiveSummary": "...", "findings": "..."}
Analysis (2 tools)
- extract_iocs โ
{"text": "Found IP 10.0.0.1 and domain evil.com"} โ Extract IOCs from text
- analyze_graph โ
{} โ Analyze entity relationship graph
Cross-Investigation (5 tools)
- list_investigations โ
{} โ List all investigations
- get_investigation_details โ
{"name": "APT29"} โ Detailed investigation summary
- search_across_investigations โ
{"query": "cobalt strike"} โ Search all investigations
- create_in_investigation โ
{"investigationName": "APT29", "entityType": "note", "data": {"title": "...", "content": "..."}}
- compare_investigations โ
{"investigationIds": ["id1", "id2"]} โ Find shared IOCs and TTPs
IOC Types
ipv4, ipv6, domain, url, email, md5, sha1, sha256, cve, mitre-attack, yara-rule, sigma-rule, file-path
Timeline Event Types
initial-access, execution, persistence, privilege-escalation, defense-evasion, credential-access, discovery, lateral-movement, collection, exfiltration, command-and-control, impact, detection, containment, eradication, recovery, communication, evidence, other
Example Workflows
Triage a threat report
scripts/tc.mjs exec extract_iocs '{"text": "The actor used 185.220.101.1 to deliver payload.exe (SHA256: abc123...) via phishing from updates.evil.com"}'
scripts/tc.mjs exec bulk_create_iocs '{"iocs": [{"type":"ipv4","value":"185.220.101.1","confidence":"high","analystNotes":"C2 server"},{"type":"domain","value":"updates.evil.com","confidence":"high","analystNotes":"Phishing infrastructure"}]}'
scripts/tc.mjs exec create_timeline_event '{"title":"Phishing email delivered","timestamp":"2025-06-15T09:00:00Z","eventType":"initial-access","source":"Email gateway"}'
scripts/tc.mjs exec create_task '{"title":"Block C2 IP at firewall","priority":"high","status":"todo"}'
Research and document
scripts/tc.mjs exec create_note '{"title":"APT29 Infrastructure Analysis","content":"# Infrastructure Mapping\n\nThe following C2 infrastructure was identified..."}'
scripts/tc.mjs exec search_across_investigations '{"query":"185.220.101"}'