{"id":46165119,"url":"https://github.com/baidan4855/keepyer","last_synced_at":"2026-03-02T12:01:02.180Z","repository":{"id":338428642,"uuid":"1150272015","full_name":"baidan4855/keepyer","owner":"baidan4855","description":"A cross-platform LLM API key manager — a clean, lightweight desktop app for managing API keys from different AI providers.","archived":false,"fork":false,"pushed_at":"2026-02-14T12:36:00.000Z","size":2187,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-20T17:51:17.908Z","etag":null,"topics":["api-key-management"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baidan4855.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-05T04:43:41.000Z","updated_at":"2026-02-14T12:36:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/baidan4855/keepyer","commit_stats":null,"previous_names":["baidan4855/keepyer"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/baidan4855/keepyer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidan4855%2Fkeepyer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidan4855%2Fkeepyer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidan4855%2Fkeepyer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidan4855%2Fkeepyer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baidan4855","download_url":"https://codeload.github.com/baidan4855/keepyer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidan4855%2Fkeepyer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30001652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T11:09:27.951Z","status":"ssl_error","status_checked_at":"2026-03-02T11:08:53.255Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-key-management"],"created_at":"2026-03-02T12:00:42.454Z","updated_at":"2026-03-02T12:01:02.164Z","avatar_url":"https://github.com/baidan4855.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Keeyper\n\nA cross-platform LLM API key manager — a clean, lightweight desktop app for managing API keys from different AI providers.\n\n\u003e 中文说明请见 `README.zh-CN.md`。\n\n## Features\n\n- **Provider management**: Add, edit, and delete AI providers (e.g. OpenAI, Anthropic)\n- **Key management**: Add multiple API keys per provider\n- **Expiry tracking**: Set expiration dates and automatically mark expired keys\n- **Quick copy**: One-click copy provider base URL and API keys\n- **Model search**: Search models by name or ID in the model list\n- **Model testing**: Test individual models to verify availability (supports OpenAI \u0026 Claude protocols)\n- **Local storage**: All data stays on device, nothing is uploaded\n- **Cross-platform**: Windows, macOS, and Linux\n- **Lightweight**: Built with Tauri, around 10MB\n\n## Screenshots\n\nBelow are two key views of the app so you can quickly understand the workflow.\n\n![Main Page](assets/main_page.png)\nThe main dashboard shows providers, keys, and their status at a glance.\n![Model List](assets/model_list.png)\nThe model list helps you review and manage model availability per key/provider.\n\n## Development Setup\n\n### Prerequisites\n\n- Node.js 18+\n- npm\n- Rust 1.88+ (for building Tauri)\n\n#### Install Rust\n\n```bash\n# macOS\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n\n# Windows\n# Download and run https://rustup.rs/\n\n# Linux\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\n### Install Dependencies\n\n```bash\nnpm install\n```\n\n### Development Mode\n\n```bash\n# Start Tauri dev mode (will also start Vite)\nnpm run tauri:dev\n```\n\n### Build\n\n```bash\n# Build for current platform\nnpm run tauri:build\n\n# Debug build (faster)\nnpm run tauri:build:debug\n```\n\nBuild outputs are generated at `src-tauri/target/release/bundle/`.\n\n### Linux builds\n\nAutomated releases only produce\nmacOS and Windows binaries, so Linux users must build locally if they need a native release.\n\n1. Install the system dependencies listed under `src-tauri/tauri.conf.json` and the workflow (glib, GTK, WebKit2GTK, etc.).\n2. Run `npm ci` followed by `npm run tauri:build`.\n3. Grab the bundle from `src-tauri/target/release/bundle/`.\n\n## Project Structure\n\n```\nsrc/\n  app/                 App entry and layout\n  domains/             Domain modules\n    providers/         Provider management\n    keys/              API Key management\n    settings/          Security and settings\n  shared/              Shared components and utilities\n  i18n/                Localization resources\n  types/               Global type definitions\n```\n\n## Usage\n\n### Add a Provider\n\n1. Click the \"Add Provider\" button in the left sidebar\n2. Enter the provider name (e.g. \"OpenAI\")\n3. Enter the provider base URL (e.g. \"https://api.openai.com\")\n\n### Add an API Key\n\n1. Select a provider\n2. Click the \"Add Key\" button in the top-right corner\n3. Enter the API key (required)\n4. Optional: add a name, note, and expiration date\n\n### Key Status\n\n- 🟢 Green: Key is valid\n- 🟡 Yellow: Key expires soon (within 7 days)\n- 🔴 Red: Key has expired\n\n## Tech Stack\n\n- **Tauri 2.0**: Lightweight cross-platform desktop framework\n- **React**: UI framework\n- **Vite**: Build tool\n- **Tailwind CSS**: Styling\n- **Zustand**: State management\n- **TypeScript**: Type safety\n- **Rust**: Backend logic\n\n## Design Style\n\nThe app uses a Soft UI (New Soft UI) visual style featuring:\n\n- Soft shadows and rounded corners\n- Purple-themed palette\n- Frosted glass effects\n- Smooth transitions\n- Strong accessibility\n\n## Why Tauri?\n\nCompared to Electron, Tauri offers:\n\n- **Smaller size**: ~10MB vs Electron’s 150MB+\n- **Lower memory usage**: Uses the system WebView\n- **Better security**: Rust memory safety\n- **Faster startup**: Lighter runtime\n\n## License\n\nMIT License. See `LICENSE`.\n\n## Contributing\n\nIssues and PRs are welcome. Please read `CONTRIBUTING.md` first.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaidan4855%2Fkeepyer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaidan4855%2Fkeepyer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaidan4855%2Fkeepyer/lists"}