A desktop application for managing CLI Proxy API - a Go-based proxy server that wraps CLI tools (Gemini, Claude, Codex) into an OpenAI-compatible API.
- Server Management: Start/stop the CLI Proxy API sidecar process
- Account Management: OAuth login for multiple AI providers (Gemini, Claude, Codex, Qwen, iFlow)
- Usage Statistics: Monitor API requests, tokens, and errors
- Configuration: Manage server settings, API keys, and proxy configuration
- Cross-platform: Windows, macOS, and Linux support
| Layer | Technology |
|---|---|
| Frontend | Angular 20, Tailwind CSS v4 |
| Backend | Rust (Tauri 2.x) |
| Sidecar | CLI Proxy API (embedded binary) |
| Design | Neobrutalism (2px borders, hard shadows) |
Coming soon
# Clone the repository
git clone https://github.com/khoafullstack/proxy-ui.git
cd proxy-ui
# Install dependencies
npm install
# Run in development mode
npm run tauri dev# Build for production
npm run tauri buildThe built application will be in src-tauri/target/release/.
# Start Angular dev server only
npm run start
# Run Tauri dev mode (Angular + native window)
npm run tauri dev
# Lint TypeScript
npm run lint
# Format Rust code
cd src-tauri && cargo fmt
# Run Rust linter
cd src-tauri && cargo clippyproxy-ui/
├── src/ # Angular frontend
│ ├── app/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components (dashboard, accounts, quotas, settings)
│ │ ├── services/ # Angular services
│ │ └── types/ # TypeScript interfaces
│ └── styles/ # Global styles (Tailwind themes)
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── commands/ # Tauri commands (process, config, api)
│ │ └── models.rs # Data models
│ └── binaries/ # CLI Proxy API sidecar
└── package.json
The app stores configuration in:
- Windows:
%APPDATA%/com.ken.os-app/config.yaml - macOS:
~/Library/Application Support/com.ken.os-app/config.yaml - Linux:
~/.config/com.ken.os-app/config.yaml
Default configuration:
host: 127.0.0.1
port: 8317
debug: false
auth-dir: ~/.cli-proxy-api
request-retry: 3
remote-management:
secret-key: management-keyMIT