TCDir ("Technicolor Directory") is a fast, colorized directory listing tool for Windows consoles.
It’s designed as a practical dir-style command with useful defaults (color by extension/attributes, sorting, recursion, wide output, and a multi-threaded enumerator).
Hat tip to Chris Kirmse whose excellent ZDir from the '90s was the original inspiration for TCDir.
- Windows 10/11
- PowerShell 7 (
pwsh) to run the build/test scripts - Visual Studio 2026 (v18.x)
- The free Community edition is fine, but any edition will work
- Workload: Desktop development with C++
- Individual components (usually included with the workload, but worth confirming):
- MSVC v14x x64/x86 build tools
- Windows 10/11 SDK
- C++ unit test framework (to build/run the
UnitTestproject) - Optional (ARM64 builds/tests): MSVC v14x ARM64 build tools
- The scripts use
vswhere.exeto locate MSBuild and the test runner
- Optional: VS Code (the repo includes
.vscode/tasks wired up toscripts/Build.ps1andscripts/RunTests.ps1)
Build:
- Visual Studio: open
TCDir.slnand Build Solution - VS Code: run a build task (e.g. Build Release x64 (no test))
- Command line:
pwsh -NoProfile -ExecutionPolicy Bypass -File .\scripts\Build.ps1 -Configuration Release -Platform x64 -Target Build
Run:
.\x64\Release\TCDir.exe
Show help:
TCDir.exe /?
Basic syntax:
TCDIR [drive:][path][filename] [/A[[:]attributes]] [/O[[:]sortorder]] [/S] [/W] [/P] [/M] [/Env] [/Config]
Common switches:
/A[:]<attributes>: filter by file attributes/O[:]<sortorder>: sort results- both
/oeand/o:eforms are supported Nname,Eextension,Ssize,Ddate/time- prefix
-to reverse
- both
/S: recurse into subdirectories/W: wide listing format/P: show performance timing information/M: enable multi-threaded enumeration (default); use/M-to disable/Env: showTCDIRenvironment variable help/syntax/current value/Config: show current color configuration
Examples:
- List a folder:
TCDir.exe C:\src - Recurse and sort by extension:
TCDir.exe C:\src /s /o:e - Wide listing:
TCDir.exe /w
TCDir supports customizing colors (and default switch behavior) via the TCDIR environment variable.
Syntax:
- CMD:
set TCDIR=[ -<Switch> | /<Switch>] | [<Item> | Attr:<fileattr> | <.ext>] = <Fore> [on <Back>][;...] - PowerShell:
$env:TCDIR = "[ -<Switch> | /<Switch>] | [<Item> | Attr:<fileattr> | <.ext>] = <Fore> [on <Back>][;...]"
Example:
- CMD:
set TCDIR=-W;D=LightGreen;S=Yellow;Attr:H=DarkGrey;.cpp=White on Blue - PowerShell:
$env:TCDIR = "-W;D=LightGreen;S=Yellow;Attr:H=DarkGrey;.cpp=White on Blue"
Decoded breakdown of the example:
-Wsets the default switch/W(wide listing) onD=LightGreensets the Date display item color to LightGreenS=Yellowsets the Size display item color to YellowAttr:H=DarkGreysets the Hidden file attribute color to DarkGrey.cpp=White on Bluesets the.cppextension color to White text on a Blue background
To see the full list of supported colors and a nicely formatted explanation, run:
TCDir.exe /Env
To see your current color configuration:
TCDir.exe /Config
- Visual Studio: open
TCDir.slnand Build Solution - VS Code: the repo includes
.vscode/(tasks/launch/settings), with tasks wired up toscripts/Build.ps1andscripts/RunTests.ps1 - Command line: use the PowerShell build scripts below
- Build:
pwsh -File .\scripts\Build.ps1 -Configuration <Debug|Release> -Platform <x64|ARM64> -Target Build - Clean:
pwsh -File .\scripts\Build.ps1 -Configuration <Debug|Release> -Platform <x64|ARM64> -Target Clean - Rebuild:
pwsh -File .\scripts\Build.ps1 -Configuration <Debug|Release> -Platform <x64|ARM64> -Target Rebuild - Build both Release targets:
pwsh -File .\scripts\Build.ps1 -Target BuildAllRelease
Build outputs land under:
x64\Debug\TCDir.exe,x64\Release\TCDir.exeARM64\Debug\TCDir.exe,ARM64\Release\TCDir.exe
Run unit tests:
pwsh -File .\scripts\RunTests.ps1
(Uses Visual Studio’s vstest.console.exe, discovered via vswhere.)
The build number is auto-incremented by a pre-build script. Details are in BUILD_VERSION.md.
MIT License. See LICENSE.






