An open source, cross-platform dual-pane console file manager for .NET 10 — the orthodox two-panel layout, with a modern terminal underneath.

╔═══════════════ C:\Work\openstus ═══════════════╗╔═══ …\openstus\src\OpenStus\Text\Syntax ═10:06 AM
║n         Name          │         Name          ║║n         Name          │         Name          ║
║..                      │                       ║║..                      │                       ║
║.github                 │                       ║║LineStateCache.cs       │                       ║
║docs                    │                       ║║SyntaxRegistry.cs       │                       ║
║src                     │                       ║║SyntaxRules.cs          │                       ║
║tests                   │                       ║║SyntaxTokenizer.cs      │                       ║
║.editorconfig           │                       ║║                        │                       ║
║.gitignore              │                       ║║                        │                       ║
║CHANGELOG.md            │                       ║║                        │                       ║
║CONTRIBUTING.md         │                       ║║                        │                       ║
║Directory.Build.props   │                       ║║                        │                       ║
║LICENSE                 │                       ║║                        │                       ║
║NOTICE.md               │                       ║║                        │                       ║
║OpenStus.sln            │                       ║║                        │                       ║
║README.md               │                       ║║                        │                       ║
║                        │                       ║║                        │                       ║
║                        │                       ║║                        │                       ║
║                        │                       ║║                        │                       ║
║                        │                       ║║                        │                       ║
║                        │                       ║║                        │                       ║
╟────────────────────────────────────────────────╢╟────────────────────────────────────────────────╢
║.editorconfig             1 120  09/02/26  17:41║║..                           Up  09/02/26  17:41║
╚════ Selected: 2.7 K, files: 2, folders: 0 ═════╝╚═════ Bytes: 22.1 K, files: 4, folders: 0 ══════╝
C:\Work\openstus>dotnet build -c Release                                                            
1Help  2UserMn  3View  4Edit  5Copy  6RenMov  7MkFold  8Delete  9ConfMn  10Quit  11Plugin  12Screen 

Rendered by stus --screenshot: the same cells the terminal receives, through the classic Windows console palette.

What it is

Two panels, tabs, the works

Brief, medium, full, wide and detailed views, nine sort orders, tagging with Ins, Shift+arrows and the grey keys, quick search with Alt+letter, folder history, drive menus, and tabs (Ctrl+T) that remember themselves between sessions.

A command line that behaves like a terminal

Coloured as you type, prefix-filtered history on ↑/↓, a grey ghost suggestion accepted with →, Ctrl+R reverse search, Tab completion that narrows then lists, word-wise editing — and Ctrl+O reveals the real user screen with a transcript of every command run.

Viewer and editor with syntax colouring

C#, JavaScript/TypeScript, JSON, SQL, C/C++, Java, Python, PowerShell, XML/HTML, Markdown, CSV and the shell/config family, with multi-line constructs carried correctly across lines. Encodings and line endings survive the round trip byte for byte.

The classic look and keys

Blue panels, cyan frames, yellow column titles, a function key bar and the keyboard conventions every orthodox file manager has shared since Norton Commander — on Windows Terminal, conhost, or any terminal on Linux and macOS.

Zero dependencies

One assembly on top of the .NET base class library. Everything is drawn with plain VT escape sequences into an in-memory screen buffer, diffed and flushed once per frame, in 16 colours or 24-bit through a palette.

Built to be tested

The whole UI paints into a ScreenBuffer, so a frame can be rendered, asserted on and printed without a console. Over 1 750 tests cover rendering, input, panels, dialogs, the viewer, the editor, file operations and the shell.

Get it running

# needs the .NET 10 SDK
git clone https://github.com/Saixus/OpenStus.git
cd OpenStus
dotnet run --project src/OpenStus

# or publish a single-file stus executable
dotnet publish src/OpenStus/OpenStus.csproj -c Release -r win-x64
KeyDoes
F3 / F4View / edit, with syntax colouring
F5 F6 F7 F8Copy, move, make folder, delete (to the recycle bin)
Ctrl+T / Ctrl+WOpen / close a tab on the current folder
Ctrl+OHide the panels and see the user screen
Ctrl+RReverse search through the command history
Shift+EnterOpen the folder in the system file manager, or the file with its program
Alt+F1 / Alt+F2Change the left / right drive (or click the sort letter)
Alt+F7Find files by mask and content
F1Every binding, generated from the same table as the README

About the name

The project is named after Vasyl Stus (1938-1985), the Ukrainian poet, translator and literary critic who became one of the leading voices of the Ukrainian dissident movement. The Soviet regime banned his work; he was arrested in 1972 and again in 1980, spent thirteen years in camps and exile for his convictions, and died in 1985 in Perm-36, the forced labour camp for political prisoners. He was reburied in Kyiv in 1989 and named a Hero of Ukraine in 2005. The name is a tribute and nothing more: the project has no connection with his family or estate.