Shadow AI Scout
Supported modes: Hosted Available in: Teams COMING SOON -- View pricing
Scout is not released. There is no installer to download and the Scout pages in the dashboard are not reachable. This page describes intended behaviour so you can plan for it -- nothing on it works today.
Do not schedule work that depends on Scout. For AI usage you can govern now, see the gateway, coding assistant hooks, or the browser extension.
Scout is a lightweight agent that will discover unauthorized AI usage across your infrastructure. It is not a SIEM, not an antivirus, and not a network monitor. It is purpose-built to answer one question: what AI is running in your environment?
Scout will detect AI API traffic, locally installed AI applications, and exposed AI credentials. It will report findings to your Control Zero dashboard without reading file contents, capturing prompts, or transmitting credentials.
Scout discovers and reports AI usage; enforcement comes from the gateway, coding hooks, or browser extension.
Installation
There is no installer yet. Scout has not been released, so there is nothing to download and no command to run.
When Scout ships, this section will carry the real install command and the platform matrix below will describe what is actually built.
Planned platforms
| Platform | Architecture |
|---|---|
| Linux | x86_64 |
| Linux | ARM64 |
| macOS | x86_64 |
| macOS | ARM64 |
What the installer will do
- Download the Scout binary for your platform.
- Verify the binary checksum.
- Register the agent with your Control Zero account.
- Install Scout as a background service (systemd on Linux, launchd on macOS).
- Start the first scan.
Configuration
Scout will store its configuration at ~/.config/cz-scout/settings.toml. You can edit this file to customize scan behavior.
# Control Zero API key (set during installation)
api_key = "cz_live_your_key_here"
# How often to run scans (in seconds). Default: 300 (5 minutes).
scan_interval = 300
# Which scan modules to enable.
[modules]
ai_traffic = true # Detect outbound AI API connections
ai_applications = true # Detect locally installed AI tools
api_key_exposure = true # Detect leaked AI credentials in config files
# Directories to scan for API key exposure.
# Scout checks file names and metadata only. It does not read file contents.
[scan_paths]
include = ["~", "/etc", "/opt"]
exclude = ["~/Library", "~/.cache", "/opt/homebrew/Cellar"]
# Enforcement settings (disabled by default).
[enforcement]
enabled = false
mode = "dns" # Options: "dns", "firewall", "both"
Configuration options
| Key | Type | Default | Description |
|---|---|---|---|
api_key | string | (required) | Your Control Zero API key |
scan_interval | integer | 300 | Seconds between scans |
modules.ai_traffic | boolean | true | Enable AI API traffic detection |
modules.ai_applications | boolean | true | Enable AI application detection |
modules.api_key_exposure | boolean | true | Enable credential exposure scanning |
enforcement.enabled | boolean | false | Enable enforcement mode |
enforcement.mode | string | "dns" | Enforcement method: dns, firewall, or both |
What Scout Detects
AI API Traffic
Scout monitors outbound network connections and identifies traffic to known AI provider endpoints:
- OpenAI (
api.openai.com) - Anthropic (
api.anthropic.com) - Cohere (
api.cohere.ai) - Mistral (
api.mistral.ai) - Google AI (
generativelanguage.googleapis.com) - Replicate (
api.replicate.com) - HuggingFace (
api-inference.huggingface.co) - And 10+ additional providers
For each connection, Scout reports the destination, originating process, connection frequency, and timestamp.
AI Applications
Scout will detect locally installed AI tools by checking for known process names and application directories:
- Local inference: Ollama, LM Studio, LocalAI, llama.cpp
- AI coding assistants: Cursor, GitHub Copilot, Continue, Cody
- Desktop clients: Claude Desktop, ChatGPT Desktop
- Development tools: Jupyter with AI extensions, VS Code with AI plugins
API Key Exposure
Scout will scan for AI provider credentials in common configuration locations, detecting key patterns for OpenAI, Anthropic, Cohere, HuggingFace, Google AI, and other providers.
Scout checks:
- Environment files (
.env,.env.local,.env.production) - Configuration files (
config.toml,config.yaml,settings.json) - Shell profiles (
.bashrc,.zshrc,.profile) - Source code in project directories
Scout reports only the key type and file location. The actual key value is never transmitted.
Enforcement Mode
Enforcement is opt-in and disabled by default. When enabled, Scout can block outbound connections to unauthorized AI services.
DNS-Level Blocking
Scout configures local DNS resolution to block domains associated with unauthorized AI providers. Allowed providers are defined in your Control Zero dashboard.
[enforcement]
enabled = true
mode = "dns"
Firewall Rules
Scout creates per-process firewall rules that restrict which applications can reach AI endpoints. This allows fine-grained control: approve Cursor but block ChatGPT Desktop, for example.
[enforcement]
enabled = true
mode = "firewall"
Combined Mode
Use both DNS blocking and firewall rules together for defense in depth.
[enforcement]
enabled = true
mode = "both"
Defining Allowed Services
Allowed AI services are managed in your Control Zero dashboard under the Shadow AI section. Scout pulls the allow list automatically on each scan cycle.
Privacy Guarantees
Scout is designed to discover AI usage without introducing new privacy or security risks.
- No file content reading. Scout checks file names and metadata for credential patterns. It never reads the actual contents of your files.
- No credential transmission. When a leaked key is found, Scout reports the key type (e.g., "OpenAI API key") and file path. The key value itself stays on the machine.
- No prompt or response capture. Scout identifies AI traffic by connection metadata (destination host, port, process). It does not inspect request or response payloads.
- Encrypted communication. All data sent from Scout to Control Zero uses TLS encryption.
- Minimal permissions. Scout requires network monitoring access and read access to file metadata. It does not require root on most configurations.
Managing Scout
Check status
cz-scout status
Run a manual scan
cz-scout scan --now
View local findings
cz-scout findings
Update Scout
cz-scout update
Uninstall
cz-scout uninstall
This stops the background service, removes the binary, and deregisters the agent from your Control Zero account. Local configuration files at ~/.config/cz-scout/ are preserved for reference.