LLM Desk is a powerful, cross-platform desktop application for managing your LLM providers, models, and API keys locally. built with Go (Wails) and React.
- Unified Provider Management: Manage OpenAI, Anthropic, and custom OpenAI-compatible providers in one place.
- API Key Security: Securely store and manage multiple API keys per provider.
- Model Catalog: Detailed view of models with context window sizes, pricing (input/output), and capabilities.
- Performance & Privacy:
- Local Storage: All data is stored locally on your machine (
%APPDATA%/LLMDesk). - No Tracking: No telemetry or external data collection.
- Local Storage: All data is stored locally on your machine (
- Production Ready:
- Robust Error Handling: Graceful failures with user-friendly toast notifications.
- Logging: Structured file-based logging for troubleshooting.
- Import/Export: Easy backup and migration of your configuration.
- Modern UI:
- Sleek Dark Mode interface.
- Built with React 19 and Framer Motion for smooth animations.
Pre-built binaries will be available in the Releases section.
- Windows:
llm-desk-windows-amd64.exe - macOS:
llm-desk-darwin-universal.dmg - Linux:
llm-desk-linux-amd64.AppImage
Prerequisites:
Steps:
-
Clone the repository:
git clone https://github.com/shantoislamdev/LLM-Desk.git cd LLM-Desk -
Install frontend dependencies:
cd frontend npm install cd ..
-
Run in Development Mode (Hot Reload):
wails dev
-
Build for Production:
wails build
The executable will be generated in the
build/bindirectory.
-
Add a Provider:
- Go to the Providers tab.
- Click Add Provider.
- Enter the name (e.g., "OpenAI") and base URL (e.g.,
https://api.openai.com/v1). - Add your API Key.
-
Manage Models:
- Select a provider to view its details.
- Add models manually or fetch them if the provider supports it.
- Configure pricing and context limits.
-
Export/Import:
- Go to Settings.
- Use Export Data to save a JSON backup of your configuration.
- Use Import Data to restore or migrate to a new machine.
We welcome contributions! Please see our CONTRIBUTING.md for details on how to get started.
Project Structure:
app.go: Main backend logic and API bridge.main.go: Application entry point.internal/: Go backend packages (services, storage, models, logger).frontend/: React frontend application.
LLM Desk uses Git tags as the single source of truth for versioning. All version references are automatically synchronized during the build process.
To release a new version:
# Quick release (bump + push)
.\scripts\bump-version.ps1 -Version "1.0.0" -Push
# Or review before pushing
.\scripts\bump-version.ps1 -Version "1.0.0"
git push && git push origin v1.0.0The bump script:
- Updates
wails.jsonandpackage.jsonmetadata - Creates a Git commit and tag
- Optionally pushes to trigger CI/CD
When you push a version tag, GitHub Actions automatically:
- Builds for Windows, macOS, and Linux
- Injects the version into binaries via ldflags
- Creates a GitHub Release with all platform builds
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feat/AmazingFeature) - Commit your Changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the Branch (
git push origin feat/AmazingFeature) - Open a Pull Request
Distributed under the GPL-3.0 License. See LICENSE for more information.
Shanto Islam
- Website: shantoislamdev.web.app
- GitHub: @shantoislamdev
- Email: shantoislamdev@gmail.com