This is my list of software that I find essential if I'm using a Windows machine. When I setup a new
computer, these are the programs I install. There are certain tasks that I don't even bother with on a Windows box, so
this list does not include everything I want to do with a
computer, just those tasks I usually want to do in a Windows desktop/laptop. I maintain this list for my own convenience so I can quickly remind myself of (and find) all of the software I use.
All of these programs are free, and most are open-source as well. In some cases I have listed alternatives, honorable mentions, or close seconds. Having said that, I try not to have redundant programs unless they bring something to the party.
I would love to get
feedback if I'm missing a really great program that would enhance my quality of
life and make me wonder how I ever lived without it.
Network and Internet
Google Chrome: Fast and secure browser that bumped Firefox from being my
default browser many years ago.
Remote Desktop Access
UltraVNC: Remote desktop control. There are lots of VNC options out there, but
this does the job for me.
Remote Shell Access
PuTTY: Awesome ssh/telnet/rlogin client. There is nothing else even close.
- SuperPutty: Multi-tabbed PuTTY enhancement to bring dockable tabs to PuTTY.
Graphical File Transfer
WinSCP: Great ftp/sftp/scp client.
My old favorite is
Filezilla, but they started shipping the installer with "bundled offers", and I haven't looked back.
Chat and Instant Messaging
Pidgin: Chat client for every protocol that matters. Checkout the Plugins page to get extras like a Facebook chat support.
HexChat: Good IRC client based on the old Xchat program. While IRC isn't as
popular as it once was back in the day, there are still some good technical communities where you can ask questions.
qBittorrent: Lightweight, yet powerful, BitTorrent client.
- I used to like
but the ads were tedious to disable, and qBittorent did the job just as well for me.
copssh: SSH server that is really easy to install. This is just an installer
that bundles OpenSSH, OpenSSL, and a very minimal Cygwin shell environment. If you want a full blown Unix-like environment,
you would want to go the full Cygwin route, but if you just want to ssh into your machine to modify a couple files
remotely, or create a proxy tunnel, or transfer files via SFTP, then this is the perfect solution.
Wireshark: Network protocol analyzer. For those of you keeping track, this used to be called Ethereal.
Document and Text
Adobe Reader: The original and still probably the
best PDF viewer. Unfortunately, it is the most bloated as well.
- A great lightweight alternative is
Foxit Reader. It opens unbelievably fast compared to
Adobe Reader, and it works from a flash drive since there is no install. For me, Adobe Reader still wins because of its
superior searching capabilities.
Calibre: All-in-one ebook manager. Whatever you need to do to/with an ebook, this will do it. It organizes, converts,
downloads covers, etc.. I can't imagine managing my ebooks without it.
Cool Reader: Nice standalone ereader that handles the popular
formats like mobi and ePub,. The main advantage it has over Calibre's built-in reader is the customization
Pandoc: Convert markup formats to other other formats. Handles Markdown, html, EPUB,
Asciidoc: Markup language for creating formatted documents. Lighter than LaTeX, but
more powerful than Markdown.
MiKTeX: A port of the
LaTeX document publishing system. Output can be PDF, HTML, etc.
a software link, but a really useful site about LaTeX fonts is
. And while
I'm breaking the rules and posting web links,
a really good
website for LaTeX info.
portable LaTeX IDE, including editor, spell checker, symbol toolbars, etc.
is a great
program, and it used to be my first choice, but development seems to have stalled.
LibreOffice: Word processor, spreadsheet, database, and presentation
nearly all intents and purposes, this is a total replacement for Microsoft Office. Back in the day, the LibreOffice spreadsheet lacked fancier Excel features like Goal Seek, but those gaps have been long since filled. In my opinion, it still lacks the polish of Office in
many respects, but with the exception of a few items, almost all the functionality is there.
- Meld: The best graphical file comparison (AKA "diff") program I've seen. The colorized output really helps you quickly see what's changed and what hasn't. There is 2 and 3-way file diff and merge, as well as directory comparison.
- The classic diff program on Windows is WinMerge. I switched to Meld on Linux long ago, and ended up jumping ship on Windows for consistency and a better feature set. WinMerge is still not a bad choice though.
Vim: Powerful keyboard-based text editor with a legendary, steep learning curve. Not for everybody, but every
Linux/Unix guy should know it because it is always there. While I use Vim extensively on Linux, I generally only use it for certain tasks on Windows.
- Honorable mention: GNU Emacs is the Yin to Vim's Yang. It is less likely to be installed on a barebones Linux install, but it is enormously powerful and popular among diehard fans. It isn't my cup of tea. I jumped on the Vi(m) bandwagon too long ago to switch to Emacs now.
Notepad++: My text editor of choice for everyday, quick editing on Windows. The main limitation is that it doesn't
handle big files very well if you want syntax highlighting (say >100MB). The syntax highlighting engine isn't that great, and the interface in general is clunky and ugly, but it is still a useful tool.
- The other popular general purpose editor out there is Sublime Text. This isn't my first choice because it is $70, and the development seems to have slowed to a crawl. The money would be worth it if the development was active and the future was clear. As it is, I'm hesitant to commit.
WriteMonkey: Full-screen, distraction-free text editing seems to be all the rage, and
WriteMonkey fits that bill nicely. These types of apps don't usually have a ton of features, as they focus on reducing
on-screen clutter more than anything else. But having said that, WriteMonkey has also been adding quite a few neat
features lately and I think it leads the pack in functionality. Its support of Markdown is a nice bonus.
Atom is most notable for its hackability, providing a package system allowing the
user to modify/extend the entire program with ease, and share it with others. I'm using it for certain tasks like editing Markdown files since it supports live preview very nicely. It is also decent for programming in Go due to the fairly good Go tools support. Due to its architecture, it will
probably never be super-fast, but it is worth checking out for work in specific domains.
SpeedCrunch: Calculator with FAST start-up and plenty of functionality. This is the first app I reach for when I need
to do some simple math.
- If you want the power of an HP RPN calculator, try HP Prime Virtual Calculator. It is a straight-up emulator of the HP Prime, delivered officially by HP itself. Honestly, it seems somewhat silly to use this on a computer where you can use full blown math programs though.
- Gnuplot: Command-line driven plotting/graphing program that can make amazing graphs. It isn't easy to use, per se, but it is incredibly powerful. It's good to have in the toolbox if you are serious about math and data.
Maxima: Full symbolic computer algebra system. Comes with wxMaxima, which is an easy-to-use graphical interface.
Scilab: Numerical computation program, similar to Matlab in functionality.
GNU Octave: Another numerical computation program that started off as a
Matlab clone, so porting programs is fairly trivial. Octave is a second class citizen on Windows, so you may get some
warnings during installation about not supporting Windows 8/10, etc., but it still seems to work fine for pure math.
Git: Git is quickly taking over the open source world, and with good reason. It is a
distributed VCS, so maybe it isn't the best solution for every situation, but it works very well. A big bonus is you
get all the Unix command line tools along with the install.
- Related is
TortoiseGit: Graphical interface for Git, if that's your
Python: A great general purpose programming language
Julia: Similar to Python in its lightweight syntax, but focused on math/science
applications. It is much faster than Python due to its JIT compiler. I use it more as a math tool than a general purpose scripting language.
Additional Python Packages
PyQt: Probably the best looking, best featured
cross-platform GUI toolkit.
- Also worth checking out are
is a really nice toolkit) and
PyGTK (but it doesn't use native toolkits when it can, like
Reportlab: PDF generator
NumPy: math module (replaces Numeric and Numarray)
SciPy: Scientific package useful for everything from plotting to linear algebra.
Matplotlib: 2D plotting library
- Go: Even though I don't do a ton of programming in compiled languages on Windows, when I do, I am usually making command line programs like file utilities, text manipulators, number crunching programs, etc, and Golang fits the bill nicely.
- HxD: I usually don't like using old/abandoned/unmaintained programs, but even though HxD hasn't been updated since 2009, it has everything I need in a hex editor. The website only mentions Windows 95 through Windows 7, but it actually works fine on Windows 8 and Windows 10 as well.
7-Zip: archiver with great compression, useful from command line, nice GUI and Explorer integration, and it is
PeaZip: If 7-zip doesn't work for you, PeaZip is the place to look. It supports basically every format you
will ever encounter.
VeraCrypt: on-the-fly disk and file encryption. Works absolutely seamlessly with the OS so you wouldn't even know
you are using an encrypted disk. This is a continuation of the old TrueCrypt program.
GPG: GNU Privacy Guard for cross-platform file encryption/signing.
Eraser: Secure deletion with a nice GUI and Explorer integration.
CyberShredder is a good alternative for USB drives when you can't install a shell extension.
SDelete: Also good for USB drive, this is a command-line secure delete that wipes free-space too.
- Between these three programs, you should be able to recover any file that is physically possible to recover without
Recuva: Very nice interface.
Zero Assumption Recovery: The free version gets the job done.
DiskDigger: Lightweight, single exe so no install necessary. While it is free for personal
use, it will nag you before recovering each and every file, so if you have a lot of files to recover, it might be worth just buying it. It is a really good program and worth the price.
- CCleaner: Cleans out temp files, histories, cookies, and other stuff hanging around on your computer that could compromise your data and privacy. If you do online banking and shopping, it isn't a bad idea to clean up after yourself regularly. If the data isn't there, it can't be stolen.
Microsoft Security Essentials:
Non-free third-party anti-virus software just doesn't make sense any more now that Microsoft has Security Essentials.
It is free and it works well. In Windows 10 it is called Defender (once again), and it comes with the OS.
Process Monitor: List and interact with processes
and file handles. Also monitors file access in real time. Useful for identifying i/o hogs.
- Side note: this program and SDelete (mentioned above) are part of the Sysinternals Suite, which was bought by Microsoft years ago, and it contains lots of really interesting utilities. It is worth taking a look at all of them.
WildRename: Wonderfully full-featured file renaming utility that supports regular expressions.
WildReplace: Search for files and replace text in the files.
ConEmu: is the console emulator that I always dreamed of on Windows,
but never had it. It is a must if you use the command line in Windows. It is basically just a wrapper for cmd.exe,
Powershell, whatever, but it is very configurable.
UnxUtils: Unix-like command-line tools compiled natively for Windows (i.e.
no cygwin dependencies).
Note: I no longer need this as Git (see above) has all the same tools, making this package redundant.
PsTools: Command line tools for managing
processes, services, and remote administration.
psexec is especially useful to issue a remote command.
Pstart: Customizable menu-based launcher. I rarely use the "Start" menu. It takes too long to find stuff.
I have Pstart configured to pop up by right-clicking on the side of the screen. This program is ridiculously simple and hasn't been updated in probably 8 years or more, and yet I still find it indispensable.
AutoHotKey: Just like it sounds... automate stuff with hotkeys. You really have to check out the webpage to see all it can do.
SyncBackFree: Backup and synchronization program. Make sure to get "SyncBackFree" since the other
products, SyncBackSE and SyncBackPro, are not freeware.
- Virtualbox is a decent free program for creating and running virtual machines. It is an easy and robust way of running Linux (and other OSes) under Windows, which is often handy. There are some toolchains that just are a pain to set up in Windows, so I don't even bother and just skip right to a VM running Linux.
Dexpot: Virtual desktop switcher with some advanced features and good
hotkey support. (Free for private, non-commercial use.) Windows 10 finally has built-in virtual desktop support, so I really don't need this anymore.
VLC: Video player for nearly any format imaginable. Especially useful for playing videos with obscure codecs, e.g. a
clip encoded in some strange AVI variation.
Plex: The best personal media server for steaming your media to your Roku, smart TV, etc.
Just tell Plex where you store your movies, TV shows, and music and it will do the rest, including downloading cover art
and show descriptions.
fre:ac: free audio converter and CD ripper for various formats and encoders. It
features MP3, MP4/M4A, WMA, Ogg Vorbis, FLAC, AAC, and Bonk format support.
CDex: Tried and true alternative to rip and encode CDs to mp3 and other formats with
automatic naming thanks to freedb support. The only reason fre:ac pushed this back to an honorable mention is the
development seemed to stagnate for a while (although it seems to be alive and well once again).
MediaCoder: Convert from/to nearly any video and audio format, including extracting audio from video.
TagScanner: Fix MP3 tags and rename files quickly with this tool.
Audacity: Full-featured multi-track audio editor.
ImgBurn: Lightweight CD/DVD/HDDVD/Blu-ray burning application that does everything I
could possibly want to do. No need for anything else.
MakeMKV: Decodes discs even with copy protection
3D Rendering and Animation
Blender: 3D modeling and animation. Has more power than I have skill, but other people do really cool things with
- FastStone Image Viewer: FastStone is a great program for casual photo viewing and touch-up. It makes it easy to do common tasks like cropping to standard sizes and removing red-eye.
- It doesn't have all the features that Picasa did, but since Google has made it their Vision Statement to discontinue every product I truly love, I didn't have a choice but find an alternative.
GIMP: Powerful image/photo editor like Photoshop. Not necessarily appropriate for a casual user who just wants to crop
some photos. The scripting allows for complex plugins and automation.
Paint.NET is a fantastic alternative to GIMP for those weary of the learning curve (or the
name). It is easy to use and really polished, and I often use it instead of GIMP for certain quick tasks.
Inkscape: Really nice vector image editor for creating professional
quality, scalable diagrams, logos, you-name-it.
ComicRack: Like iTunes for comics. Reads every popular format: cbr, cbz, cb7, pdf, etc. It organizes as well as
Solvespace: Don't let the retro look fool you. This is a powerful 2D/3D
parametric modeler with a legit constraint solver. Try to find that in a free CAD software. It is rare to non-existent. If
you are into making 3D objects for 3D printing, this program is great.
is an amazing, pretty, easy to use CAD program, but lacks a
constraint solver, relegating it to cartooning mock-ups in my book.
: The is a fairly full-featured 3D parametric CAD modeler. This is
the only free CAD program that looks like a real, commercial CAD program. Is it as good as a commercial product like NX,
Catia, Pro Engineer, etc.? No, but it is free and good enough for many hobbyist projects.
Sketchup: This is where I start if I want to design a deck, a shed, a house, etc. It
is really quirky to use if you are accustomed to regular CAD programs, but it works.
ExpressSCH: This is a really simple, yet
powerful program for making schematics.
Below are a few fixed-width fonts suitable for programming, consoles, terminal windows, PuTTY, etc.
While just one font should be sufficient, I typically have all of these installed as one font may look better in a certain
terminal or editor, or at a particular size.
- Consolas: Awesome TrueType programming font designed by Lucas de Groot to work with ClearType, so be sure that ClearType is enabled. This is part of the Microsoft Cleartype Font Collection (that comes with Vista and later), so you don't need to download this installer if you already have the collection.
- Dina: Great bitmap font in 8, 9, and 10 points with normal, bold, italic, and bold/italic faces. I like the 8 and 10 especially well; the 9 is a bit tall for the width. Dina is so clear and crisp that it is actually pleasurable to read.
- Anonymous Pro: This is a TrueType font with the feel of a bitmapped font. It also has good Unicode support, and scales well in large and small point sizes.
- Source Code Pro: This font from Adobe looks amazing on high resolution monitors. It is actually a family of fonts including Extra Light, Light, Medium, and Black variations.
- Fantasque Sans Mono: This is a whimsical font in a field where most programming fonts are fairly boring. Full of curvy letters and distinct characters, this font is worth a look. It has enough character that I like it for prose like email as well.