We've written before about why shadow AI is a trap: developers quietly wiring unapproved AI tools into workflows because the approved path is too slow. That post covers the why. This one is the checklist, what to actually do about it this quarter, not in principle.
Start by admitting bans don't work
The instinct when leadership discovers shadow AI is to block it: restrict API access, ban a list of domains, require a form before anyone can call an external model. This fails for a boring reason. Developers under a deadline will route around a ban faster than security can update the blocklist, usually by using a personal account, a browser extension, or a laptop that isn't on the monitored network. A ban doesn't reduce shadow AI, it just makes it invisible to you. If your current strategy is a policy document telling people not to do this, assume it isn't working and move on to something that changes the actual incentive.
Build the paved road, not the roadblock
The fix is to make the compliant path the fast path, so there's no reason to go around it. Concretely, that means:
Route AI calls through a shared gateway instead of individual API keys. When every team requests its own key from a provider, you lose visibility the moment the request leaves the building. A shared gateway gives you a single point to see what's being called and by whom, without adding a step developers have to remember.
Put the compliance check in CI, not in a review meeting. A pull request that adds a call to a new model provider should trigger an automated check the same way a broken test does, not a ticket that sits in a queue for two weeks. See our post on shift-left AI compliance for what that looks like in practice.
Pre-approve a default set of providers and models. If there's already an approved, wired-up option for the common case (a hosted LLM API, a standard embeddings provider), most developers will just use it rather than sourcing their own, simply because it's less work.
Signals worth watching for
You don't need invasive monitoring to catch shadow AI early. A few practical signals are usually enough:
New SDK imports in pull requests. A diff that adds an AI provider's SDK (an OpenAI client, an Anthropic client, a new embeddings library) without a corresponding entry in your system registry is a strong signal, and it's visible in code review if anyone's looking for it.
Unexpected outbound traffic to known AI API domains. Network-level visibility catches what code review misses, particularly calls made from scripts or notebooks that never go through a PR at all.
Expense reports or corporate card charges from AI vendors that don't match your approved vendor list. This one is unglamorous but reliable. Someone paying for an AI tool out of pocket, or on a card that isn't tied to procurement, is a signal that the approved options aren't meeting their need.
A sudden new data source feeding a model that isn't in your registry. If a system starts using a dataset nobody logged, that's worth a conversation regardless of whether the model itself was approved.
Rolling it out without becoming the blocker
The rollout order matters as much as the tooling. Start with visibility only, log what's happening without blocking anything, so you understand your actual baseline before you start enforcing rules against it. Turn findings into warnings next, feedback in the PR or the pipeline that tells a developer what changed and why it matters, without failing the build. Only gate the systems that are genuinely high-risk once you have a track record of the warnings being accurate and developers trusting them. And loop engineering into the decision of what counts as approved, since a policy written entirely by legal or security without technical input tends to be the first thing developers route around.
Done in that order, the goal isn't zero shadow AI on day one, it's a system where the default, no-extra-effort path is also the compliant one. That's the same principle OpenComplAI applies by dropping directly into CI/CD: visibility and checks that run automatically, so staying compliant doesn't cost anyone a separate step.