Serco is a modern, high-performance desktop application designed to streamline the process of searching, selecting, and copying files. Originally built to assist photographers with complex file selection workflows, it offers a robust dual-pane interface that makes organizing and transferring files efficient and intuitive.
Built with Wails, Serco combines the raw performance of a Go backend with the reactivity and modern UI of Vue.js 3.
- Dual-Pane Interface:
- Left Pane (Source): Navigate and select files with support for multi-selection.
- Right Pane (Destination): Easily browse and select the target folder for copying.
- Advanced Search:
- Regex Support: Use regular expressions (e.g.,
\.jpg$) to filter files in the source pane. - Multi-File Search: Paste a list of filenames (separated by newlines) to automatically generate a multi-value search query (OR logic).
- Smart Filtering: Exact match filtering for destination folders.
- Regex Support: Use regular expressions (e.g.,
- File Operations:
- Batch Copying: Securely copy multiple files with real-time progress tracking.
- Clipboard Integration: Quickly copy file paths to your clipboard.
- Modern UI/UX:
- Dark Mode: Fully supported dark theme for low-light environments.
- Keyboard Navigation: Efficient history navigation (Back/Forward).
- Responsive Design: Clean, utility-first styling using TailwindCSS.
- Backend: Go (Golang)
- Frontend: Vue.js 3 (TypeScript)
- Styling: TailwindCSS
- Framework: Wails v2
- State Management: Pinia
- Testing: Vitest
Ensure you have the following installed on your system:
To install the Wails CLI globally:
go install github.com/wailsapp/wails/v2/cmd/wails@latestTo start the application in development mode with hot-reloading enabled:
wails devThis will compile the backend and start a local frontend development server.
To create a standalone binary for your operating system:
wails buildThe compiled application will be available in the build/bin directory.
app.go&main.go: Core Go backend logic and Wails application lifecycle.frontend/: Vue.js frontend source code.src/components/: Reusable UI components (FileTree, SplitPane, etc.).src/stores/: Pinia state management (FileSystem logic).src/utils/: Helper functions (Search logic).
wails.json: Project configuration.
This project is open-source and available under the MIT License.
