David Peter bat
29K+ Stars
243 Total contributors
~3 years Since first release
Hey David, can you tell us about your background?
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.
What inspired you to build bat?
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.
How many other core contributors work on bat today, apart from yourself?
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!
What problem does bat solve for its users?
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.
What are some major features coming up in bat in the next releases?
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.
What has been the most frequent feature request from users in the project that you haven't gotten to yet?
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.
Who is the ideal user of bat? What are some use cases of using bat?
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.
Are there any success stories about other people or organizations using this project that you would like to share?
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.
If someone wants to support the development of bat, where can they donate?
Please find the sponsorship links on the GitHub page. Thank you to everyone who is already supporting the project in some form or another!

About DeepSource

DeepSource is a static analysis platform that helps developers and engineering teams save time in code reviews and systematically improve code quality and security.