A lightweight, modern, and secure desktop application for managing API keys locally. Supports quick search, platform categorization, Excel batch import, and visual preview to help you systematically manage scattered keys.
- API Key Management: Add/Edit/Delete API keys with platform categorization
- Quick Search & Filtering: Search by name and platform keywords with floating toolbar
- Platform View: Radial menu platform aggregation with wheel pagination
- 🌍 Multi-language Support: Supports 9 languages including Chinese, English, Japanese, etc.
- Format Support: Supports .xlsx/.xls, reads from first worksheet
- Preview Window: Independent window displays data before import
- 🌐 Multi-language Header Matching: Automatically recognizes Excel file language format
- Duplicate Detection:
- Compares with existing database entries (by keyValue)
- Detects duplicates within the same batch
- Red highlighting for duplicates with row deletion option
- Data Cleaning: Auto-removes invisible characters (zero-width, BOM, control chars)
- Validation: Clear error messages indicating invalid characters and reasons
- Floating Toolbar: Always-on-top quick search and add entry
- Radial Menu: 6 items per screen with wheel navigation and edge fading
- Modern UI: Light/dark theme adaptation
- 🎨 Adaptive Background Gradient: Dynamic background generation based on theme and time
- 🚀 Theme Switch Performance: Smooth theme transitions with requestAnimationFrame
Activate the floating toolbar using Ctrl+Shift+K global shortcut
Quickly search API keys by name or platform using the floating toolbar
Click the + button to add a new API key with detailed information
Navigate through platforms using the radial menu with mouse wheel interaction
Import multiple API keys from Excel files with multi-language header support
Easily delete API keys with confirmation dialog
Switch between light/dark themes and 9 different languages instantly
- Framework: React 19 + TypeScript + Vite 7
- Styling: Tailwind CSS + PostCSS
- Build Tool: Vite 7
- Icons: Lucide React
- Framework: Tauri 2 (Rust)
- Database: SQLite (sqlx driver)
- Encryption: AES-256-GCM + Argon2id
- Plugins: Global hotkeys, file dialog, FS, etc.
Windows / macOS / Linux (requires Rust & Node environment)
- Input normalization and format validation with auto-cleanup
- Suspicious fragment interception (XSS, path traversal, command injection)
- Local-only operation and storage, no remote key transmission
- Node.js 18+
- Rust stable toolchain (with cargo)
- npm (or compatible package manager)
git clone https://github.com/blueraincoatli/APIkeyManager.git
cd APIkeyManager
npm installnpm run tauri:dev # Equivalent to tauri dev, starts Vite then Taurinpm run tauri:build # Generates platform installation packages/executablesEnglish Format:
Name | API Key | Platform | Description
Other Languages:
- Chinese: 名称 | API Key | 提供商 | 描述
- Traditional Chinese: 名稱 | API Key | 提供商 | 描述
- Portuguese: Nome | API Key | Plataforma | Descrição
- Spanish: Nombre | API Key | Plataforma | Descripción
- French: Nom | API Key | Plateforme | Description
- Italian: Nome | API Key | Piattaforma | Descrizione
- Japanese: 名前 | API Key | プラットフォーム | 説明
- Russian: Название | API Key | Платформа | Описание
Name: OpenAI GPT-4
API Key: sk-xxxxxxxx...
Platform: OpenAI
Description: Used for GPT-4 access
Note: Empty lines are skipped; at least "Name" and "API Key" are required. System automatically recognizes header language format.
src/
├─ components/
│ ├─ FloatingToolbar/ # Floating toolbar
│ ├─ RadialMenu/ # Radial menu
│ ├─ AddApiKey/ # Add/batch import dialog
│ ├─ SearchResults/ # Search results & list
│ ├─ VirtualScroll/ # Virtual scroll component
│ └─ ThemeToggle/ # Theme toggle component
├─ services/
│ ├─ apiKeyService.ts # Backend command interaction
│ ├─ inputValidation.ts # Normalization & validation
│ ├─ excelService.ts # Excel parsing with multi-language
│ ├─ searchOptimizationService.ts # Search optimization
│ ├─ securityService.ts # Security services
│ └─ toastService.ts # Notification service
├─ contexts/
│ ├─ ThemeContext.tsx # Theme context
│ └─ LocaleContext.tsx # Internationalization context
├─ hooks/
│ ├─ useSearch.ts # Search functionality hook
│ ├─ useAdaptiveTheme.ts # Adaptive theme hook
│ ├─ useBackgroundGradient.ts # Background gradient hook
│ └─ useThemeTransition.ts # Theme transition hook
├─ i18n/
│ └─ languages/ # Multi-language translation files
│ ├─ zh-CN.ts # Simplified Chinese
│ ├─ en-US.ts # English
│ └─ ... (8 other languages)
├─ styles/
│ ├─ theme.css # Theme styles
│ └─ tokens.css # Design tokens
└─ ...
public/
├─ preview.html # Independent preview window (multi-language)
├─ preview-i18n.js # Preview window i18n support
└─ templates/
└─ api_key_template.xlsx # Excel template (multi-language)
src-tauri/
├─ src/
│ ├─ commands/
│ │ ├─ api_key_commands.rs # CRUD operations
│ │ ├─ batch_import_commands.rs # Batch import commands
│ │ └─ window_commands.rs # Window management (multi-language)
│ ├─ database/ # SQLite access (sqlx)
│ ├─ security/ # Security module
│ └─ lib.rs / main.rs # Tauri application entry
└─ tauri.conf.json # Tauri configuration
- Development:
npm run tauri:dev - Build:
npm run tauri:build - Unit Tests:
npm run test - Test UI:
npm run test:ui
TypeScript + React componentization; camelCase for frontend-backend interfaces
Backend: import_api_keys_batch(keys) (fields: name, keyValue, platform, description)
- Create new language file in
src/i18n/languages/(e.g.,de-DE.ts) - Reference existing format and translate all text
- Register new language in
src/i18n/index.ts - Add translation in
public/preview-i18n.js - Add window title translation in
get_preview_window_titlefunction
- Preview window uses independent i18n system (
preview-i18n.js) - Supports
data-i18nattribute for translatable elements - Window titles set dynamically via backend commands
- Define
COLUMN_HEADERSmapping insrc/services/excelService.ts - System auto-detects current language and matches headers
- Intelligent fallback to default language when match fails
API Key Manager supports 9 languages:
| Language | Code | Status |
|---|---|---|
| Simplified Chinese | zh-CN | ✅ Full Support |
| English | en-US | ✅ Full Support |
| Traditional Chinese | zh-TW | ✅ Full Support |
| Portuguese | pt-BR | ✅ Full Support |
| Spanish | es-ES | ✅ Full Support |
| French | fr-FR | ✅ Full Support |
| Italian | it-IT | ✅ Full Support |
| Japanese | ja-JP | ✅ Full Support |
| Russian | ru-RU | ✅ Full Support |
- Select desired language in settings panel
- Interface updates immediately to selected language
- Independent preview window syncs language
- Excel import matches headers based on current language
Welcome to submit Issues / PRs to improve product experience and stability.
- Thanks to all developers who contributed to multi-language translations
- Thanks to users who provided bug feedback and feature suggestions
MIT License
Project Status: 🌟 Multi-language internationalization support completed - 2025-09-22
Latest Version: v0.1.0 with MSI installer available in src-tauri/target/release/bundle/msi/