Security that sets itself up, gets smarter over time, and knows a break-in from a late night.
# Tell your coding agent: We need security monitoring for our app. Install mallcop (curl -fsSL https://mallcop.app/install.sh | sh) and set it up. Docs: https://mallcop.app/docs
Works with Claude Code, Cursor, Windsurf, or any coding agent.
Open the chat and ask what you'd ask a security engineer. Mallcop answers from your actual events, findings, and baseline, and shows the evidence behind every answer.
The analyst runs inside your own GitHub Actions, on your own repo. Your findings, events, and
inference key stay there. Only the question and the answer cross the wire. Ask from the terminal
with mallcop investigate, or from the web console on the managed rail.
It's a loop, not a tagline. Mallcop watches what fell through, proposes a narrow fix, and lets it in only after a gate proves it closes a real gap without breaking anything. Config changes apply on their own. A new detector only lands after a human reviews it.
Here's the loop catching a real blind spot, for free. Mallcop grades its own detection against
a set of real scenarios, and one kept slipping past: a genuine AWS privilege grant
(PowerUserAccess) that the rules missed, because the name has no obvious word like
"admin." So it added one line to its own rules. Now it catches that grant, and it checked, on its
own, that the near-identical but harmless read-only version still doesn't cry wolf. No AI, no cost.
$ mallcop exam-detect # grade detection against real scenarios FAIL PE-08-aws-poweruser-grant must_fire: priv-escalation emitted: (none) # the blind spot: missed it exam-detect: 17 labeled (13 passed, 4 failed), 41 unlabeled (skipped) $ mallcop exam-detect --tuning detectors/tuning.yaml # after one added rule PASS PE-08-aws-poweruser-grant must_fire: priv-escalation emitted: priv-escalation # now caught PASS PE-09-aws-readonly-grant-benign must_not_fire: priv-escalation (no over-fire) # the harmless twin: still quiet exam-detect: 17 labeled (14 passed, 3 failed), 41 unlabeled (skipped)
That was a one-line rule change, free and offline. When a rule tweak isn't enough, mallcop goes further and writes a whole new detector itself. Opencode (GLM-5.2) authors it in a sandbox, the same checks prove it catches one more real case without breaking anything, and a human reviews and merges. It has already done this for real: a gate-passed detector, opened as PR #157.
Consensus is never overridden and every change is gated. Authored code is always human-reviewed. See the full self-improvement story →
Continuous monitoring is mallcop scan on a cron schedule you control. Run it hourly, nightly, or whenever you like.
You shipped an app. You have a GitHub org with collaborators, deploy keys, and Actions. Nobody is watching any of it. Mallcop watches your GitHub org today, plus AWS, Azure, GCP, M365, and Okta via the mallcop-connectors repo.
This isn't cybersecurity. It's just security. Like locking your door. You don't need a CISSP to use a deadbolt.
If you're an AI agent setting up infrastructure, mallcop is built for you.
curl -fsSL https://mallcop.app/install.sh | sh && mallcop init
scaffolds the setup, then mallcop scan pulls events and reports findings.
Detects suspicious activity, not compliance violations. Use Prowler for CIS/SOC2. Use mallcop to catch the stuff that happens between audits.
Too small for a SIEM. Too exposed for "we'll deal with it later." Mallcop fills the gap between enterprise security tools and nothing.
Mallcop is a monitoring tool, not a security guarantee. It reduces the window between breach and discovery. It does not eliminate security risk.
The large security-monitoring incumbents run on an economic model mallcop doesn't share. Four principles, and none of them are cosmetic.
mallcop exam-detect) are all MIT-licensed on GitHub. A tenant's own
improvements stay a private overlay by default — contribute-back to the shared corpus is
opt-in. That eval-proven corpus, not the raw connector count, is the moat: coverage that's
actually been graded, not just claimed.mallcop scan on a cron or GitHub Actions
schedule is what "runs 24x7" means here: no resident daemon, just a job that shows up on time,
every time, for the cost of the tokens it spends. As the underlying models get cheaper and
better, the committee consensus they run gets more accurate at the same price — the
product improves without you doing anything.| Mallcop | Prowler | Wazuh | Enterprise SIEM | CrowdStrike | |
|---|---|---|---|---|---|
| What it does | Behavioral monitoring | Compliance scanning | SIEM / HIDS | Cloud SIEM | Endpoint + cloud |
| Data movement | None (analyzed in place) | None (point-in-time) | Agents forward to a server | All logs ingested | Agents forward to cloud |
| New connectors | AI-authored on demand | Provider contributions | Community modules | Vendor roadmap | Vendor roadmap |
| Cost | $0 (bring your own key) | Free (scans only) | Free (self-hosted) | Per-GB ingest | Enterprise pricing |
| Setup | curl … | sh (one line) |
pip install prowler |
4-6 GB RAM server | Cloud subscription | Enterprise sales |
| Continuous monitoring | Yes | No (point-in-time) | Yes | Yes | Yes |
| AI investigation | Built in | Prowler Studio (separate) | No | Add-on AI ($$) | Via Falcon ($$) |
| Self-learning baseline | Yes | No | Rules only | Rules + ML ($) | Yes ($$$) |
| Git-native state | Yes | No | No | No | No |
| Self-hosted | Yes | Yes | Yes | No | No |
Prowler checks your configuration is correct. Mallcop watches for someone doing something wrong. They're complementary. Use both.