zeta config.toml ~ / projects ◉ zeta v0.5.12

// terminal file manager

[Z]eta

Norton Commander reimagined. Rust core. Zero bloat.

Rust MIT License Linux & Windows < 10 MB zero runtime deps ~30 MB RAM idle

A dual-pane terminal file manager with an embedded editor, integrated terminal, SSH/SFTP, git awareness, archive browsing, workspaces, themes, and a command palette — all running in your terminal on a Rust core.

$ cargo install --git https://github.com/tzero86/Zeta

Work in progress — issues and feedback welcome.

scroll ↓
NEW
〈±〉

Git Diff Viewer

View all changed files and their diffs without leaving the terminal. Side-by-side coloured hunks with a line-number gutter, full keyboard navigation, and mouse scroll support.

NEW

View → Themes Flyout

Switch themes live from a nested flyout submenu under View — no config file editing, no restart. Navigate with arrow keys and preview themes without leaving the keyboard.

NEW
🖴

Norton Commander Theme

Authentic CGA/DOS palette — dark blue panels (#0000AA), bright cyan borders (#55FFFF), yellow key hints (#FFFF55). The real thing, not a loose approximation.

rust core language
ratatui terminal UI framework
crossterm terminal I/O
ropey editor rope buffer
ssh2 SFTP filesystem
syntect syntax highlighting
toml config format

Dual Pane

Two independent panels side by side. Navigate, compare, and operate across directories without a second terminal window. Navigation history with back/forward stacks.

Embedded Editor

Syntax highlighting, undo/redo, incremental search, text selection, find & replace. Edit files without spawning an external process. Ropey-backed for fast editing of large files.

Integrated Terminal

Full PTY terminal embedded in the layout. Toggle with F2. All keys forwarded as raw escape sequences. Fullscreen mode. Stay in your filesystem context without context-switching.

SSH & SFTP

Browse and operate on remote filesystems over SSH. Password, key file, and SSH agent auth. Host key verification with known-hosts persistence. Full remote file operations.

Markdown Preview

Live rendered preview side-by-side while editing .md files. Headings, code blocks, lists, blockquotes — updated on every keystroke, zero latency.

4 Workspaces

Four isolated desktops each with independent pane state, editor, preview, and terminal. Switch with Alt+1–4. Workspace state persists across sessions.

Diff Mode

Highlight unique and changed entries between panes at a glance. Sync to the other pane with a single keystroke. Colour-coded: green (new), red (removed), yellow (changed).

Git Integration

Branch and dirty-state indicator in the pane header. Per-entry change markers — modified, added, untracked at a glance. Built-in diff viewer with side-by-side colour-coded hunks.

Full Mouse Support

Click to focus panes, scroll to navigate, select entries, resize panels. Right-click for context menu. Mouse-friendly while keeping keyboard-first UX.

Archive Browsing

Enter ZIP, tar.gz, tar.bz2, and tar.xz archives to browse contents as a virtual filesystem. Extract single files for in-place preview. Navigate nested archives like directories.

Flyout Menu Bar

Nested flyout submenus in the menu bar — hover or arrow-key into a submenu without losing focus. Theme switching, file ops, and navigation all accessible via Alt+letter.

File Operations

Copy (F5), move (Shift+F6), rename (F6), delete (F8) with progress tracking, trash support, collision dialog, and batch operations on marked files. Resume on failure.

Customizable

10 built-in themes (Zeta, Norton, Dracula, Catppuccin, Matrix, Neon, & more), keymap rebinding, 3 icon modes (Unicode, ASCII, Nerd Font), and a simple TOML config file.

Quick Filter & Finder

Type / to filter entries by glob pattern. Ctrl+P opens a recursive fuzzy file finder that searches the entire directory tree. Instant, no indexing needed.

Command Palette

Shift+P opens a fuzzy-matched command palette with 40+ actions. Navigation, file ops, editor, view, settings — every action discoverable and a keystroke away.

Self-Update

Automatic update checks on startup (configurable). One-keystroke install on quit when a new version is available. Pins to tagged releases for reproducible builds.

Session Persistence

Pane state, CWDs, sort modes, history, and workspace layout saved to session.toml. Pick up exactly where you left off. Non-fatal fallback on read errors.

File Watcher

Filesystem events auto-refresh pane contents when directories change. Config file changes trigger live reload of settings. No manual refresh needed.

~25k
lines of rust
40+
actions & commands
10
built-in themes
<10 MB
release binary
~30 MB
ram at idle
519
passing tests

global

F1 / ? Help / Context-aware cheatsheet
F10 / Ctrl+Q Quit Zeta
Shift+P Command palette
Ctrl+O Open settings panel
Ctrl+W Cycle focus between panes / panels
F12 Toggle debug panel

navigation

↑ ↓ / j k Move selection up / down
Enter / → / l Enter directory / open file
Backspace / ← / h Go to parent directory
Alt+← / Alt+→ Back / forward in history
Alt+G / Ctrl+G Go to path prompt
PgUp / PgDn Page up / down in file list
Home / End Jump to first / last entry
. Toggle hidden files
Ctrl+P Recursive fuzzy file finder
/ Quick-filter entries by glob

file operations

F5 Copy selected to opposite pane
Shift+F6 Move selected to opposite pane
F6 / r Rename entry
Ctrl+R Bulk rename all marked files
F7 New directory prompt
Insert New file prompt
F8 Move to trash
Shift+F8 Delete permanently
o Open with OS default application
Alt+O Open With menu
Alt+L Follow symlink target
Ctrl+Shift+C Copy selected path to clipboard

selection & marking

Space Toggle mark on current entry
Ctrl+A Mark all entries
Shift+M Clear all marks
Shift+↑ / Shift+↓ Extend selection up / down

view & panels

F2 / Ctrl+\ Toggle integrated terminal
F3 Toggle preview panel
Alt+F3 / Alt+P Focus preview panel
F4 Open selected file in editor
F9 Toggle diff mode
Ctrl+L Toggle details / compact view
s / S Cycle sort mode
+ / _ Grow / shrink left pane
Shift+← / Shift+→ Shrink / grow left pane width
Alt+1–4 Switch workspace instantly
F11 Toggle editor fullscreen

editor

Ctrl+S Save file
Esc / F4 Close editor
Ctrl+F Find in file
F3 / Shift+F3 Next / previous search match
Ctrl+H Find & replace
Ctrl+Shift+H Replace all
Ctrl+Z Undo
Ctrl+Y / Ctrl+Shift+Z Redo
Ctrl+M Toggle markdown preview
Ctrl+X / Ctrl+C / Ctrl+V Cut / Copy / Paste

bookmarks & git

Ctrl+B Add bookmark for current directory
Ctrl+Shift+B Open bookmarks modal
Ctrl+D Toggle git diff viewer

rustup

Rust toolchain manager. Installs the stable compiler and cargo.

rustup.rs ↗

git

Required for cargo install --git. Most systems already have it.

git-scm.com ↗

C toolchain

Linux: build-essential pkg-config libssl-dev libbz2-dev liblzma-dev. Windows: VS Build Tools with "Desktop development with C++".

VS Build Tools ↗

Windows 10 1809+

The embedded terminal uses the ConPTY API introduced in Windows 10 version 1809. Earlier Windows versions are not supported. (Windows only)

Precompiled binaries skip native build steps entirely — grab one from the releases page to avoid the C toolchain requirement.

Zeta started as an excuse. Testing a new generation of AI coding tools calls for a real project — something with actual architecture decisions, non-trivial state, and things that could genuinely go wrong. Toy examples tell you nothing.

The idea came from memory. If you used a PC in the late 80s or early 90s, you probably know Norton Commander. Two panes, function keys, everything a keystroke away. That mental model never really leaves you.

So the goal became building something in that spirit — keyboard-first, fast, dual-pane — but brought forward: embedded editor, integrated terminal, SSH support, multiple workspaces, all on a Rust core with a proper TUI.

Zeta is what came out of that. Part experiment, part nostalgia project, part something that turned out to be genuinely useful.

If Zeta saves you time or sparks something, consider buying me a coffee — it keeps the project moving.