DarkControl AIDR: EDR & compliance for AI agents
Govern every command your AI agents run. DarkControl checks what Claude Code, Codex, Cursor and the other agents on your engineers’ machines try to do against a policy you set centrally, and records the result for your security and compliance teams.
Proud to be part of the OpenAI Partner Network and a registered member of the Claude Partner Network.
| Timestamp | Hostname | Service | Command | Action |
|---|---|---|---|---|
| 14:32:07 | eng-mbp-014 | Claude Code | git push origin feature/auth-refresh | Allowed |
| 14:32:05 | eng-mbp-014 | Claude Code | npm test -- --coverage | Allowed |
| 14:31:58 | data-ws-031 | Codex | pip install pandas-profiling | Asked: Allowed |
| 14:31:44 | ci-runner-03 | OpenCode | curl -fsSL https://get.example.sh | sh | Denied |
| 14:31:40 | eng-mbp-022 | Cursor | terraform plan -out=tfplan | Allowed |
| 14:31:19 | fin-ws-221 | Claude Code | cat ~/.aws/credentials | Denied |
| 14:31:02 | eng-lnx-007 | Grok Build | rm -rf ./build ../shared/releases | Denied |
| 14:30:51 | data-ws-031 | Codex | sudo apt install postgresql-client | Asked: Denied |
| 14:30:37 | eng-mbp-009 | Antigravity | git status | Allowed |







- OpenClaw
When an agent keeps pushing against policy, the console responds on its own.
A workflow connects a trigger to conditions and actions. The one shown here fires when a machine collects ten denied commands in five minutes. It suspends AI tool use on that machine for four hours, tells the security team in Microsoft Teams and sends the event to the SIEM.
| Run history | Matched | Outcome |
|---|---|---|
| Today 14:31 | eng-lnx-007 · 12 denials | Quarantined · notified |
| Today 09:05 | No endpoint over threshold | No action |
Triggers
Spikes in denied commands, tampering with policy files, credentials seen in a session, spikes in token usage and machines that stop checking in.
Before it goes live
Every workflow keeps its versions and can be given a dry run that shows what it would have done without doing it. How workflows work.
Coding agents run commands with your developers’ credentials
Claude Code, Codex, Cursor and similar tools have stopped being autocomplete. They execute shell commands, edit files, install packages and open network connections, and they do it as whoever launched them. An agent can run rm -rf on the wrong directory, pipe a script from the internet into a shell or empty a production bucket, because a prompt was ambiguous or because a file it had just read contained a malicious instruction.
Each tool keeps its permissions in its own file on each laptop, and each developer sets them differently. That is why most security teams cannot say which machines run agents, which MCP servers are attached to them, or who is working with approvals switched off.
There is also nothing to show afterwards. NIS2, ISO 27001 and the EU AI Act ask for evidence of oversight at runtime, meaning what the agent attempted, what was decided and who changed the rules. An AI policy written in a document does not provide that.
Allow. Deny. Ask. Audited.
DarkControl sits between the AI agent and the operating system. Each action is compared with your policy before it runs and receives one of three verdicts, which is recorded in the console with the command, the machine and the tool.
| Allow | Read-only commands, test runs and the tooling your team has already vetted run immediately, and the developer sees no difference. |
git statusnpm testpython -m pytest |
|---|---|---|
| Ask | Installing a new package or changing the system waits until a person approves it at the keyboard. |
npm install <new-package>sudo apt install …git push --force |
| Deny | Destructive deletes, scripts piped into a shell and reads of credential files are blocked before they execute. The agent is refused and the attempt is logged. |
rm -rf /*curl … | shaws s3 rm s3://prod --recursive |
One central policy, resolved for each machine.
A policy groups command, file and package rules. You can assign it to the whole organisation, a department, a group of endpoints or one machine, and the console works out which rules apply on each device, giving priority to the most specific assignment.
Balanced engineering baseline
Priority 20 · Assigned to Engineering (department) · Enabled| Kind | Rule | Services | Action |
|---|---|---|---|
| Command | *rm -rf* | All services | Deny |
| Command | *curl*|*sh* | All services | Deny |
| Command | git push --force* | All services | Ask |
| File | **/.env* · Read & write | Claude Code, OpenCode, Codex | Deny |
| File | **/.ssh/** · Read | Claude Code, OpenCode, Codex | Deny |
| Package | npm · Every package from manager | All services | Ask |
| Command | git * | All services | Allow |
Test before you enforce
A new rule can be tested against the commands your agents ran over the last 90 days, so you know what it would have stopped.
Tools, models and network
The same system decides which AI tools and models each department may use, and which network destinations agents may reach.
Temporary exceptions
When someone needs a denied command for a legitimate change, an administrator lifts that rule on that machine for between fifteen minutes and three days, and records the reason. More about policy.
An inventory of the MCP servers your agents use, with the risk of each.
DarkControl finds the MCP servers configured in each tool on each machine and scores every one from 0 to 100, listing the findings that make up the score. You can approve or deny a server by name, command, URL or fingerprint, and hold the riskiest until someone has reviewed them.
| Server | Risk | Tools | Found on | Status |
|---|---|---|---|---|
| shell-runnernpx -y shell-runner-mcp | 85 | 7 | 3 endpoints | Held for review |
| postgres-adminnpx @acme/postgres-mcp@latest | 64 | 12 | 5 endpoints | Needs review |
| docs-searchhttps://mcp.docs.example/sse | 31 | 3 | 14 endpoints | Needs review |
| githubgithub-mcp-server 0.9.2 | 12 | 26 | 41 endpoints | Approved |
| scratch-fsnode ./tools/fs-server.js | 58 | 5 | 1 endpoint | Denied |
shell-runner · risk 85 · critical
Claude Code · Cursor3 users
Permission modes
The console shows which tools are configured for bypass or auto-approve mode and which sessions actually ran that way, and lets you deny those modes in each tool.
Secrets exposure
API keys and tokens stored in plain text in agent configuration files appear in a report with their location, type and length. The credential value does not leave the machine.
Tamper detection
If someone edits, replaces or deletes the policy files DarkControl manages, the agent detects it, reports it and restores the policy. More about these controls.
The full record of each agent session.
Turns, tool calls and verdicts are grouped into the session they belong to, and subagents are shown separately from the main agent. Token usage comes from each tool’s own usage records, so it is not an estimate.
By default only metadata is captured, and secrets are redacted on the machine before anything is sent. Prompt content is recorded only if you turn that on. More about visibility.
Claude Code · eng-mbp-014
Started 14:02 · Duration 31 min · Correlation Native · Metadata onlyChronological timeline
- Session started · main agent
- git checkout -b fix/token-refreshAllowed
- Subagent started · test runner
- npm test -- auth/Allowed
- cat .env.productionDenied
- npm install jsonwebtoken@9Asked: Allowed
- Session ended
Compliance evidence drawn from real activity.
The console calculates a posture score from 0 to 100 and keeps a checklist mapped to SOC 2, CIS and ISO 27001. The EU AI Act module separates the obligations DarkControl observes directly from those an administrator attests, and every rule change is kept in an audit trail with the old and new values.
This material supports your compliance assessment. It is not a certification of conformity. More about evidence.
Security posture
EU AI Act · obligations register
Readiness12 of 16 Next review date12 Jan
| EU AI Act obligation | Source |
|---|---|
| Human-in-the-loop controls in force | Observed by DarkControl |
| Automatic event logging is operating | Observed by DarkControl |
| Every observed AI agent is under policy | Observed by DarkControl |
| Named person assigned to human oversight | Recorded by an administrator |
| AI literacy programme covers staff using AI agents | Recorded by an administrator |
How it is deployed
The console views on this page are illustrative and show sample data.
- Agent
- A single lightweight agent for Windows, Linux and macOS that checks in with the console every five minutes, picks up the current policy and updates itself.
- Installation
- By a one-line command with a single-use install token, or a downloaded script. The documentation includes deployment guides, among them one for Microsoft Intune.
- Console
- Enterprise customers have a dedicated instance with its own database and address. Organisations, departments and endpoint groups mirror your structure.
- Sign-in
- Through Microsoft Entra ID, so access to the console depends on the identities you already manage.
- Retention
- The telemetry retention period is set per organisation and applied by a daily purge, which is also written to the audit trail.
- Integrations
- Alerts and workflow events are sent to your SIEM over syslog or HTTPS and to your team in Microsoft Teams.
See DarkControl against your own AI tools.
Tell us what your engineers run and where. We will set up a private demo against a representative environment, and a person from DarkControl will reply within one business day.
Thank you. Your message has been sent.
A member of our team will reply within one business day.