QControl · Endpoint Monitoring for AI Agents

Visibility + control for the agents in your environment

QControl is endpoint software that treats the AI agent as its unit of analysis. Every tool call, every exec, every MCP route, every outbound connection, captured, classified, and fed into the security stack you already operate.

The Agent is the Gap

No layer of your stack was built for the agent

Your security stack was built for what came before agents: identity, device posture, network perimeters, and what crosses the wire. None of it sees the agent as a whole.

Security LayerLimitations

Identity

Knows who authenticated. Which agent identity is acting?

What did the agent do after authentication? Which files did it read, which tools it called, which endpoints it hit?

Network Perimeter

Sees encrypted flows, destination, 5-tuple metadata

Sees the destination, not the intent. Can't tell whether the agent is uploading source code or fetching a schema

EDR

Knows process lineage, syscalls, filesystem events

Sees that node opened a file, but doesn't know it was an AI agent reading your SSH keys to compose a prompt

AI Gateway

Knows request-layer policy; what was permitted to leave

Only sees what crosses the gateway. Agents that call local tools, read files, or spawn subprocesses never touch it.
Every layer sees a fragment

Qcontrol ties them together

Every file it reads, every tool call it makes, every outbound connection, captured at the agent and piped directly to your SIEM.
Agent
Claude Desktop
Total Users
1.2k
Compliance
97%
HTTP Requests
276k +
How it works

Three verbs in one binary

$ qcontrol run_

01 · Discover

Find every agent on the box

Within seconds of running qcontrol, every AI agent on the machine is automatically identified, regardless of runtime, framework, or language. No agents, no wrappers, no SDK integration required. Just visibility.

02 · Observe

See what they're doing

Watch in real time as every activity takes place. Every MCP route, every tool call, every outbound request, all surfaced and classified automatically, including profiling, auditing and alerting.

03 · Enforce

Decide what happens next

Define policies that control agent behavior in real time. Block unauthorized access, mutate or validate content, and generate signal from every action, all before it leaves the endpoint.

Maximum surface area

Every file an agent touches, every tool it invokes, every outbound connection it opens, every binary it spawns. Qcontrol hooks into every available surface and raises exhaustive signal events, making your existing SIEM, SOC, and compliance tooling agent-aware.

File Activity
Tool Calls
Network Behavior
Process Execution

File Activity

What files agents touch, create, delete, or modify: every read, write, and permission change, catalogued by agent ID.

Network Behavior

Tracks outbound connections, catches DNS lookups, surfaces every HTTP request and its headers, body, and response from every agent.

Tool Calls

Every MCP tool call to or from any agent, including tool name, input parameters, and results. A full tool-use audit trail.

Process Execution

Shells, subprocesses, workers: every exec and spawn an agent triggers, with full command-line arguments and exit codes.

From observation to enforcement

Every surface QControl sees, plugins can govern.

Plugins decide what crosses every surface QControl watches: file reads, outbound requests, tool calls. The same plugin shape can observe, block, annotate, or rewrite.

Example Plugin 1

Tag every tool call for the audit trail

What the agent reads, writes, opens. Config files, session state, credentials, anything on disk it touches.

// In a plugin
on_tool_call(call) {
  call.attributes["user.email"]   = whoami();
  call.attributes["session.id"]   = current_session();
  call.attributes["risk.tier"]    = classify(call.tool);
  return call;
}
Example Plugin 2

Refuse the read for paths the agent shouldn't see

The agent calls open() on a sensitive path: an SSH private key, a dotenv file, a credentials store. The plugin matches the path and returns a block decision before open() returns. The agent receives ENOENT, and from its view the file does not exist.

// In a plugin
on_file_open(path) {
  if (path.starts_with("~/.ssh") ||
      path.contains("/.env")   ||
      path.ends_with("/credentials")) {
    return QCONTROL_FILE_BLOCK_WITH(ENOENT);
  }
  return QCONTROL_PASS;
}
Example Plugin 3

Strip a secret from the prompt before it leaves the box

The agent composes a request that happens to contain an API token. Before the HTTPS request leaves the endpoint, a plugin matches the pattern in the body and replaces it with a placeholder.

// In a plugin
on_http_request(req) {
  if (req.host == "api.anthropic.com") {
    req.body = redact_secrets(req.body);
  }
  return req;
}
Standardized & Universal

Ready for whatever comes next

Any plugin using Qcontrol's SDK will apply cleanly to any underlying Agent or Harness (Claude, Codex, OpenCode, OpenClaw). Additionally, all agent events will be normalized into a single event stream for stable consumption.