SOC Agent Toolkit
AI-assisted SOC alert triage and incident analysis toolkit for the command line.
SOC Agent Toolkit is a modular Python CLI for processing security alerts from the terminal. It normalizes alerts, maps events to MITRE ATT&CK techniques, enriches indicators of compromise (IOCs), deduplicates related alerts, prioritizes incidents, and generates analyst-ready incident summaries.
Designed for Linux, WSL, macOS, Windows PowerShell, and Windows CMD.
Defensive security tooling only. Use it only with systems, logs, domains, IPs, and files you are authorized to investigate.
Features
- Multi-format alert parsing — JSON, CEF, and syslog
- MITRE ATT&CK mapping — heuristic mapping with optional STIX-based matching
- IOC enrichment — IP, domain, and file-hash reputation through configured threat-intelligence providers
- Smart deduplication — fuzzy signature matching with a configurable time window
- Priority scoring — scores alerts from 0–100 and assigns P1–P4 tiers
- Asset criticality weighting — increases priority for important hosts or assets
- AI incident summaries — Claude-powered summaries with an offline deterministic fallback
- Interactive terminal UI — logo, system status, command menu, and interactive prompt
- Live pipeline progress — visible stages for parsing, MITRE mapping, enrichment, triage, and summarization
- Machine-readable JSON — structured output for scripts and automation
- CLI-first design — built for terminal and security workflows
- Defensive only — no automatic blocking, isolation, or production changes
Architecture
Raw Security Alerts
│
▼
┌──────────────┐
│ Parser │
│ JSON / CEF / │
│ Syslog │
└──────┬───────┘
│
▼
┌──────────────┐
│ MITRE │
│ ATT&CK Map │
└──────┬───────┘
│
▼
┌──────────────┐
│ IOC │
│ Enrichment │
└──────┬───────┘
│
▼
┌──────────────┐
│ Deduplication│
│ + Scoring │
└──────┬───────┘
│
▼
┌──────────────┐
│ Priority P1 │
│ to P4 │
└──────┬───────┘
│
▼
┌──────────────┐
│ AI Incident │
│ Summary │
└──────────────┘
Requirements
- Python 3.10+
- Git
- Internet access only when using external threat-intelligence providers or Claude
Installation
Development / from source
git clone https://github.com/ByteBreakerGhost-69/soc-agent-toolkit.git
cd soc-agent-toolkit
python -m venv .venv
Linux / WSL / macOS:
source .venv/bin/activate
Windows PowerShell:
.venv\Scripts\Activate.ps1
Windows CMD:
.venv\Scripts\activate
Install the package:
python -m pip install --upgrade pip
pip install -e .
The soc-agent executable is then available in the active environment.
Package installation
Once published to PyPI, the intended user experience is:
pip install soc-agent-toolkit
soc-agent
Interactive TUI
Running soc-agent without arguments opens the interactive terminal interface:
soc-agent
Available commands inside the prompt:
analyze <file> Analyze security alerts
mitre "<text>" Map text to MITRE ATT&CK
enrich-ip <ip> Check IP reputation
enrich-domain <domain> Check domain reputation
enrich-hash <hash> Check file hash reputation
version Show version
help Show commands
exit Exit
The interface also displays toolkit status, the author footer, and pipeline progress during analysis.
CLI Usage
Help
soc-agent --help
Analyze alerts
soc-agent analyze alerts.json
The pipeline performs:
Parse
↓
MITRE mapping
↓
IOC enrichment
↓
Deduplication
↓
Priority scoring
↓
Incident summary
JSON output
soc-agent analyze alerts.json --json
The JSON result is suitable for automation and can be redirected to a file:
soc-agent analyze alerts.json --json > result.json
Analyze from stdin
cat alerts.json | soc-agent analyze -
This allows SOC Agent Toolkit to be chained with other command-line tools.
Asset criticality
Create assets.json:
{
"10.0.0.12": 15,
"10.0.0.20": 10
}
Run:
soc-agent analyze alerts.json --assets assets.json
Higher asset criticality increases the priority score of related alerts.
MITRE ATT&CK Mapping
soc-agent mitre "SSH brute force login attempt"
Example:
MITRE ATT&CK Matches
====================
T1110 — Brute Force
Tactic: Credential Access
IOC Enrichment
IP
soc-agent enrich-ip 8.8.8.8
Domain
soc-agent enrich-domain example.com
File hash
soc-agent enrich-hash 44d88612fea8a8f36de82e1278abb02f
Supported hash inputs include MD5, SHA-1, and SHA-256.
When a reputation provider is unavailable, the toolkit reports unknown rather than inventing reputation data.
Threat Intelligence Configuration
Supported environment variables:
ABUSEIPDB_API_KEY
VT_API_KEY
OTX_API_KEY
Claude integration uses:
ANTHROPIC_API_KEY
Linux / WSL / macOS
export VT_API_KEY="YOUR_KEY"
export ABUSEIPDB_API_KEY="YOUR_KEY"
export OTX_API_KEY="YOUR_KEY"
export ANTHROPIC_API_KEY="YOUR_KEY"
Windows PowerShell
$env:VT_API_KEY="YOUR_KEY"
$env:ABUSEIPDB_API_KEY="YOUR_KEY"
$env:OTX_API_KEY="YOUR_KEY"
$env:ANTHROPIC_API_KEY="YOUR_KEY"
Never commit API keys, tokens, passwords, or secret .env files to GitHub.
Offline Behavior
External enrichment is optional. Without reputation API keys, enrichment returns an unknown verdict when external evidence is unavailable.
Without Claude, the toolkit uses a deterministic offline incident-summary fallback so the core parsing, MITRE mapping, triage, deduplication, and scoring pipeline can continue.
Priority Model
Alerts receive a score from 0–100 and one of four priority levels:
P1 — Critical
P2 — High
P3 — Medium
P4 — Low
The score can incorporate alert severity, repeated occurrences, IOC reputation, MITRE ATT&CK matches, and asset criticality.
Project Structure
soc-agent-toolkit/
│
├── soc_agent_toolkit/
│ ├── __init__.py
│ ├── agent.py
│ ├── cache.py
│ ├── cli.py
│ ├── config.py
│ ├── enrichment.py
│ ├── enrichment_async.py
│ ├── logging_setup.py
│ ├── mitre.py
│ ├── models.py
│ ├── parser.py
│ ├── schemas.py
│ ├── summarizer.py
│ ├── triage.py
│ └── tui.py
│
├── soc_agent_toolkit/tests/
├── alerts.json
├── pyproject.toml
├── .gitignore
└── README.md
Core modules
| Module | Purpose |
|---|---|
parser.py |
Normalize JSON / CEF / syslog alerts |
mitre.py |
MITRE ATT&CK technique mapping |
enrichment.py |
IP / domain / hash reputation lookups |
enrichment_async.py |
Concurrent enrichment |
triage.py |
Deduplication and priority scoring |
summarizer.py |
AI and offline incident summaries |
schemas.py |
AI tool-use definitions and dispatcher |
agent.py |
End-to-end pipeline and agentic loop |
cli.py |
Command-line interface |
tui.py |
Interactive Rich terminal interface |
config.py |
Configurable scoring and toolkit settings |
Example Workflow
# Launch interactive TUI
soc-agent
# Analyze alerts
soc-agent analyze alerts.json
# Get structured JSON output
soc-agent analyze alerts.json --json
# Map an alert to MITRE ATT&CK
soc-agent mitre "SSH brute force login attempt"
# Check an IP
soc-agent enrich-ip 8.8.8.8
# Check a domain
soc-agent enrich-domain example.com
# Check a file hash
soc-agent enrich-hash 44d88612fea8a8f36de82e1278abb02f
# Show version
soc-agent version
Testing
Run the full test suite:
pytest -q
Expected project validation includes:
python -m py_compile soc_agent_toolkit/cli.py
python -m compileall -q soc_agent_toolkit
pytest -q
Design Principles
Defensive by design
The toolkit analyzes, enriches, prioritizes, and summarizes security events. It does not automatically block IP addresses, isolate endpoints, or modify production systems.
Evidence over guessing
When reputation information is unavailable, the toolkit reports unknown instead of inventing a verdict.
Deterministic core
The main security pipeline remains deterministic and inspectable, while AI is used for natural-language reasoning and analyst-facing summaries.
CLI-first
The project is designed to work naturally inside terminal-based SOC workflows and automation pipelines.
Roadmap
- Additional threat-intelligence providers
- Expanded MITRE ATT&CK coverage
- More extensive test coverage
- CI/CD automation
- Package distribution and release automation
- Improved AI agent workflows
License
This project is currently distributed without a declared license.
A permissive open-source license such as MIT can be added before public package distribution.
Author
Maulana Yasyfa’u Al Azhiim Yudho Leksono
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file soc_agent_toolkit-0.1.0.tar.gz.
File metadata
- Download URL: soc_agent_toolkit-0.1.0.tar.gz
- Upload date:
- Size: 39.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f79945988ba3e5bbd1977ccf80f4e239c8b07ad58c24d4b514c73a39923a51cd
|
|
| MD5 |
18ebee2b58d9b2295398e38cf56d1955
|
|
| BLAKE2b-256 |
1d734defd9051a178f06f6d86bef2053c54f48c8f53ab8ee2971bf8d7f3f6280
|
Provenance
The following attestation bundles were made for soc_agent_toolkit-0.1.0.tar.gz:
Publisher:
publish.yml on ByteBreakerGhost-69/soc-agent-toolkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soc_agent_toolkit-0.1.0.tar.gz -
Subject digest:
f79945988ba3e5bbd1977ccf80f4e239c8b07ad58c24d4b514c73a39923a51cd - Sigstore transparency entry: 2736174378
- Sigstore integration time:
-
Permalink:
ByteBreakerGhost-69/soc-agent-toolkit@2c188b6344a78f7c5c391e33abf66ec5a75284e6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ByteBreakerGhost-69
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2c188b6344a78f7c5c391e33abf66ec5a75284e6 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file soc_agent_toolkit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: soc_agent_toolkit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 45.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc4e84839466252c8718fce605984df5c794204f96a6ce0c7f393bca390c403b
|
|
| MD5 |
f1c04cdcaf3e7c9f4aa2d44cef7714d6
|
|
| BLAKE2b-256 |
3b79166738509792b4f9deaf9afb5345e55e0ae02c43cebdcc74b21e4f6bf7ea
|
Provenance
The following attestation bundles were made for soc_agent_toolkit-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on ByteBreakerGhost-69/soc-agent-toolkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soc_agent_toolkit-0.1.0-py3-none-any.whl -
Subject digest:
cc4e84839466252c8718fce605984df5c794204f96a6ce0c7f393bca390c403b - Sigstore transparency entry: 2736174473
- Sigstore integration time:
-
Permalink:
ByteBreakerGhost-69/soc-agent-toolkit@2c188b6344a78f7c5c391e33abf66ec5a75284e6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ByteBreakerGhost-69
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@2c188b6344a78f7c5c391e33abf66ec5a75284e6 -
Trigger Event:
workflow_dispatch
-
Statement type: