Version 2.3.3

This release features a number of improvements to the help system and error messaging, a few new commands (version and jump), better support for certain features on BSD systems, and fixes a number of bugs. It also makes improvements to rendering text/gemini documents, bringing their display into line with other protocols supported by Bombadillo.

View 2.3.3 Changelog
  • Adds jump command to allow forward copying of history locations
  • Simplifies makefile/build system, including versioning
  • Adds version command to allow retrieving version information wthin the program
  • Fixes bug in searching where previous search highlighting was not removed upon subsequent searches
  • Updates text and formatting in the man page
  • Adds support for legacy forms of hostname verification for gemini tls connections. This maintains compatibility when built with go > 1.14
  • Adds recognition and handling for various unicode line endings
  • Fixes bug where 404 errors for websites were not shown when using the lynx webmode setting
  • Adds left gutter for link numbering when displaying text/gemini documents; this creates a more unified look with how gopher maps are displayed
  • Adds messaging to display how a command should be used when it is used incorrectly
  • Updates the help command to take an optional command as a paramater to get the syntax for the given command
  • Minor optimizations to rendering
  • Updates to DEVELOPING document
  • Adds text/gemini as default mime for gemini requests, if no other mime is sent by the server (per the gemini spec)
  • Adds support for relatively linked redirects
  • Removes client certificate support for gemini. They were not well implemented and may come back at some point in the future
  • Simplifies and consolidates code for the gui setting of the webmode configuration option
  • Adds gui setting (for webmode configuration option) support for BSD systems
  • Adds a timeout configuration option that allows users to set the gopher/gemini timeout (in seconds)
  • Fixes to line wrapping and rendering

Version 2.3.1

This release features a lot of updates to the gemini section of the codebase, following the recent explosion of interest and activity in the protocol. It fixes a few bugs, adds a few features, and hopefully makes Bombadillo even better than it already was. It also removes an external dependency (one of only two): stty is no longer called as a subprocess. A pure Go solution was worked out (thank you @dancek).

Due to some bugs having been found in the initial release of `2.3.0` this has been incremented to `2.3.1` and includes fixes to those bugs. They are included in the changelog below. This should not impact most users and everyone is encouraged to build or download `2.3.1` rather than `2.3.0`. Bug fixes, briefly, include: corrections to relative links, rendering fixes, querystring escaping, and makefile improvements.

View 2.3.1 changelog
  • Adds quick navigation to the first 10 links on a page (using the number keys 1 - 0, where 0 represents 10)
  • Fixes a bug where on some platforms terminal line wrapping was not properly turned back on when Bombadillo exits
  • Adds certificate expiration timestamps to the ini, next to the cert hash
  • Uses the newly stored certificate expiration datetimes to autorenew certificates, resulting in far fewer certificate issues for users to deal with manually
  • Adds 'h' and 'l' as hot key aliases for back and forward, bringing things further in line with vim style keybindings
  • Adds a maximum width to textual content, but not images, of 100 characters (when wrapping lines)
  • Adds automatic requesting of new certificates on expiration (when the site is next visited)
  • Fixes a race condition when querying the user for input
  • Adds support for alt text in gemini preformatted blocks
  • Fixes a parsing error when parsing gemini preformatted blocks
  • Adds config value 'geminiblocks' to control how alt text displays
  • Improved handling of relative URLs for gemini
  • Updates the gemini redirect policy to auto-redirect if, and only if, the only change to the requested URL would be the addition of a terminal '/' character
  • Fixes issue where querystring values would chain instead of replace
  • Removes a dependency on external program 'stty' in favor of a pure Go solution
  • Updates the man page with the relevant changes
  • Changes `Client.Draw()` when bookmarks bar is closed. No longer adds in extra space chars. Is easier to copy text and has fewer instances of emojis deforming the page
  • Fixes querystring bug that prevented multiple status 1 returns in a row from gemini
  • Adds escaping to the querystring
  • Switches gemini relative URL handling to a go method in the std lib, which solves a number of problems with relative linking
  • Adds `release` target for make that will generate all four of the binaries we currently support
  • Updates readme regarding usage of GNU Make (with BSD Make not functioning with our makefile)
  • Increments version patch number
  • Fixes bug in makefile that prevented VERSION file from being used when appropriate (often the case for patch versions)

Version 2.2.0

It felt like it would be nice to move some features over from the development branch of the project. There are not too many changes all in all, but one of them is big and the others produce a more correct experience.

View 2.2.0 changelog
  • New showimages option renders images in Bombadillo with utf-8 characters
  • Gemini documents now respect ``` notation for monospaced blocks
  • Adds better stability for poorl formed gophermaps
  • Optimized text wrapping
  • Image dithering logic added

Version 2.1.0

This release is primarily bug fixes and code cleanup after the 2.0.0 release. However, there are new features as well:

View 2.1.0 changelog
  • Find text within a document by pressing / and entering your text query
  • Navigate found text with n (next) and N (previous)
  • Add Bombadillo as a title to the terminal window via the runtime flag -t
  • Ability to set default URL scheme, rather than it always defaulting to gopher
  • New theme: color. Renders any VT100 style escape sequences that deal with color found within the current document.

Note: due to a library incompatibility with Go 1.11 a hot-fix was done to provide that compatibility. The release has been incremented to 2.1.1 to reflect that change.

Version 2.0.0

Bombadillo grows to become a non-web browser, allowing seamless browsing across a variety of internet protocols, while staying simple, usable and privacy-focused.

New protocol support

Bombadillo has always supported Gopher, and continues to do so. In addition to Gopher support has been added for a number of great protocols:


Project Gemini is a new protocol, collaboratively designed, aiming to exist somewhere between gopher and the web. Bombadillo's implementation of this protocol includes TLS via Trust On First Use certificate pinning.


Access telnet servers within Bombadillo. You can play games!


Finger has been around for a long time, and has had some new activity recently. Browse servers, users, and bookmark your favorites.


Bombadillo can act as a pager for local files, allowing you to browse them in the same way you browse any other site.


As a non-web client, there is no built-in support for http or https in Bombadillo. Two new features bridge the gap, making it easy to view web content:

  • Open your web links in your default graphical web browser
  • Have web content processed by popular browsers Lynx, w3m, or elinks and displayed within Bombadillo

All web functionality is opt-in only - you are in control.

Improved browsing experience

Large parts of Bombadillo have been redesigned and rebuilt to improve the overall browsing experience.

  • Document rendering is faster and smoother, thanks to it being rewritten from scratch.
  • There is better support for displaying UTF-8 documents and emojis.
  • Documents are easier to read, with a new progress indicator and improved word-wrapping.
  • New layout and decorative elements look great, with normal and inverse color themes.
  • Check links before you click them using the improved :check command.

Community suggested improvements

Thanks to your feedback, we've added support for XDG base directories and a version information flag. Keep the feedback coming!

Easy installation

A new Makefile makes building and installing Bombadillo simple, while adding flexibility for custom install requirements.

Improved documentation

It's easy to get help, with a new man page covering the details of using Bombadillo. Documentation covering configuring, building and installing is also available in our source code repository.

Other important changes

We've changed the default location for Bombadillo's user configuration file .bombadillo.ini to be more standards compliant. Furthermore, Bombadillo now requires Go version 1.11 to build.

Help! My old config isn't working!

This has likely occurred because Bombadillo previously stored your .bombadillo.ini file in your home directory. The new default setting is to follow the XDG base directory standard.

To fix this, you can:

  • Move .bombadillo.ini to the XDG config home directory - this is usually ~/.config or what is specified in $XDG_CONFIG_HOME
  • Change the configlocation setting in defaults.go before building Bombadillo - refer to the documentation in the file for more information

Thank you!

Thank you to all of the contributors, commenters, feedback-givers, and online friends for the help and support to see this realised.

Full change log

View 2.0.0 changelog

There were ~250 commits by three contributors and ~35 issues submitted by five contributors.

  • Updates to README
  • Added Makefile for building
  • Added man page
  • Rebuilt the rendering engine
  • Modularized protocol support
  • Fixes issue w/ gopher type 7 responses
  • Reworked user messaging system
  • New application styling/layout
  • Added ability to see how far into a document you are
  • Expanded check command to let users check where a link goes to
  • Rewrote and simplified line wrapping
  • Improved terminal resizing responsiveness
  • Bookmarks can be scrolled when focused
  • Added gemini support
  • Improved telnet support and fixed visual bugs
  • Improved response to various signals
  • Added finger support
  • Added local files support
  • Gemini links are supported via the gophertype h URL resource format
  • Added command line flag to get version information
  • Improved/safer handling of local paths
  • Simplified file saving
  • Added validation to some option values
  • Added support for redirects in gemini
  • Added TOFU style certificate pinning system to gemini module
  • Added support and options for client certificates
  • Updated URL parsing to better support the added protocols
  • Added support for purging gemini certificates
  • Added inverse theme
  • Added defaults.go file to allow users to set defaults before building
  • Added support for http(s) through multiple terminal browser rendering backends
  • Updated opening http(s) links in a gui browser to do better validation of gui availability
  • Updated config location from ~ to XDG_CONFIG_HOME
  • Added removal of escape codes from documents to prevent pages breaking. Note: This is to be revisited for a future release
  • Writing files will no longer overwrite files with the same name, suffixing will get added
  • Removes usage of library methods only available in Go 1.12+, allowing compatibility with 1.11
  • Code formatting and linting
  • General bug fixes and performance/stability improvements