Skip to content

thrashr888/QDOS

Repository files navigation

R-DOS

A retro DOS-style file manager for the terminal, written in Rust.

R-DOS is inspired by the classic Q-DOS file manager, reimagined as a modern Terminal User Interface (TUI) using the ratatui library. It aims for a 1:1 recreation of the original Q-DOS file manager, with a few modern enhancements and a plugin system.

The real Q-DOS II

I loved Q-DOS so here it is as a terminal app (TUI). Watch the original in action: Q-DOS II Demo on YouTube

Since it's somewhat tough to find, I'm rehosting Q-DOS II for DOSBox.

Q-DOS II is Copyright (c) 1991 Gazelle Systems.

Features

  • Retro DOS Aesthetic: Black background with cyan, green, red, and yellow colors reminiscent of classic DOS file managers
  • Directory Navigation: Browse directories with arrow keys, Enter to open, F4 for parent directory
  • File Listing: View files with name, git status, kind, size, date, and time columns
  • File Tagging: Mark files with Space key for batch operations
  • Sorting: 9 different sort modes (F8 to cycle) - by name, extension, size, or date (ascending/descending)
  • File Viewing: View the contents of any file on the screen (in "ASCII", "HEX", "MARKDOWN", or "IMAGE")
  • Syntax Highlighting: Highlight the contents of any file in the viewer
  • Keyboard-First Interface: All actions accessible via keyboard shortcuts
  • Modal Dialogs: Help (F1), Status (F2), Disk Space (Space menu), and more
  • Cross-Platform: Works on macOS and Linux

Apps (F12)

R-DOS features a modular plugin system accessible via the F12 Apps launcher. Built-in apps include:

File Management

Key App Description
E Editor Built-in text editor
V Viewer File content viewer
D Dir Map Directory tree view
N Drives Browse mounted volumes
O File Ops Copy, move, delete files
R Print Print file contents
W Search Spec File filter pattern
U Disk Space Disk usage analyzer

Cloud Storage

Key App Description
D Dropbox Browse Dropbox with sync status
O Google Drive Browse Google Drive
I iCloud Drive Browse iCloud with cloud-only file support
F SFTP Browse remote SFTP servers

Version Control

Key App Description
G Git Git version control
J Jujutsu Jujutsu VCS
B Beads Issue tracker

AI & Productivity

Key App Description
? Q-MIND AI intelligence layer with file summaries and natural language commands
A AI Agents Monitor AI coding tools (Claude, Cursor, Copilot)
K Q-TASK TaskPaper file editor for task management
L Q-LINK Browse virtual filesystems via MCP servers

Infrastructure & DevOps

Key App Description
o Docker Container, image, volume, and network management
t Terraform Infrastructure as code with plan/apply workflow
R Redis Key-value browser with connection profiles
y Dependencies Multi-language package manager (Cargo, npm, pip, Go)

Tools

Key App Description
D Database SQLite, PostgreSQL, MySQL browser
Y Homebrew Browse Homebrew packages
S Shell Interactive shell
3 3D Model View 3D model files

System

Key App Description
H Help Help and documentation
P Processes System process monitor
C Config RDOS configuration
X Status Status bar plugin
T Theme Color theme settings

Media

Key App Description
M Audio Play audio & MIDI files
Z Video Play video files
I BASIC Run BASIC programs

Games

Key App Description
G Games Play retro games
X Emulator Run DOS programs in DOSBox-X

Games includes the following games:

  • Tetris
  • Snake
  • Breakout
  • Rogue
  • Trek
  • Clicker
  • Brainiac
  • Storyweaver
  • Dope Wars
  • Minesweeper
  • Artillery

See spec/PLUGIN.md for plugin development documentation.

Installation

Homebrew (macOS)

brew install thrashr888/qdos/rdos

From Source

# Clone the repository
git clone https://github.com/thrashr888/QDOS.git
cd QDOS

# Build and run
cargo run

# Or build release version
cargo build --release
./target/release/rdos

Pre-built Binaries

Download from GitHub Releases for:

  • Linux (x86_64, aarch64)
  • macOS (Intel, Apple Silicon)
  • Windows (x86_64)

Usage

# Start in current directory
rdos

# Start in specific directory
rdos /path/to/directory

Keyboard Shortcuts

Key Action
↑/↓ or j/k Move selection
←/→ or h/l Navigate menu
Enter Open directory / Execute action
Space Tag/untag file
PgUp/PgDn Scroll page
Home/End Jump to start/end
F1 Help
F2 System Status
F4 Parent Directory
F5 Change Directory
F7 Search Specification
F8 Cycle Sort Mode
F10 or q Quit
Esc Close dialog
Ctrl+C Force quit

Navigation Menu

  • Directory: Change current directory, make or remove directory, see directory tree
  • Tag: Tag groups of files, or clear all tags (SPACE BAR tags highlighted file)
  • View: View the contents of any file on the screen (planned)
  • Copy: Copy one or several files to another disk or directory
  • Move: Move one or several files from this directory to another directory
  • Find: Search all directories on the disk to find specified file(s) (planned)
  • Erase: Erase one or several files from this directory
  • Rename: Rename one or several files in this directory
  • Git: View Git status, log, diff, and commit history
  • Beads: View and manage Beads issues and comments
  • Space: Show the total, used, and free space on any disk
  • Attribute: Change/view file attributes (planned)
  • Print: Print one or several files on the printer (planned)

Screenshots

R-DOS File Manager Screenshot

R-DOS Code Viewer Screenshot

R-DOS Git Log Screenshot

R-DOS Beads Issue Screenshot

Dependencies

Releasing

  1. Update version in Cargo.toml

  2. Commit and push changes

  3. Create and push a tag:

    git tag -a v0.x.x -m "v0.x.x - Release notes"
    git push origin v0.x.x
  4. GitHub Actions builds binaries and creates the release

  5. Update Homebrew tap (homebrew-qdos):

    # Get new SHA256 hashes
    curl -sL https://github.com/thrashr888/QDOS/releases/download/v0.x.x/rdos-macos-aarch64 | shasum -a 256
    curl -sL https://github.com/thrashr888/QDOS/releases/download/v0.x.x/rdos-macos-x86_64 | shasum -a 256
    
    # Update Formula/rdos.rb with new version and hashes, then push

MIT License

Copyright 2015-2026 Paul Thrasher

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

A cli-based QDOS clone re-written in rust

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages