BowPad is an open source programmer-friendly text editor with a ribbon interface

Looking for a text editor that has a ribbon interface? BowPad has a nice one, offers all the features you could possibly want, and is programmer-friendly.

BowPad is an open source programmer-friendly text editor with a ribbon interface

The program displays a sidebar on the left; this is the file tree that you can use to browse for folders. If the selected folder has documents in it, they can be opened from the sidebar by double-clicking on files.

The large pane to the right of the sidebar is BowPad's text editor area. It uses a line/paragraph indicator box which makes it easy to type when working with long documents. The application supports syntax highlighting for over a 100 file types (refer to the list at the end of the article). Documents are opened in tabs like a web browser.


BowPad context menu

Right-click in the editor to access its context menu. It can be used for undo/redo, using the built-in Spell Checker tool, perform an online search (uses Bing and Wikipedia). You may change the case of characters from lowercase, to uppercase or title case. The toolbar at the top has a ribbon interface, which is quite similar to Open Live Writer than Microsoft Word. BowPad has three tabs on the ribbon: File, Main and Other.

The main tab has basic tools like undo, redo, find and replace. The goto section is handy for switching between tabs or to navigate to a specific line in a document. Bookmarks can be added anywhere in a file for quick access. The Run command opens the selected document in Edge, Firefox, Chrome, Safari, or IE. You may use the CMD button's menu to perform an online search, open the current folder's location in Explorer, or open a command console. If you had multiple documents open when exiting the program, hit the "Load Session" option to can reload them all with one click.

If you're a programmer, you can use it to configure up to 10 custom commands that can be executed from the menu. Speaking of which, the Code section has another set of programmer-friendly options including functions, open corresponding file, go to symbol, add/remove comments or to use the Lexer. The Other Operations part of the ribbon contains options to change the case, toggle line wrapping, line endings, duplicate/move/split/join lines and trim whitespaces.

The quick access toolbar is displayed on the title bar. Click the caret icon to customize it. The default options that are enabled are: Open, Save, Tabs. You can add Close Tab, New, Find/Replace and Lexer to this toolbar. Optionally, the quick access bar can be displayed below the ribbon.

BowPad's File tab houses options to open, save, and print documents. The Summary window displays some useful stats such as the word count, number of lines, empty lines and paragraphs. The application can save text files in these document formats. TXT, LOG, LST, DOC, DIZ, NFO. The program supports many keyboard shortcuts that you can customize, it uses a Shortcuts.INI file for storing the settings, and you may edit it directly using the editor.

BowPad syntax

You can also use BowPad to save your text/code in the following formats.

Abaqus file (*.inp;*.dat;*.msg)
Ada file (*.ada;*.adb)
Apache Conf file (*.conf;*.htaccess)
ASN1 file (*.asn1;*.mib)
Assembler file (*.asm)
AutoIt3 file (*.au3)
Ave file (*.ave)
AviSynth file (*.avs;*.avsi)
Baan file (*.bc;*.cln)
Bash file (*.sh;*.bsh;*.configure;*.ksh;*.bash;*.bashrc;*.sh_once;*.zsh;*.zshrc)
Batch file (*.bat;*.cmd;*.nt)
Blitzbasic file (*.bb)
Bullant file (*.ant)
C Sharp file (*.cs)
C/C++ file (*.c;*.cc;*.cpp;*.cxx;*.h;*.hh;*.hpp;*.hxx;*.ipp;*.m;*.mm;*.sma;*.ispc;*.isph)
Ch file (*.ch;*.chf;*.chs)
CMake file (*.cmake;*.ctest)
Cobol file (*.cob)
CoffeeScript file (*.coffee)
Common Language Infrastructure file (*.il;*.ilasm)
CSound file (*.orc;*.sco;*.csd)
CSS file (*.css;*.qss)
D file (*.d)
DataFlex file (*.src;*.vw;*.dg;*.sl;*.pkg;*.bp;*.inc;*.dd;*.h;*.rv;*.wo;*.prn)
Diff file (*.diff;*.patch)
DMAP file (*.bdy;*.nam)
DMIS file (*.nom)
DocBook file (*.docbook)
E-Script file (*.em;*.src)
ECL file (*.ecl;*.eclattr;*.hql)
EDIFact file (*.edi)
Eiffel file (*.e)
Erlang file (*.erl;*.hrl)
Errorlist file (*.err)
Flagship file (*.prg)
Flash file (*.as;*.asc;*.jsfl)
Forth file (*.forth;*.f;*.spf)
Fortran file (*.f;*.f90;*.for;*.90;*.f95;*.f2k;*.app;*.apl)
Fortran77 file (*.f;*.for;*.90;*.f95;*.f2k;*.app;*.apl)
Freebasic file (*.bas;*.bi)
Gap file (*.g;*.gd;*.gi)
GetText file (*.po;*.pot)
Go file (*.go)
Gui4Cli file (*.gui;*.gc)
Haskell file (*.hs)
HEX Intel file (*.hex)
HEX S-Record file (*.mot;*.srec)
HEX Tektronix file (*.tek)
Hollywood file (*.hws)
Html file (*.html;*.htm;*.asp;*.shtml;*.htd;*.jsp;*.htt;*.cfm;*.tpl;*.dtd;*.hta)
IDL file (*.idl;*.odl)
InnoSetup file (*.iss;*.isl)
Java file (*.java;*.jad;*.pde)
Java-fx file (*.fx)
JavaScript file (*.js;*.es;*.bpj)
JSON file (*.json;*.eshintrc;*.jshintrc;*.jsonld)
Kix file (*.kix)
KVIrc file (*.kvs)
Latex file (*.tex;*.sty;*.aux;*.toc;*.idx;*.tui;*.tuo)
Lisp file (*.lisp;*.lsp;*.el)
Lout file (*.lt)
Lua file (*.lua)
Makefile file (*.mak;*.mk;*.configure)
Mako file (*.mak;*.mako)
Markdown file (*.mkdn;*.mkd;*.md)
Matlab file (*.m;*.octave)
Maxima file (*.wxm;*.mac)
MetaPost file (*.mp;*.mpx)
MMix Assembler file (*.mms)
Modula file (*.m3;*.i3;*.mg;*.ig)
MPT Log file (*.lot)
Nant file (*.build)
Nim file (*.nim)
NNCronTab file (*.tab;*.spf)
NSIS file (*.nsi;*.nsh)
Ojective Caml file (*.ml;*.mli;*.sml)
Opal file (*.impl;*.sign)
OScript file (*.osx)
Pascal file (*.dpr;*.dpk;*.pas;*.dfm;*.inc;*.pp)
Perl file (*.pl;*.pm;*.pod)
PHP file (*.php3;*.phtml;*.php)
Pike file (*.pike)
PLSQL file (*.spec;*.body;*.sps;*.spb;*.sf;*.sp)
PostScript file (*.ps)
POV file (*.pov;*.inc)
PowerPro file (*.powerpro)
Powershell file (*.ps1)
Properties file (*.properties;*.session;*.ini;*.inf;*.url;*.cfg;*.cnf;*.aut;*.editorconfig)
Purebasic file (*.pb)
Python file (*.py;*.pyw)
R file (*.r)
Raku file (*.p6;*.pm6;*.pod6;*.t6;*.raku;*.rakumod;*.rakudoc;*.rakutest)
Rebol file (*.r;*.reb)
Registry file (*.reg;*.registry)
Resource File file (*.rc;*.rc2;*.dlg)
Ruby file (*.rb;*.rbw;*.rake;*.rjs;*.rakefile;*.irbrc)
Rust file (*.rs)
SAS file (*.dta)
Scriptol file (*.sol)
Sliktest file (*.pln;*.inc;*.t)
Smalltalk file (*.st)
Sorcus file (*.ins)
Specman file (*.e)
Spice file (*.als;*.cir;*.sch;*.scp)
SQL file (*.sql)
Stata file (*.stata;*.dta)
Structured Text file (*.st;*.il)
TACL file (*.tacl)
Tal file (*.tal)
TCL file (*.tcl;*.exp)
Txt2Tags file (*.t2t)
Vala file (*.vala)
Verilog file (*.v;*.vh)
VHDL file (*.vhdl;*.vhd)
Visual Basic file (*.vb;*..bas;*.frm;*.cls;*.ctl;*.pag;*.dsr;*.dob;*.vbs;*.dsm;*.bpv)
Visual Prolog file (*.pro)
Vxml file (*.vxml)
Wix file (*.wxs;*.wxi;*.wxl)
X12 file (*.x12)
Xaml file (*.xaml)
Xml file (*.xml;*.xsl;*.svg;*.xul;*.xsd;*.dtd;*.xslt;*.axl;*.xrc;*.rdf;*.manifest;*.vcprojx;*.vsprops;*.user;*.filters;*.resx;*.nuspec;*.ui)
YAML file (*.yaml;*.yml)

Toggle the file tree, line numbers from the "Other" Tab in the ribbon. This is where you can set the tab size, right margin, the font style for various languages. The program has a rather nice dark theme that you can switch to.

BowPad dark theme

BowPad supports plugins written in JavaScript and VBScript. Clicking the Configure option (under the plugins section) fetches 2 plugins that allows you to disable Clear Type, and enable sorting of lines.

Portable versions of the program are available for 32-bit and 64-bit systems. BowPad is an open source project. The application's installers are just under 2MB, and the directory sums up to about 5.71MB post the installation. The text editor is light on resources, and I didn't face a single issue with it.


For Windows

software image
Author Rating
4.5 based on 3 votes
Software Name
Operating System
Software Category
Landing Page

Previous Post: «
Next Post: «


  1. Anonymous said on March 21, 2020 at 9:28 am

    No-one in their right mind wants a Ribbon interface.

  2. Weilan said on March 21, 2020 at 10:29 am

    I don’t think the Ribbon UI is that innovative, it just looked different and fancier. I prefer the old menu bar UI – it’s cleaner, takes less space and does just the same job. That’s why I use Notepad++. I wish other programs, like MS Paint and File Explorer didn’t have Ribbon UI. I haven’t ever found any use for it.

  3. Ipse said on March 21, 2020 at 11:51 am

    Exactly what I don’t want in an editor, a ribbon.

  4. Anonymous said on March 21, 2020 at 3:00 pm

    The “Ribbon Interface” is useful for only one thing – to teach future programmers and software designers how NOT to program a user interface.

    Also an excellent interview tool – you know you’re going to get at least 10% less work and efficiency out of anyone that thinks the ribbon is a good idea. But don’t worry – they’ll get a job at Microsoft. Seems all the really bad user interface ideas find traction at that company.

  5. Anonymous said on March 21, 2020 at 4:20 pm

    Another Scintilla based editor destroyed by GUI. Ugly tabs, some controls not properly styled when dark theme is active… just not polished enough, generally.

    My advice to author – ditch ribbon, look at Sublime Text or VS Code for GUI inspiration.

  6. cday said on March 21, 2020 at 6:45 pm

    >No-one in their right mind wants a Ribbon interface.

    I absolutely agree with the above multiple posters!

    I always suspected that M$ originally introduced the ribbon as OpenOffice (now LibreOffice) was seen as becoming a serious threat to their cash cow Office suite, was there ever any support for that suggestion?

  7. nano said on March 22, 2020 at 2:51 am

    Just what the world needs, another text editor.

    How about pouring work into something where a need exists?

    1. cday said on March 22, 2020 at 11:42 am

      But someone might actually *want* one with a ribbon interface!!

    2. Kincaid said on March 22, 2020 at 1:55 pm

      How about you start? Look in the mirror instead of blaming others.

  8. Hossein Barzin said on August 9, 2020 at 7:55 am

    Ribbon interface is awesome. It transforms a boring software to an interesting one. I see people whining about Ribbon. If you don’t like it, don’t use it!
    For example in Libre Office you can activate it.
    Just because some software is opensource it doesn’t mean that it should have an ugly and confusing interface.
    Of course I should add that maybe an editor doesn’t need a Ribbon but in some softwares like CAD and GIS it is very useful.

  9. Jim Vanderbilt said on January 3, 2021 at 1:13 pm

    Re “I prefer the old menu bar UI – it’s cleaner, takes less space”

    Close the ribbon and you get the menu bar.
    And no, menu bars don’t differ in space nor cleanliness.

  10. Jim Vanderbilt said on January 3, 2021 at 1:33 pm

    “The “Ribbon Interface” is useful for only one thing – to teach future programmers how NOT to program an UI. Also an excellent interview tool – you’re going to get less efficiency out of anyone that thinks the ribbon is a good idea.”

    The ribbon interface gives you 20+ actions* to choose from with a single mouseclick while action choices in other UIs require at least two clicks.
    If you don’t know that then maybe you shouldn’t talk about efficiency.
    If you don’t care about one mouseclick more or less then you must not talk about efficiency.

    * In additiondifferent actions are offered automatically based on the context

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.