The Terminal Setups of PSPDFKit

While it’s no secret that many developers mainly use the terminal as their way of interacting with their environment, each person ends up developing their own personal setup that’s tailored to the way they work on a day-to-day basis. Finding the perfect set of tools to create a seamless workflow isn’t an easy task, since there’s always one more thing that could be automated or made simpler.
With this in mind, I set out to find out what the terminals of some of PSPDFKit’s engineers look like. Here are the results!
Claudio, CTO
What OS Do You Use?
I alternate between macOS and iPadOS. On the latter, I use a companion Linux VPS where I can ssh
to develop software.
What Shell Do You Use and Why?
For a long time, I’ve used and enjoyed fish(opens in a new tab) due to its ergonomic defaults around autocompletion and error handling, but recently I’ve come back to Bash(opens in a new tab) to keep a simpler setup.
What Terminal App Do You Use?
On macOS, I use iTerm2(opens in a new tab). It’s reasonably fast for my needs and compatible with pretty much any kind of standard related to color management and rendering. On iPadOS, I use Blink(opens in a new tab), which is not as full featured as iTerm, but it’s quite fast and well maintained.
What CLI Apps Do You Use All the Time?
More than anything, Vim(opens in a new tab) (or more precisely Neovim(opens in a new tab)) and tmux(opens in a new tab). For years, I’ve been writing software in the shell, and Vim’s editing paradigm is pretty much burnt into my muscle memory, so I can see myself keeping this workflow for a long time.
What Are Some of Your Favorite Aliases in Your Personal Workflow?
Most of my aliases revolve around Git(opens in a new tab):
s
, which stands forgit status --short
, which gives me an easy-to-understand status of a given repository.lg
, which stands forlog --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit —
. This alias prints a colored and human-readable Git history with a visible branch history.cl
(mnemonic for “clean local”), which stands forgit branch --merged | grep -Ev "(^\*|master|main)" | xargs git branch -d
. This command removes all branches that have been merged with the current branch (even if the merge commit is a squash).
Arek, Server Team Lead
What OS Do You Use?
macOS.
What Shell Do You Use and Why?
Zsh(opens in a new tab), mostly because plugins provide a lot of useful aliases out of the box. I’m a fan of the Git plugin.
What Terminal App Do You Use?
I used to use iTerm(opens in a new tab), but now that I’m using VS Code(opens in a new tab), I use its built-in terminal.
What CLI Apps Do You Use All the Time?
direnv(opens in a new tab), ripgrep(opens in a new tab), xsv(opens in a new tab), jq(opens in a new tab), beancount(opens in a new tab), curl(opens in a new tab), Git(opens in a new tab), Docker(opens in a new tab).
What Are Some of Your Favorite Aliases in Your Personal Workflow?
gcp
for cherry-picking — so much less typing!
Will, Native Team Lead
What OS Do You Use?
Primarily Windows. I also have a MacBook, but I only use it when I need to do iOS/macOS development.
What Shell Do You Use and Why?
PowerShell(opens in a new tab). I started using PowerShell because it was the easiest thing to use on Windows, but it quickly grew on me to the point where I made it my default shell even on macOS! Once you get over That-Weird-Syntax
, it becomes evident that PowerShell is one of the most readable and intuitive shell languages.
What Terminal App Do You Use?
Windows Terminal(opens in a new tab) on Windows and Hyper(opens in a new tab) on macOS.
What CLI Apps Do You Use All the Time?
ripgrep(opens in a new tab), zoxide(opens in a new tab), and fzf(opens in a new tab).
What Are Some of Your Favorite Aliases in Your Personal Workflow?
I use gsw
to allow for fuzzy search and auto-completion when switching Git branches. I also use gri 3
for git reset HEAD~3
, and gnuke
for completely undoing all changes, staged or not.
Ritesh, Web Team Lead
What OS Do You Use?
macOS Big Sur
What Shell Do You Use and Why?
What Terminal App Do You Use?
The default terminal app.
What CLI Apps Do You Use All the Time?
npm(opens in a new tab), Yarn(opens in a new tab).
What Are Some of Your Favorite Aliases in Your Personal Workflow?
The Git aliases that come with Zsh(opens in a new tab).
Tomáš, Android and Web Developer
What OS Do You Use?
macOS Big Sur.
What Shell Do You Use and Why?
Zsh(opens in a new tab) shell. Why? Oh My Zsh(opens in a new tab) has a dead-simple (no-hassle) setup with a rich set of features.
What Terminal App Do You Use?
iTerm2(opens in a new tab). I use the slightly modified Solarized(opens in a new tab) dark theme (for a bit better contrast) running in the hotkey window (I’ve always used Quake-style terminals on any Linux/Unix machine I’ve ever had).
What CLI Apps Do You Use All the Time?
- fzf(opens in a new tab) as a command history and file fuzzy finder (I have it bound as a replacement to Control + T and Control + R).
- fasd(opens in a new tab) to switch recent directories faster (it’s bound to the z alias since I used z for the same purpose in the past and I’m used to it).
- asdf(opens in a new tab) for tool version management. This was a game changer for me — no more headaches when running Ruby, Node, Elixir, etc.
What Are Some of Your Favorite Aliases in Your Personal Workflow?
Git-related aliases from Oh My Zsh(opens in a new tab).
Simone, Android Developer
What OS Do You Use?
macOS Big Sur.
What Shell Do You Use and Why?
fish(opens in a new tab) shell, because it works nicely out of the box.
What Terminal App Do You Use?
iTerm2(opens in a new tab) with Starship(opens in a new tab).
What CLI Apps Do You Use All the Time?
grep, asdf(opens in a new tab), fzf(opens in a new tab), Git(opens in a new tab).
What Are Some of Your Favorite Aliases in Your Personal Workflow?
Mostly Git aliases and a bunch of ADB commands for Android.