I am a physicist turned software engineer from South Germany. Programming has been my hobby from an early age. I have always been interested in open source software and I maintain a couple of medium-scale projects myself. Professionally, I work on developing self-driving cars.
Before building bat, I had worked a lot on a command-line tool called ‘fd’, a fast and user-friendly alternative to ‘find’. One day I was thinking about what other classical command-line tools I might try to re-write on my own. ‘cat’ seemed to be almost too easy. But once I started building the clone, I had this idea of adding syntax highlighting for interactive terminals - while still being compatible to ‘cat’ in non-interactive use-cases. Like when the output is piped to a file or another process.
We are a team of four maintainers, and there are hundreds of contributors that have helped in one way or another, be it code contributions, documentation updates, syntax additions, or reported issues. This seems like a good place to thank everyone who has been involved!
I would personally consider bat to be something that is ‘nice to have’, but to be honest: it doesn’t solve problems for its users. It’s a command-line tool to display syntax-highlighted file contents on the terminal. This way, it doesn’t just make it ‘look nice’ - but also helps a lot with readability.
I am very conservative with adding major new features. I would rather like to keep ‘bat’ focused on its core task. That being said, we plan to focus on performance for the upcoming release. There are a few major ideas being implemented right now.
bat offers automated paging support by calling an external pager under the hood (typically ‘less’). There are a lot of very interesting features that we could only satisfy by building an actual replacement for ‘less’. A built-in pager for bat: custom key-press events, handling of terminal resize events, persistent file headers, and many others.
We do not officially advertise it as such. But ‘bat’ can really be used as an actual replacement for ‘cat’ by simply setting an alias cat=bat. Everyone who occasionally uses ‘cat’ to quickly display file contents on the terminal is invited to try this. Everything should still work as before, but the output should look better and should be easier to parse.
I was really happy to see that fzf (a super cool command-line fuzzy finder) ‘officially’ endorses the use of bat as a previewer. The two tools harmonize very well.
Please find the sponsorship links on the GitHub page. Thank you to everyone who is already supporting the project in some form or another!