A modern, cross-platform file manager built with Wails — combining a Go backend with a React + TypeScript frontend for a fast, native desktop experience.
- File & Folder Navigation — Browse your filesystem with a familiar explorer-style interface, including breadcrumb path navigation and history (back/forward).
- File Operations — Copy, move, delete, rename, and create files and folders with concurrent processing for maximum speed.
- Drag & Drop — Move and copy items naturally using drag-and-drop.
- Search & Filter — Quickly find files and folders within the current directory.
- Quick Access Sidebar — One-click access to Desktop, Documents, Downloads, Pictures, Music, Videos, and Home.
- Drive List — View and navigate to all available drives and mount points.
- File Properties — Inspect detailed metadata including size, permissions, modification date, and item counts for folders.
- Open in Terminal — Launch a terminal session directly at any directory.
- Open with Default App — Double-click any file to open it with the system default application.
- Context Menus — Right-click for quick actions on files and folders.
- Inline Renaming — Press F2 to rename items in place.
- Hidden Files — Platform-aware hidden file detection and toggle visibility.
- Sorting — Sort by name, size, extension, or modification date.
- Dark Theme — Sleek dark interface designed for comfortable extended use.
- OneDrive Support — Automatic detection and resolution of OneDrive-redirected special folders.
- Cross-Platform — Runs natively on Windows, macOS, and Linux.
| Shortcut | Action |
|---|---|
Ctrl+C |
Copy selected items |
Ctrl+X |
Cut selected items |
Ctrl+V |
Paste items |
F2 |
Rename selected item |
F5 |
Refresh current directory |
Delete |
Delete selected items |
Backspace |
Navigate to parent directory |
Alt+Left |
Go back |
Alt+Right |
Go forward |
- Go 1.23
- Wails v2 — bridges Go and the web frontend into a single native binary
- React 18 with TypeScript
- Vite — lightning-fast development and bundling
- Tailwind CSS — utility-first styling
- Radix UI — accessible, unstyled component primitives (context menus, dialogs, tooltips)
- Lucide React — icon library
Before building NaviX, make sure you have the following installed:
- Go 1.23+
- Node.js 18+ (with npm)
- Wails CLI v2
To install the Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latestVerify installation:
wails doctorgit clone https://github.com/qviperh/NaviX.git
cd NaviXRun the application in live development mode with hot reload:
wails devThis starts a Vite dev server for the frontend with hot module replacement. Changes to Go code will trigger a rebuild automatically.
Create a production-ready, distributable binary:
wails buildThe compiled binary will be available in the build/bin/ directory.
NaviX/
├── main.go # Application entry point & Wails configuration
├── app.go # Core application logic (file operations, navigation)
├── fileops.go # File copy/move utilities with concurrency
├── platform_windows.go # Windows-specific: drive detection, hidden files
├── platform_unix.go # Unix/macOS/Linux-specific implementations
├── go.mod # Go module dependencies
├── wails.json # Wails project configuration
├── assets/ # Static assets (screenshots, etc.)
├── build/ # Build configuration
│ ├── windows/ # Windows manifest & installer config
│ └── darwin/ # macOS plist configuration
└── frontend/ # React + TypeScript frontend
├── src/
│ ├── main.tsx # React entry point
│ ├── App.tsx # Root application component
│ ├── index.css # Global styles (Tailwind)
│ ├── types/ # TypeScript type definitions
│ ├── context/ # React context for global state management
│ ├── components/ # UI components
│ │ ├── NavBar.tsx # Navigation bar (path, back/forward, search)
│ │ ├── SideBar.tsx # Quick Access & Drives sidebar
│ │ ├── Content.tsx # Main file listing view
│ │ ├── Footer.tsx # Status bar
│ │ └── PropertiesDialog.tsx # File properties modal
│ └── lib/
│ └── utils.ts # Utility helpers (formatting, classnames)
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript configuration
├── vite.config.ts # Vite build configuration
└── tailwind.config.js # Tailwind CSS configuration
NaviX follows a clean separation between the Go backend and the React frontend, connected seamlessly through Wails' binding system:
- Go Backend — Handles all filesystem interactions (reading directories, copying, moving, deleting), platform-specific operations, and process management. File operations are performed concurrently using goroutine worker pools sized to the number of available CPU cores.
- React Frontend — Manages the entire UI, user interactions, and state through React Context. Components communicate with Go through auto-generated TypeScript bindings provided by Wails.
- Platform Abstraction — Build-tagged Go files (
platform_windows.go,platform_unix.go) provide OS-specific behavior for drive detection and hidden file handling without conditional runtime logic.
This project is open source. See the repository for license details.
qviperh — qviperh.dev@proton.me
