SOC case management with a copilot that asks first
sochub is a multi-tenant incident-response workbench. Triage cases, link IOCs across investigations and run MITRE-mapped playbooks, with an AI copilot on your model that never writes without your confirm.
Case managementIncident · ResponseInvestigation copilot
MITRE playbooksMulti-tenant SSO
localhost / dashboard
Built onFastAPIReact 19PostgreSQLOllamaDocker
Features
Built around how investigations actually work
Not a ticketing system wearing a security costume. Cases, artifacts and IOCs are first-class objects that link across investigations.
Investigation copilot
A context-aware assistant on a local Ollama model (or your own provider). It proposes actions; nothing is written until you confirm.
AI triage
Every new case gets a suggested severity, tags, playbook, related cases and next steps — before an analyst opens it.
Playbooks that run
MITRE-mapped IR playbooks fill a case with phase-grouped tasks. Link a task to a workflow: one click runs it, and the result lands on the task.
Investigation graph
A force-directed map of cases, artifacts and IOCs that surfaces the campaign hiding across "unrelated" cases.
Multi-tenant by design
One account, many tenants, a role per tenant. Row-level isolation and per-tenant SAML SSO for MSSPs and multi-entity orgs.
Workflows
A visual builder with conditions, loops, HTTP calls, "was this you?" over Slack or email, and templates for CrowdStrike, SentinelOne, Okta, Entra and more. Dry-run before you ship.
Alert suppression
Expiring, auditable rules auto-dismiss known noise at ingest. Preview before saving; "Suppress similar" builds one from an alert.
Ticketing / PSA sync
Jira, HaloPSA and ConnectWise, per tenant and two-way: tickets open from cases, and status and comments flow back.
Portfolio for MSSPs
Every client you work in on one screen: SLA breaches, unassigned work, one merged queue, and weekly client summaries.
Containment guardrails
Protected VIPs, servers and ranges, daily and per-case caps, and a release ledger. Automation never contains what it shouldn't.
Incident reports
AI-drafted, analyst-edited reports with TTD/TTC/TTR and swimlane timelines. Export to TLP-marked PDF or JSON.
Security first
Argon2, TOTP MFA, session revocation, host-bound workflow secrets, SSRF guards and full audit logging.
Product tour
See it before you deploy it
Real screenshots from the current build. Every one of these runs on your own infrastructure.
localhost · recorded session
CasesAI triage, SLA status, the linked Jira/Halo/ConnectWise ticket and the incident at a glance.
ActivityOne story per case: investigation events, notes, ticket comments and changes, in time order.
TasksPlaybook tasks can run a workflow; the workflow records its result on the task and ticks it.
ContainmentArtifacts, assets and every automated containment: active, refused by policy, or released.
PortfolioMSSPs see every client at once: SLA breaches, unassigned work and one merged queue.
SuppressionExpiring, auditable rules for known noise, with hit counts. A used rule can only be disabled.
BoardDrag cases across statuses; tags and SLA on every card. ⌘K jumps anywhere.
CopilotChat about a case; approve or cancel each proposed action.
GraphDashed bridges show where the same indicator links cases.
PlaybooksImport MITRE-mapped playbooks and own editable copies.
WorkflowsTyped node inspectors, dry runs and full run history.
sochub is now open source. The latest round was built mostly by describing features in plain English to an AI agent — here's what that actually looked like, including the parts where the vibe broke and judgment had to take over.
A multi-tenant, AI-assisted SOC case management system built for security teams that have outgrown Jira but can't justify the enterprise SIEM-adjacent platforms.
Building the infrastructure that turns raw cloud logs into actionable intelligence — from ingest pipelines to AI-powered signals and GitOps-managed detection rules.
Questions, feature ideas, bug reports or "we tried it and here's what broke" — all welcome. Submitting opens a pre-filled GitHub issue so the conversation happens in the open.