The Short Answer First
If you are evaluating an enterprise AI proxy or AI data loss prevention tool, 3 products come up most: Nightfall, GitHub Copilot Enterprise, and Pretense. They solve different problems with different architectures. The choice depends on which risk you are trying to eliminate.
- -Nightfall: cloud DLP. Scans outbound API traffic for sensitive data. Detects after the fact.
- -Copilot Enterprise: Microsoft IDE assistant with enterprise contract terms. Trusts Microsoft with source code.
- -Pretense: local AI firewall. Mutates identifiers before transit. Provider never sees real names.
This teardown walks through 8 dimensions that matter to a CISO making the call. No paid placements, no spin. We run Pretense. We compared honestly.
Dimension 1: What Leaves Your Network
This is the most important difference, and the 1 most vendor sheets hide.
Nightfall: the prompt with all identifiers leaves your network. Nightfall scans the traffic on its cloud endpoint and logs violations. If the prompt contained proprietary code, that code already reached OpenAI before Nightfall saw it. Nightfall is a detective control, not a preventive one.
Copilot Enterprise: the prompt with all identifiers leaves your network. Microsoft's contract says they will not train on your data. You are trusting the contract. If Microsoft is breached, subpoenaed, or changes the policy, the real code is in their data center.
Pretense: only synthetic hashes leave your network. Real identifiers never transit. The mutation map is local. If the provider is breached, the attacker sees _fn4a2b, not getUserToken. This is a preventive control by math, not by contract.
For a CISO who has to answer what leaves the network, the 3 answers are: all of it, all of it with a promise, or synthetic hashes.
Dimension 2: Architecture
Nightfall: SaaS proxy. Traffic routes from your developer laptop to Nightfall cloud to the AI provider and back. Nightfall sees all traffic in clear text. Latency overhead is 100 to 300 ms per request in our testing.
Copilot Enterprise: Microsoft first party. No third party proxy. Latency is identical to consumer Copilot. Data crosses into Microsoft data centers.
Pretense: local proxy on the developer laptop. Traffic routes from laptop through the local Pretense process to the provider. No third party sees the traffic. Latency overhead is 1.8 ms per request in our benchmark (the Rust scanner rewrite).
The architecture choice decides the trust model. SaaS proxies require trusting the proxy vendor with clear text code. First party requires trusting the AI vendor. Local requires trusting open source code running on your own machine.
Dimension 3: Audit Log
Nightfall: logs violations at the SaaS boundary. You get a dashboard. You get CSV export.
Copilot Enterprise: Microsoft admin center provides usage reports. Prompt content is not included in the standard reports. You can request enterprise data controls for deeper access, paid add-on.
Pretense: every mutation logged locally with timestamp, user, file path, identifier, synthetic hash, model, and provider. pretense audit shows the log. pretense audit --export=csv produces SOC2 and EU AI Act ready evidence.
For compliance teams evaluating enterprise AI proxy options, the audit log detail matters. Nightfall logs what was flagged. Pretense logs what was mutated. Copilot logs what was generated. The 3 logs answer different compliance questions.
Dimension 4: Pricing
Nightfall: starts around 15 dollars per developer per month for basic DLP. Enterprise tier with code coverage is 45 dollars per developer per month.
Copilot Enterprise: 39 dollars per developer per month. Includes the Copilot assistant.
Pretense: 23 dollars per developer per month on the Pro tier. Enterprise tier with SSO, SIEM export, and custom policies is 79 dollars per developer per month. Free tier for solo developers and small teams.
The honest math: Nightfall plus your AI tool costs 80 to 100 dollars per developer per month. Copilot Enterprise alone is 39 but does nothing about the IP exposure question. Pretense plus your AI tool of choice is 23 plus the AI cost. Pretense adds a layer, it does not replace the AI tool.
Dimension 5: What Gets Protected
Nightfall: API keys, secrets, PII, PCI data, some code patterns. Detects strings that match known patterns.
Copilot Enterprise: nothing on the client side. Microsoft contract covers the provider side. Your source code is in the provider boundary.
Pretense: function names, variable names, class and interface names. Plus the secrets engine layer catches API keys, tokens, and credentials. Comments and string literals are preserved verbatim (we do not mutate what the LLM needs to read).
Different protection scope. Nightfall is broad pattern matching. Copilot Enterprise is a trust relationship. Pretense is narrow identifier mutation plus secret detection. For code work, identifier mutation is the control that blocks IP reconstruction.
Dimension 6: Language Coverage
Nightfall: language agnostic pattern matching. Does not understand code structure.
Copilot Enterprise: all languages Copilot supports.
Pretense: 8 languages with AST-aware scanning. TypeScript, JavaScript, Python, Go, Java, C Sharp, Ruby, Rust. Pattern matching for others.
AST-aware matters for code work. Pattern matchers miss identifiers in template strings, destructuring, and generic types. AST scanners do not. For teams heavy in TypeScript or Go, the AST path produces cleaner mutation.
Dimension 7: Deployment
Nightfall: SaaS. Sign up, configure routes, done. 15 minutes.
Copilot Enterprise: Microsoft 365 admin enablement. Existing Microsoft enterprise agreement required. 1 to 3 weeks depending on the existing contract state.
Pretense: curl install.sh and pretense start. 30 seconds on a laptop. Team wide rollout with CI gates and SSO is 1 day.
Deployment time matters less than it looks. The real question is what breaks when deploying. Nightfall breaks nothing, it is a cloud proxy. Copilot Enterprise requires contract work. Pretense requires an environment variable change in the IDE.
Dimension 8: What Happens When Your Provider Is Breached
This is the thought experiment that separates preventive from detective controls.
Nightfall scenario: OpenAI or Anthropic suffers a breach. Attacker exfiltrates 90 days of API logs. Your prompts are in the logs. Your proprietary code is in the logs. Nightfall cannot retroactively redact the logs. You are exposed.
Copilot Enterprise scenario: Microsoft suffers a breach affecting AI service logs. Your source code is in the logs. Microsoft notifies you. The data is already out. You are exposed.
Pretense scenario: provider suffers a breach. Attacker exfiltrates 90 days of API logs. Your prompts are in the logs. The prompts contain synthetic hashes, not real identifiers. Without your local mutation map, the hashes are useless. You are not exposed.
This is the math argument for mutation over redaction and for local-first over cloud proxy. When the provider is the threat, you cannot rely on the provider to protect you.
When Each Tool Wins
Nightfall wins for general DLP across file uploads, email, Slack, and other SaaS traffic. It is a broad enterprise DLP play. If your threat model is employees sharing SSNs in Slack, Nightfall is the right answer.
Copilot Enterprise wins if you are a Microsoft shop, your CISO is comfortable with Microsoft as a data processor, and your codebase is not the crown jewels. Fastest developer experience. No client side work.
Pretense wins if your threat model is proprietary code reaching any LLM provider, you operate under EU AI Act or SOC2 with specific AI logging requirements, or you run heterogeneous tools (Claude Code, Cursor, Copilot, Codex). Pretense is provider agnostic.
The Honest Weakness of Each
No tool is perfect. Here are the weaknesses we see.
Nightfall weakness: detective, not preventive. The data has already left by the time Nightfall sees it. Good for compliance evidence, less good for IP protection.
Copilot Enterprise weakness: single provider lock in. The enterprise contract only covers Microsoft AI services. Your team using Claude or Cursor is outside the control.
Pretense weakness: identifier only mutation. Does not mutate string literals or comments (by design, for output quality). If your IP is encoded in string constants rather than identifiers, Pretense protects less of it. Narrow coverage, deep control.
The CISO Buying Question
The question that separates these 3 tools: what is the worst case outcome?
- -Nightfall: a violation report after the fact.
- -Copilot Enterprise: a contract promise.
- -Pretense: synthetic hashes in the provider log.
If you need a contract, buy Copilot Enterprise. If you need broad pattern DLP, buy Nightfall. If you need a preventive control on proprietary code reaching any LLM provider, buy Pretense.

