Project Structure - ahzs645/WhisperDesk GitHub Wiki
This document outlines the directory structure of the WhisperDesk Enhanced project.
WhisperDesk/
├── src/
│ ├── main/ # Electron main process
│ │ ├── services/
│ │ │ ├── binary-manager.js # Manages whisper.cpp binaries
│ │ │ ├── transcription-service-native.js # Native transcription service
│ │ │ └── providers/
│ │ │ └── native-whisper-provider.js # Native whisper provider
│ │ └── main.js # Main process entry point
│ └── renderer/ # React frontend (Vite + React + ShadCN UI)
│ └── whisperdesk-ui/
│ ├── src/App.jsx # Main application component (example)
│ └── components/
│ ├── TranscriptionTab-Electron.jsx # Electron transcription interface (example)
│ └── ModelMarketplace-WebCompatible.jsx # Model management (example)
├── binaries/
│ └── whisper-cli # Pre-compiled whisper.cpp binary (platform-specific)
├── scripts/
│ ├── build-whisper.sh # (Unix) Script to build whisper.cpp from source
│ ├── compile-whisper-windows.ps1 # (Windows) PowerShell script to compile whisper.cpp
│ ├── build-whisper-cross-platform.js # Node.js script for cross-platform whisper.cpp builds
│ ├── download-models.js # Script to download whisper models
│ ├── setup.sh # Automated setup script for Linux/macOS
│ └── setup.ps1 # Automated setup script for Windows (PowerShell)
│ └── diagnose-whisper-windows.ps1 # Windows diagnostic script for whisper.cpp issues
├── resources/ # Icons, installer assets, etc.
├── test-native-services.js # Script for testing native services
├── test-transcription.js # Script for testing transcription functionality
├── transcription-server.js # API server for the web interface
├── package.json # Project dependencies and scripts
├── README.md # This file
└── .github/ # GitHub specific files (workflows, issue templates)
Key Directories:
src/main
: Contains the code for the Electron main process. This includes services for managing binaries, handling transcriptions natively, and other core backend functionalities.src/renderer/whisperdesk-ui
: Houses the frontend application built with Vite, React, and likely UI components from a library like ShadCN UI. This is what users interact with.binaries
: Stores pre-compiled versions of thewhisper-cli
tool for different platforms if they are not built from source during setup.scripts
: A collection of utility scripts for building the application, compiling native components (like whisper.cpp), downloading models, and setting up the development environment.resources
: Contains static assets used by the application, such as icons, images for installers (like DMG backgrounds), and platform-specific resource files..github
: Holds GitHub-specific configurations, primarily for CI/CD workflows (e.g.,main.yml
for automated builds and releases).docs
: (This directory, if you are reading this from the file system) Contains additional documentation files.
This structure aims to separate concerns: main process logic, UI rendering, build/utility scripts, and native binaries, making the project easier to navigate and maintain.