NewIncident mode for packages, CI and hosts

Every AI key you run, found and rotated.

KeyShift finds the OpenAI, Anthropic, Gemini and 16 more provider keys across your env files, hosts and agent configs, flags the ones that reach the browser, keeps them on a rotation schedule and tells you what to rotate first when something upstream gets hit. It never stores a usable key.

19AI providers detected
0Bytes sent per scan
7 daysDefault rotation policy
Key Overview Live
Exposure score
12Healthy
Lower than last week · −64

This month

  • Keys rotated18
  • Exposures fixed3
  • Spikes caught1
  • Due this week4
OPENAI_API_KEYRotated 2 days ago · Vercel, Railway
On schedule
NEXT_PUBLIC_FAL_KEYMoved server-side and rotated
Fixed

Built for teams shipping on

The problem

Keys leak where nobody looks

Secret scanners watch your repo. Vaults hold what you put in them. The AI keys that actually run your product sit on four hosts, in a browser bundle, in an agent config and on a laptop.

1  // .env.production
2  DATABASE_URL=postgres://…
3  NEXT_PUBLIC_FAL_KEY=3f9a1c…9e2c
4  OPENAI_API_KEY=sk-proj-…f3Qa
5
6  // ends up in main.js, readable by anyone

Shipped to the browser

One NEXT_PUBLIC_ or VITE_ prefix puts a model key in every visitor's DevTools.

VercelCompromised packageRailway
OPENAI_API_KEY · 2 hosts

One compromise, every key

A poisoned package, CI action or host can read every secret in the process it runs in. You need the list, in order, in minutes.

$287 vs $38

Spend is the first alarm

A stolen model key gets used until your card is declined. KeyShift flags a day that breaks from the last two weeks, and shows your worst-case loss.

ANTHROPIC_API_KEYin 5 days
GROQ_API_KEYdue today
SUPABASE_SERVICE_ROLE110 days overdue

Keys nobody rotates

Made in a hurry, never touched again. Each key gets a policy, an owner and a zero-downtime checklist.

Incident mode

Something upstream got hit. Here's what to rotate first.

Declare a compromised host, package, container image, CI workflow, tool or vendor in under a minute. KeyShift works out which keys were in reach and puts them in order.

  • Blast radius. Every key in the runtime the compromised code could read.
  • Evidence, not guesses. Exposed, rotated after the window, or unusual spend during it.
  • Rebuild, then rotate. For packages, a clean build comes first, so new keys don't go straight back to bad code.
  • Status update built only from facts you entered.
litellm · packageUnverified report
✓ Clean build deployed
✓ANTHROPIC_API_KEYUnusual spend
✓HIGGSFIELD_API_KEYExposed
GROQ_API_KEYExposed
SUPABASE_SERVICE_ROLE_KEYRotated after
Where KeyShift fits

The gap between your code and your bill

Every tool you already own sees part of a key's life. KeyShift follows it from the file to the host to the invoice.

What KeyShift tracks for every key
Leak scanners
Detection by format & name
Browser exposure
Every host it lives on
Secret managers
Provider dashboards
Rotation policy & owner
Zero-downtime playbook
Daily spend & spikes
Cloud key services
Slack
Instant alerts
Incident blast radius
Worst-case loss
Your CI runner
Others: find leaks in code, or store secrets.KeyShift: manages the AI keys you already run, and never holds one.
Free scanner

See your exposure in ten seconds

Paste a .env, a config file or code. It runs in this tab and sends nothing. The optional leak check never sends your key, and only runs when you press it.

sample.env
Example input with fake keys. Replace it with your own to scan.
Drop files to scan
Read-out · baseline
0EXPOSURE
Healthy

Nothing scanned yet.

0AI keys found
0shipped to browser
0hardcoded
0other secrets
AI keys
Other secrets
CLI

Agents multiply keys. Find the ones on your laptop.

Keys now live in MCP and agent configs, shell profiles and tool credential files, where any tool with file access can read them. One command finds them.

  • Nothing leaves your machine unless you choose to sync, and your keys never do.
  • Flags inline keys in agent configs, world-readable files and files tracked in git.
  • Nothing to install. Runs with one command.
$ npx keyshift scan
keyshift 0.1.0: looked at 14 files, found 4 secrets.
Nothing was sent anywhere.

! ANTHROPIC_API_KEY  sk-ant-api03…Wd3X  ~/.cursor/mcp.json:7
    agent-readable inline key
! OPENAI_API_KEY  sk-proj…f3Qa  .env:2
    tracked in git, not in .gitignore
! GROQ_API_KEY  gsk…k0Gq  ~/.zshrc:12
    world-readable 0644
· GEMINI_API_KEY  AIza…Q7aX  .env.local:4
Pricing

Cheaper than one leaked key

Start free with the scanner and five keys. Upgrade when your team needs alerts, incidents and evidence.

Free
$0
  • The scanner, unlimited
  • Track up to 5 keys
  • Rotation reminders by email
Start free
Most teamsStartup
$29 /month
  • Unlimited keys and hosts
  • Spend spike alerts in Slack
  • Incident mode for hosts, packages, CI and vendors
  • Caps and worst-case loss
  • Spend runner and Monday digest
  • Team workspaces
Start with Startup
Growth
$99 /month
  • Everything in Startup
  • Tamper-evident audit log
  • Evidence export (PDF and CSV) for security questionnaires
  • Coming: auto-rotation, host connectors, SSO
Start with Growth

Know every key before someone else does.

Scan in your browser for free. Track, cap and rotate when you're ready.