# KaiVault — Claude context

**Live:** https://kaivault.kainoter.com
**Embed:** https://kaivault.kainoter.com/embed/vault
**Local:** /Users/jacksonlwinga/Desktop/MPJL_APPS/KaiVault/password_manager_app/nextjs_space

## Ecosystem
- KAI HUB: https://www.kainoter.com/kaivault (iframe embed)
- KaiCalendar: https://calendar.kainoter.com
- Kai Browser: https://browser.kainoter.com
- Claude: https://claude.ai (use with docs/CLAUDE-PROJECT.md in Projects)

## Stack
Next.js 14 · Prisma · PostgreSQL · NextAuth · AES-256-GCM vault encryption · Vercel `kaivault`

## APIs
- GET https://kaivault.kainoter.com/api/ecosystem/links
- GET https://kaivault.kainoter.com/api/ecosystem/claude-context
- GET https://kaivault.kainoter.com/api/ecosystem/vault-stats (auth required)

## AI
- Claude via ANTHROPIC_API_KEY (ANTHROPIC_API_KEY on Vercel)
- Fallback: OPENAI_API_KEY + OPENAI_BASE_URL
- Security assistant in-app; never bulk-decrypts vault list

## Apple / PWA
- manifest.json standalone + theme #7C3AED
- apple-touch-icon 180×180
- Service worker at /sw.js for iOS Add to Home Screen
- HTTPS on kaivault.kainoter.com (required for WebAuthn + secure cookies)

## Agent rules
- Minimal diffs; dark purple vault UI (#0d0d12 / #7C3AED)
- Never log or return decrypted passwords in list APIs
- TOTP enforced on login when enabled
- Production domain: **kaivault.kainoter.com**
