← All Spotlight Stories

Spotlight: David Peter

Creator of bat

David Peter
Share on Twitter Share on LinkedIn Share on Facebook

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!

bat Logo
total contributors
~3 years
since first release

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 helps you automatically find and fix issues in your code during code reviews, such as bug risks, anti-patterns, performance issues, and security flaws. It takes less than 5 minutes to set up with your Bitbucket, GitHub, or GitLab account. It works for Python, Go, Ruby, and JavaScript.
Get started for free
Get new spotlight stories delivered to your inbox.
Subscribe to get notified when we add a new spotlight story, once every month.