Why Compare These Two?
Nightfall is the most common enterprise DLP solution recommended for AI security. It's well-funded, has a mature product, and security teams know the name. When enterprise CISOs evaluate AI security tooling, Nightfall is usually on the shortlist.
Pretense takes a fundamentally different architectural approach. This comparison is meant to be honest about the tradeoffs.
Architectural Difference
Nightfall DLP: Cloud-based SaaS. Your data is sent to Nightfall's servers for analysis before being forwarded (or blocked). Nightfall uses ML classifiers to detect sensitive data patterns and applies redaction policies.
Pretense: Local-first proxy. The mutation engine runs entirely on-machine. Your code stays on your machine and off Pretense's servers. The proxy intercepts API calls, applies mutations using a locally-stored map, and forwards the transformed request.
This is a substantive distinction. For most enterprise security requirements, the architectural difference is the decision.
Key Comparison Dimensions
Data Residency
Nightfall requires sending your code to Nightfall's infrastructure for analysis.
This creates a second third party with access to your proprietary code.
With Pretense, your code stays on your device. Mutations happen on-device. Even in the Pro tier (which adds a cloud dashboard), the mutation itself is local.
LLM Context Preservation
Nightfall applies redaction. Pretense mutates.
In our testing, prompts processed through Nightfall's redaction failed to produce useful LLM output in 68% of cases involving function names, class hierarchies, and internal API patterns.
These are exactly the cases where developers need AI assistance most.
Deployment Time
Nightfall: 2–4 week enterprise rollout (API integration, policy configuration, team training, data residency agreements).
Pretense: curl -fsSL https://pretense.ai/install.sh | sh && pretense start. Under 60 seconds. One environment variable to route your existing tool.
Cost
Nightfall: $5,000–$15,000/month minimum enterprise contract. Sales-led, custom pricing.
Pretense: Free (Starter), $29/seat/month (Pro), $99/seat/month (Enterprise).
A 10-person engineering team running Pretense Pro costs $290/month vs. $5,000+/month for Nightfall. That's a 17x cost difference.
False Positive Rate
Nightfall's ML classifiers generate false positives on variable names that look like credentials (e.g., apiKeyField, secretRotationPolicy). These block legitimate code and frustrate developers.
Pretense mutates based on code structure, independent of content patterns. Mutation sidesteps false positives entirely: every identifier is treated the same.
When Nightfall Is the Right Choice
Be honest: Nightfall is better in some scenarios.
If your primary concern is general document DLP (emails, Slack messages, documents), Nightfall's classifier breadth is genuinely superior. It's purpose-built for that problem.
If you have existing Nightfall infrastructure for non-AI use cases, adding AI coverage may be an incremental cost compared with a full replacement.
Our Recommendation
For teams whose primary AI security concern is code sent to LLM APIs, Pretense provides better security properties (local-first, mutation vs. redaction) at a fraction of the cost, with immediate deployment.
Nightfall is the right choice when you need a general-purpose DLP platform for all data types across your organization, and you've already made the investment decision.
How I run Pretense on my own code
I build Pretense with Claude Code, and my sessions run through it. Here is the setup I give a new engineer, in order.
- -Run the agent through the proxy. Type
pretense run claudewhere you would typeclaude. It starts a local proxy on port 9339, points Claude Code at it and stops the proxy when the session ends. Detected secrets and PII leave the laptop as stand-in tokens. - -Put hooks on every repo.
pretense installadds a pre-commit and a pre-push hook. A key that never lands in git is a key an agent never reads. - -Scan before an agent reads the repo.
pretense scan path .lists what it finds. In CI,pretense scan ciexits 0 when clean, 2 on findings and 3 when it examined nothing. Treat 3 as a failure. - -Preview the swap.
pretense review .shows what would be mutated.pretense mutate <file> --previewprints one file mutated and leaves the file on disk as it was. - -Round-trip a file you need to share.
pretense mutate <file> --map <map>swaps the secrets in place.pretense reverse <file> --map <map>turns it back into the original, byte for byte, from the encrypted map on your machine. We run that round trip on real files before every CLI release and compare sha256 hashes.
One thing I learned the hard way: inside a session the agent sees stand-ins, so a file the agent writes can hold a stand-in where you expected a real value. Grep what the agent wrote before you ship it.
What Pretense will not do is put a secret back into the model's answer. Code identifiers come back byte-exact. Secrets and PII stay as stand-ins in the response. That is deliberate: a prompt-injected model can echo a token into a link, and reversing it there would hand over the real key.
What this means if you buy security
The outcome: your engineers keep their AI coding tools, and detected secrets and PII leave each laptop as stand-in tokens.
- -The control sits on the endpoint. The swap runs on the developer's machine before the request leaves. No shared gateway holds every team's keys.
- -You get evidence, not a memo.
pretense audit --format csvexports every mutation event. Add--framework SOC2to keep only the events that map to that framework. - -Check it on your own code. Detection is pattern and entropy based, and coverage varies by data type. Run
pretense review .on a real repo and read what it catches before you sign off. - -Start with one team. One repo,
pretense run claude, one week. Then read the audit log with the team lead.
Try it on your own repo: create a free account, then run npm i -g @pretense/cli and pretense run claude. If you need a security review first, talk to me.