← All Spotlight Stories

Spotlight: Jesse Duffield

Creator of LazyGit

Jesse Duffield
Share on Twitter Share on LinkedIn Share on Facebook

Hey Jesse, can you tell us about your background? Where did you grow up? How did you venture into programming?

I’m an Australian who jumped from state to state in my childhood, between Victoria, SA, and NSW. I’ve been in Melbourne since late highschool now.

I always loved making board games while I was in primary school and talked to my friends about making video games too, long before I had any idea how to make one. At some point, I stumbled across The Games Factory, a point-and-click framework for building 2D games, and I was hooked from day one.

Although I’ve been procrastinating on my latest ideas for games, I still program in my spare time nearly every day, mostly on dev tools to make my day job as a web dev easier.

What inspired you to build lazygit?

In short: the command-line interface to git sucks. I was aware that plenty of GUIs were available for it, but I did’t want to introduce another bulky GUI to my workflow. I tried an existing terminal UI (TUI), but that didn’t really fit my use case, so I thought: why not make my own TUI that’s just right for me? Lo and behold, I wasn’t the only one yearning for that kind of interface.

Is there a specific reason you chose the Go programming language for the project?

I simply wanted to learn Go because I knew my work would be using it in some upcoming projects. Lazygit was actually my first Go program.

How many other core contributors work on lazygit today, apart from yourself?

About four or five core contributors, but it varies quite a bit.

What problem does lazygit solve for its users?

The git command line is tough to use and costs many keypresses to complete basic tasks. Git GUIs, on the other hand, are often clunky and require switching to a new application. Lazygit strikes a balance between the two extremes, allowing you to perform git commands from the comfort of the terminal, with a UI that lets you see at a glance the state of your repo and the effect of your actions.

How can someone start using lazygit?

Check out the repo’s readme on installation instructions. For mac users, you can brew install lazygit.

What are some major features coming up in lazygit in the next releases?

File-tree navigation, 24-bit colour support, and hopefully, at some point a better integration with Github.

What has been the most frequent feature request from users in the project that you haven’t gotten to yet?

There are some cases where international unicode characters cause rendering issues. I’m in the process of upgrading gocui, our underlying rendering framework, which might help with that.

Who is the ideal user of lazygit? What are some use cases of using lazygit?

Somebody who wants to move very fast when writing code, though even juniors who aren’t striving to be speed demons have found value in lazygit’s ease of use. Typical use cases include staging/unstaging files quickly, line-by-line staging, interactive rebases, undoing things in your commit log, and invoking custom scripts.

I accept donations through GitHub Sponsors at https://github.com/sponsors/jesseduffield. Speaking of which, while I’m here, I want to say thanks to everybody who’s donated so far! It means a lot.

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.