Self-hosted service
beenuar/AiSOC avatar
beenuar/AiSOC

AiSOC: a self-hostable AI SOC where every agent decision is logged

Project brief: Open-source AI-powered Security Operations Center, alert fusion, purple-team drills, agent-assisted triage, MITRE ATT&CK investigation. MIT-licensed, self-hostable.

2,396 stars263 forksPythonMIT

At a glance

What is it?
AiSOC is an MIT-licensed Python stack that ingests security events, triages them with a LangGraph agent, and records each prompt, tool call and rationale in a replayable Investigation Ledger. The agent orchestrator is roughly 600 lines, which is the whole point and also the main constraint.
Who is it for?
Adopt AiSOC if you run a small detection team that needs triage and investigation on infrastructure you control, and if a readable LangGraph orchestrator matters more to you than a mature connector catalogue. Do not adopt it if you need a vendor-supported SLA or a wide prebuilt integration list; the repository ships its own stack and expects you to operate Postgres, Redis and Kafka.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The triage problem AiSOC is built around

Most small security teams do not lack alerts. They lack a defensible reason to close them. AiSOC targets that gap: it ingests security events, correlates them, runs an AI-driven investigation, and presents the result in a SOC console. The intended user is a team that already has log sources and a detection pipeline but no budget for a closed-source AI SOC vendor, and no appetite for sending raw evidence to a vendor cloud.

The README frames the value in terms of alert reduction, measured against a fixed 1,000-alert stream in CI. That framing matters because it is testable. The project does not claim a detection rate; it claims a noise-suppression measurement that gates every pull request targeting main or develop. Five suites run in CI: alert reduction against the fixed stream, three rubric-based substrate self-consistency gates over a deterministic 200-incident dataset with 55 templates, and a fifth gate that validates the backing telemetry corpus. The documentation states what each suite measures and, more usefully, what it does not.

That is a narrower promise than the phrase "AI SOC" usually carries. AiSOC is not trying to replace a SIEM's storage and search layer. It sits on top of event flow and tries to answer what a given incident actually is, with a record of how it reached that answer.

Inside the agent funnel and the Investigation Ledger

The orchestrator is a LangGraph in services/agents/, described in the README as roughly 600 lines. That size is a design commitment: small enough to read end to end, swap models in, and patch. If you have ever tried to audit a vendor's agentic triage, the difference is obvious. You can read this one.

The data flow the README describes runs Detect, Triage, Hunt, Respond. The sandbox package walks through those stages offline and prints them to stdout in under five seconds, with no API key and no network. Behind the full stack, docker-compose.yml wires Postgres, Redis, Kafka, ClickHouse, OpenSearch, Qdrant and Neo4j, plus api, agents and web services. That is a real storage tier, not a toy, and it is also the operational cost you are signing up for.

The Investigation Ledger is the part worth understanding before anything else. For every step of every run it stores the LLM prompt, the response, the evidence cited, and the downstream tool calls, and replays are available later. The seeded demo lands you on /cases/INC-RT-001?tab=ledger, a LockBit 3.0 case mid-investigation, with prompts and tool calls streaming into the ledger.

On data leaving the perimeter, the README is specific. There are no callbacks to a vendor cloud and no model-improvement telemetry. With a hosted LLM, evidence is pseudonymized by default: internal IPs, hostnames, emails, paths, secrets and usernames become opaque tokens. A local model via Ollama or vLLM gives a fully air-gapped path. The exact behaviour under each mode is documented in docs/trust/data-flows.md, which is the file to read if pseudonymization coverage is a deciding factor for you.

Installing AiSOC and running a first triage

The README offers four entry paths depending on what you already have. The lightest is the sandbox, which needs Python 3.10+ and no Docker. It installs the package in editable mode from the monorepo and runs an offline agent investigation:

bash
pip install -e packages/aisoc-sandbox && aisoc-sandbox demo

Expect the Detect, Triage, Hunt, Respond stages printed to stdout in under five seconds. No API key, no network. You can also pick a bundled scenario such as lateral-movement, aws-credential-exfil, phishing-payload, kubernetes-privesc or github-token-theft, or supply your own JSON with --file.

The wedge CLI is separate and scores a batch of alerts into verdicts of escalate, review or suppress using a deterministic engine ported from the production triage scorer. The README gives this example, which needs no LLM key:

bash
npx aisoc triage --demo
# ✓ AiSOC triaged 200 alerts: 12 TP, 171 FP suppressed (85.5% noise), 17 need review — in 0.1s

Note the README's own caveat: npx aisoc lands on npm with the v8.0 launch, and today it builds from packages/aisoc-lite/.

For the full stack you need Docker and pnpm. Clone, then run the demo script:

bash
git clone https://github.com/beenuar/AiSOC && cd AiSOC && pnpm aisoc:demo

This boots Postgres, Redis, Kafka, api, agents and web, and opens a browser at INC-RT-001. Stop it with pnpm aisoc:demo:down. If you have nothing installed, the README gives a bootstrap script:

bash
curl -fsSL https://raw.githubusercontent.com/beenuar/AiSOC/main/install.sh | bash

That installs Docker, Node, pnpm and git, then runs pnpm aisoc:demo. Before any of this, copy .env.example to .env. Three variables are required for local dev: OPENAI_API_KEY, POSTGRES_PASSWORD and AISOC_CREDENTIAL_KEY. The last one is a Fernet key for the connector credential vault, and the file states there is no default: the app will fail to start without it.

Where AiSOC is the wrong tool

The full stack is heavy. Postgres, Redis, Kafka, ClickHouse, OpenSearch, Qdrant and Neo4j is seven stateful services before you have ingested a single event. A team of one or two people without container operations experience will spend more time on the substrate than on triage. The sandbox and the wedge CLI exist precisely because that barrier is real, but they are simulators and scorers, not a SOC.

The compose file also carries a warning worth quoting in substance: all host port publishings are bound to 127.0.0.1 so a default docker compose up does not expose Postgres, Kafka, OpenSearch, Neo4j or Redis with their development passwords to the attached network. The same passwords ship in every clone. If you need to reach those services from another machine, the file tells you to write a docker-compose.override.yml, change the host binding for that specific service, and rotate the password. Treat any deployment that skips that step as compromised by default.

The demo has a documented availability caveat. The community demo at tryaisoc.com runs on Fly.io and, per the README, can go offline; Codespaces is named as the always-on fallback, and docs/operations/live-demo-runbook.md is the reference. The 90-second walkthrough video is not shipped yet either: the README says the rendered .mp4 and hero.gif land with the v8.0 launch, with the brief in docs/demo/SCREENCAST_SHOTLIST.md.

Finally, if your requirement is a broad library of prebuilt vendor connectors, AiSOC is not competing there. The README's comparison table puts it against Wazuh, Splunk ES and closed-source AI SOC products on licence, self-hosting, autonomous AI investigation and audit trail. Connector breadth is not the axis it claims.

How AiSOC differs from Wazuh and Splunk ES

The README's own comparison table is the honest starting point. AiSOC is MIT-licensed; Wazuh is GPL-2; Splunk ES is proprietary. All three are self-hostable in some sense, though Splunk ES is described as enterprise-only. The row that separates them is autonomous AI investigation: AiSOC uses a LangGraph orchestrator, Wazuh has no equivalent, and Splunk ES is marked partial via Splunk AI. The audit trail row is where AiSOC claims a public Investigation Ledger.

The practical difference is what you get to inspect. With Wazuh you get a mature rules and decoder engine and a large deployment base, but the reasoning layer is yours to build. With Splunk ES you get a polished correlation and case-management product, and you pay for it. AiSOC gives you a small agent you can read and a ledger you can replay, on top of a storage tier you operate yourself.

That trade cuts both ways. A 600-line orchestrator is auditable and replaceable, and it is also less battle-tested than a decade-old rules engine. If your detection logic is already expressed as Wazuh rules and you mainly need better triage on top, running AiSOC alongside Wazuh is a more plausible arrangement than replacing it.

Maintenance, releases and the MIT licence

The repository is not archived. The last push was on 2026-08-04, and v7.7.0 was released the same day, following v7.6.0 on 2026-07-13 and v7.5.0 on 2026-06-29. That cadence is visible in the release list, and the README pins several features to a v8.0 launch that has not happened in what the repository documents.

Upgrade cost depends on which path you took. The compose stack pulls from ghcr.io/beenuar/aisoc-*:${AISOC_VERSION:-latest}. The .env.example notes that with pull_policy: missing Docker pulls that tag on first boot and skips the local build, roughly 90 seconds versus about 15 minutes, and recommends pinning to a release tag such as v7.2.0 for reproducible deploys. If you leave AISOC_VERSION as latest you are tracking main and you own the consequences.

CI is the other maintenance signal. Every push runs compose-smoke and e2e against the seeded console, with compose-smoke-nightly repeating it on cold caches; the README calls a red badge a release-blocker. Nightly cold-cache runs are the kind of check that catches drift a one-time smoke test misses.

The licence is MIT, which permits reading, forking and replacing either the agent or the substrate. That is a statement about permissions, not a support commitment. Nothing in the repository describes a commercial support contract, and the demo is explicitly community-maintained. If you need someone to call when the ledger stops writing, that is not covered here.

Editorial conclusion

Adopt AiSOC if you run a small detection team that needs triage and investigation on infrastructure you control, and if a readable LangGraph orchestrator matters more to you than a mature connector catalogue. Do not adopt it if you need a vendor-supported SLA or a wide prebuilt integration list; the repository ships its own stack and expects you to operate Postgres, Redis and Kafka. Before committing, run the aisoc-sandbox demo, then boot the full stack and confirm that the Investigation Ledger records a complete prompt, evidence and tool-call sequence for the seeded INC-RT-001 case on your own hardware.

Frequently asked questions

What is AiSOC?

AiSOC is an open-source, self-hostable AI Security Operations Center that ingests security events, correlates them, runs AI-driven investigation, and surfaces the result in a SOC console. It is MIT-licensed, so the agent and the substrate can be read, forked or replaced.

Will SOC be replaced by AI?

The project does not make that claim. AiSOC positions the agent as running Detect, Triage, Hunt and Respond with its prompts, evidence and tool calls logged in the Investigation Ledger for replay, which is a record of assisted investigation rather than a replacement argument.

What is a CSOC and what does it do?

The repository does not define CSOC. What it documents is AiSOC itself: a self-hostable stack that ingests events, correlates them, runs an AI investigation through a LangGraph orchestrator, and records each step in the Investigation Ledger.

What are the top 10 SOC tools?

The repository does not rank SOC tools. The README compares AiSOC on four rows against Wazuh, Splunk ES and closed-source AI SOC products: open-source licence, self-hostability, autonomous AI investigation, and agent decision audit trail.

what is aisoc

AiSOC is an MIT-licensed, self-hostable AI Security Operations Center written primarily in Python. The README describes it as a single stack that ingests security events, correlates them, runs AI-driven investigation, and surfaces the result in a SOC console.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes