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.
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.
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.
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.
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.
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.
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.
# 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
| Key | Does |
|---|---|
| F3 / F4 | View / edit, with syntax colouring |
| F5 F6 F7 F8 | Copy, move, make folder, delete (to the recycle bin) |
| Ctrl+T / Ctrl+W | Open / close a tab on the current folder |
| Ctrl+O | Hide the panels and see the user screen |
| Ctrl+R | Reverse search through the command history |
| Shift+Enter | Open the folder in the system file manager, or the file with its program |
| Alt+F1 / Alt+F2 | Change the left / right drive (or click the sort letter) |
| Alt+F7 | Find files by mask and content |
| F1 | Every binding, generated from the same table as the README |
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.