shortcuts
. Every developer knows keyboard shortcuts are worth learning.
The problem is remembering them.
shortcuts
does that for you.
You forget how to split a pane in Windows Terminal, search through tmux scrollback, or jump to the end of a command. Instead of staying in your terminal, you open a browser, search the web, skim documentation, on a bad day ask some AI chatbot.
The interruption often costs more time than the shortcut was supposed to save.
I was doing this whenever I switched to some new CLI tool, so I stopped trying to memorize everything and instead built a tool that keeps the information exactly where I need it.
TBH the real issue was context switching in ma mind.
Even if finding the answer only takes ten to twenty seconds, those twenty seconds involve changing windows, searching, reading, and mentally returning to the task you were already working on took another 5 seconds.
Existing solutions weren't quite what I wanted
There are already plenty of ways to write it down:
I wanted something that lived and behaved like any other CLI utility
hence building the smallest thing that solved the problem
> shortcuts
=== Panes ===
Alt + Shift + + Split pane
Alt + Shift + - Split pane horizontally
Alt + Arrow Keys Move focus
=== SSH ===
127.0.0.1 LocalHost
...
my shorcuts file contain :
standard keyboard shortcuts
Git commands I rarely use
SSH hosts
Docker commands
development ports
temporary notes
phone numbers
plaintext passwords {sorry} {I do not recommend this T_T}
It's just a text file
one of the first decisions I made was to avoid complication.
everything lives in a single plain-text file.
that gives a few advantages almost for free:
editable in any text editor
easy to version control
portable between machines
trivial to back up
no migration or export formats
Sometimes the simplest storage format is also the most future-proof
Markdown... but adapted for the terminal
I wanted the file to be pleasant to edit without inventing a completely new syntax.
So instead of creating a custom format, I borrowed the parts of Markdown that make sense in a terminal:
headings become terminal sections
bold and italic still work
one intentional difference is backticks.
instead of representing inline code, they highlight individual keys by using a different color:
Ctrl
-
Shift -
P
this lets the renderer emphasize the important parts of a shortcut while leaving connectors like + or / visually unobtrusive.
many common Markdown features such as tables, HTML, images, nested lists were intentionally left out. A terminal cheat sheet doesn't need them, does it ?
Making it work everywhere was an interesting idea
the project supports Windows, Linux, macOS, WSL, and Git Bash.
the goal wasn't simply to run everywhere it was to behave the same.
Internally, the project maintains independent PowerShell and POSIX shell implementations that parse the same file format and produce equivalent output. That meant solving differences in ANSI rendering, alignment, text parsing, and shell behavior without exposing any of those differences to the user.
Keeping both implementations in sync ended up being more challenging when adding new features.
Constraints became features
Whenever I considered adding something, I asked a simple question to myself, and ma AI,
Does this make the tool easier to use every day?
If the answer wasn't clearly yes, it stayed out.
That meant deliberately avoiding:
dependencies
cloud synchronization
telemetry [will never be present]
complex configuration
The only time the tool connects to the internet is when you explicitly ask it to update itself.
Everything else stays local.
final yap, I promise.
Simplicity is prerequisite for reliability.
- Edsger W. Dijkstra
This project reminded me that not every useful piece of software has to be ambitious and big.
Sometimes the best tools are the ones which solve the smallest problems.
shortcuts
started as a way to remember keyboard shortcuts, but it would ultimately become a daily use for me.
If you'd like to try it, the project is available on GitHub
GitHub:
https://github.com/Suhaas-code/shortcuts-cmd
If you find it useful, consider giving the repository a ⭐(please T_T). It helps more developers discover the project, and to support contributions.
I'm also interested in hearing on what you'd add to a tool like this.