Two panels, independent tabs
Each panel keeps its own tab stack and navigation history. Copy and move across them in one keystroke — that's why the format has survived since Norton Commander in 1986.
Dual-pane file manager · macOS · preview · v1.2.0
Two panels, every file op, under one hand.
A native dual-pane file manager for macOS and Linux, in the tradition of Total Commander and FAR Manager. Tauri 2 + Svelte 5 + Rust. F-key operations, archive walk-in, hex and diff viewers, a plugin system for viewers / columns / actions / virtual panels. MIT-licensed, preview — see what ships vs. what's next before you try it.
Version
1.2.0
Tauri
2
Svelte
5
macOS min.
12+
Why Norton Commander DNA still wins
The dual-pane formula has outlived most of its contemporaries for a reason: source-and-destination is already on the screen. Nyx.Commander keeps that DNA — then adds an archive walker, three viewers, a process explorer, and a plugin surface the rest of nyxCore can grow into.
Each panel keeps its own tab stack and navigation history. Copy and move across them in one keystroke — that's why the format has survived since Norton Commander in 1986.
ZIP, TAR.GZ, TAR.BZ2, TAR.XZ, DOCX, XLSX — press Enter, you're inside. Backspace steps back out. No extraction dialog, no temp directory.
Monospace text for code and configs. Hex with ASCII pane, offset, and byte inspector. Side-by-side diff for any two files under the cursor.
Cmd+= mirrors the active panel's path to the other. Press d to compare two folders and copy the differences in one click. The workflow the format was built for.
Viewer, Column, Action, Panel. Drop a .nyx-plugin into ~/.nyx/plugins/ and it appears live — no restart. Image viewer, Markdown renderer, Git-status column ship built-in.
Neon, Classic, Matrix, Amber. Plus a custom theme editor and glob-pattern file colorization. Pixel-art icons are a taste, not a gimmick — see the honest-positioning note below.
The F-row is the UI
Harmonia picked the bindings: navigation stays on the arrow cluster, file ops stay on the F-row (F5 copy, F6 move — the tradition runs back decades), tools land on Cmd-letter chords the way the rest of macOS does. Every binding is rebindable; Tab never does anything other than switch panels.
Navigation
| Tab | Switch active panel |
| ↑ ↓ PgUp PgDn | Move cursor |
| Enter | Enter dir · open file · browse archive |
| Backspace | Go to parent |
| Alt + ← / → | History back / forward |
| Cmd + G | Go to path — fuzzy autocomplete |
| Cmd + = | Mirror path to the other panel |
File operations — the F-row
| F2 | Rename |
| F3 | Process explorer |
| F4 | Open with system app |
| F5 | Copy to other panel |
| F6 | Move to other panel |
| F7 | New directory |
| F8 | Delete |
| F9 | Cycle theme |
Tools
| Cmd + Q | Toggle Quick View pane |
| Ctrl + ` | Toggle command bar |
| Cmd + F | Find files |
| Cmd + H | Hex viewer |
| Cmd + M | Multi-rename selection |
| Shift + D | Diff the two files under cursor |
| d | Directory sync — compare two panels |
| F1 | Built-in help |
Type any printable character in a panel to start a quick filter. Help (F1) is in-app, full-text searchable. Accessibility floor: focus-visible outlines on every interactive element, no keyboard-trap, menu always reachable via Escape.
Metis's column
Our product roster calls Nyx.Commander a 'keyboard-first control plane for the nyxCore stack.' The repo, today, is a dual-pane file manager. Both are true — one is the release, the other is the roadmap. Metis keeps the column so nobody has to reverse-engineer it from the tagline.
Released
Roadmap
No Electron, no web server
Excerpt from src-tauri/tauri.conf.json — the actual config that ships in v1.2.0. The frontend builds statically and is embedded; no localhost server runs at launch, no browser window impersonates an app.
// src-tauri/tauri.conf.json — excerpt { // Product identity — stable across channels "productName": "Nyx.Commander", "version": "1.2.0", "identifier": "com.nyx.commander", // SvelteKit built static → embedded in the app "build": { "beforeDevCommand": "pnpm dev", "devUrl": "http://localhost:1420", "beforeBuildCommand": "pnpm build", "frontendDist": "../build" }, // Window chrome — 900×600 default, 640×480 floor "app": { "windows": [{ "title": "Nyx.Commander", "width": 900, "height": 600, "minWidth": 640, "minHeight": 480, "resizable": true, "decorations": true }] }, // Bundle all targets — .app, .dmg, .deb, .AppImage "bundle": { "active": true, "targets": "all" } }
Plugins live at ~/.nyx/plugins/ — four categories (viewer · column · action · panel), JSON-RPC over stdin/stdout, hot-reloaded on change. See the plugin authoring guide.
The adversary's disclosure
Ipcha Mistabra wrote this section. The preview is real and usable; the marketing future is not the present. Here are the three gaps we will not let a screenshot hide.
Disclosure
The products-list tagline — 'keyboard-first control plane for the nyxCore stack' — describes the next milestone, not v1.2.0. What ships today is a native dual-pane file manager. The plugin system is the seam the control plane will land in; it exists, it works, but the tRPC / SwarmWire / persona panels are roadmap, not release.
Disclosure
The Tauri 2 backend compiles cleanly on macOS 12+ and most Linuxes, but only macOS is actively tested. Window chrome, keybindings, and icon rendering are tuned for macOS. Linux is a courtesy build, not a platform promise. Windows is out of scope for the preview.
Disclosure
The UI leans on pixel-art icons and a crisp dark palette. That's an aesthetic choice — it won't make you faster at your job. If you need platform-native HIG look-and-feel, Nyx.Commander is the wrong tool. If you want a keyboard-first pane pair that stays out of your way, the taste is the point.
Not in the App Store, not a public DMG
There is no public installer yet. The binary is signed and notarized for macOS but distributed to named testers so we can turn the telemetry around into fixes in days, not weeks. Tell us which machine you run and what you'd try first.
Use the contact form on the main nyxCore landing page. Mention Nyx.Commander, your macOS version, and one workflow you want to try. We turn around within a business day.
Contact formRust stable · Node 18+ · pnpm. Clone the repo, pnpm install, then pnpm tauri build. A signed bundle lands in target/release/bundle/.
Build instructionsCHANGELOG.md on the repo tracks every release. The user docs — navigation, file ops, archives, plugins — are the same pages F1 opens inside the app.
User docsMIT-licensed · macOS universal build · Linux best-effort · Windows out of scope for the preview.
Before you rebind half the F-row
The defaults are the defaults for a reason — F5 copies, F6 moves, the muscle memory is thirty years deep. Use the app with the factory bindings for a week before you start editing them. If you rebind immediately you ship your old tool’s habits into a different program and then blame the program.
Harmonia says: calibrate the body, then the bindings.