<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: John Brick</title>
    <description>The latest articles on DEV Community by John Brick (@thepresident).</description>
    <link>https://dev.to/thepresident</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2779572%2Fa2c5fc75-54e6-4a01-89a3-68c283b555f9.jpg</url>
      <title>DEV Community: John Brick</title>
      <link>https://dev.to/thepresident</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thepresident"/>
    <language>en</language>
    <item>
      <title>I kept leaving my terminal.</title>
      <dc:creator>John Brick</dc:creator>
      <pubDate>Sat, 11 Jul 2026 07:15:52 +0000</pubDate>
      <link>https://dev.to/thepresident/i-kept-leaving-my-terminal-3pj5</link>
      <guid>https://dev.to/thepresident/i-kept-leaving-my-terminal-3pj5</guid>
      <description>&lt;h3&gt;
  
  
  ...so I built &lt;code&gt;shortcuts&lt;/code&gt;.
&lt;/h3&gt;

&lt;p&gt;Every developer knows keyboard shortcuts are worth learning.&lt;br&gt;
The problem is remembering them.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;shortcuts&lt;/code&gt; does that for you.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The interruption often costs more time than the shortcut was supposed to save.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;



&lt;p&gt;TBH the real issue was context switching in ma mind.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Existing solutions weren't quite what I wanted&lt;/p&gt;

&lt;p&gt;There are already plenty of ways to write it down:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;notepad applications&lt;/li&gt;
&lt;li&gt;cheat sheet websites&lt;/li&gt;
&lt;li&gt;papers&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I wanted something that lived and behaved like any other CLI utility&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;hence building the smallest thing that solved the problem&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; shortcuts

=== Panes ===

Alt + Shift + +     Split pane
Alt + Shift + -     Split pane horizontally
Alt + Arrow Keys    Move focus

=== SSH ===
127.0.0.1           LocalHost
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;my shorcuts file contain :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's just a text file&lt;/p&gt;

&lt;p&gt;one of the first decisions I made was to avoid complication.&lt;br&gt;
everything lives in a single plain-text file.&lt;/p&gt;

&lt;p&gt;that gives a few advantages almost for free:&lt;/p&gt;

&lt;p&gt;editable in any text editor&lt;br&gt;
easy to version control&lt;br&gt;
portable between machines&lt;br&gt;
trivial to back up&lt;br&gt;
no migration or export formats&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Sometimes the simplest storage format is also the most future-proof&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Markdown&lt;/strong&gt;... but adapted for the terminal&lt;/p&gt;

&lt;p&gt;I wanted the file to be pleasant to edit without inventing a completely new syntax.&lt;/p&gt;

&lt;p&gt;So instead of creating a custom format, I borrowed the parts of Markdown that make sense in a terminal:&lt;/p&gt;

&lt;p&gt;headings become terminal sections&lt;br&gt;
&lt;strong&gt;bold&lt;/strong&gt; and &lt;em&gt;italic&lt;/em&gt; still work&lt;/p&gt;

&lt;p&gt;one intentional difference is backticks.&lt;/p&gt;

&lt;p&gt;instead of representing inline code, they highlight individual keys by using a different color:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Ctrl&lt;/code&gt; + &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;P&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;this lets the renderer emphasize the important parts of a shortcut while leaving connectors like + or / visually unobtrusive.&lt;/p&gt;

&lt;p&gt;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 ?&lt;/p&gt;




&lt;p&gt;Making it work everywhere was an interesting idea&lt;/p&gt;

&lt;p&gt;the project supports &lt;strong&gt;Windows&lt;/strong&gt;, &lt;strong&gt;Linux&lt;/strong&gt;, &lt;strong&gt;macOS&lt;/strong&gt;, &lt;strong&gt;WSL&lt;/strong&gt;, and &lt;strong&gt;Git Bash&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;the goal wasn't simply to run everywhere it was to behave the same.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Keeping both implementations in sync ended up being more challenging when adding new features.&lt;/p&gt;




&lt;p&gt;Constraints became features&lt;/p&gt;

&lt;p&gt;Whenever I considered adding something, I asked a simple question to myself, and ma AI,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does this make the tool easier to use every day?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the answer wasn't clearly yes, it stayed out.&lt;/p&gt;

&lt;p&gt;That meant deliberately avoiding:&lt;/p&gt;

&lt;p&gt;dependencies&lt;br&gt;
cloud synchronization&lt;br&gt;
telemetry [will never be present]&lt;br&gt;
complex configuration&lt;/p&gt;

&lt;p&gt;The only time the tool connects to the internet is when you explicitly ask it to update itself.&lt;/p&gt;

&lt;p&gt;Everything else stays local.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;final yap, I promise.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Simplicity is prerequisite for reliability.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;- Edsger W. Dijkstra&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This project reminded me that not every useful piece of software has to be ambitious and big.&lt;/p&gt;

&lt;p&gt;Sometimes the best tools are the ones which solve the smallest problems.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;shortcuts&lt;/code&gt; started as a way to remember keyboard shortcuts, but it would ultimately become a daily use for me.&lt;/p&gt;

&lt;p&gt;If you'd like to try it, the project is available on GitHub&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/Suhaas-code/shortcuts-cmd" rel="noopener noreferrer"&gt;https://github.com/Suhaas-code/shortcuts-cmd&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find it useful, consider giving the repository a ⭐(please T_T). It helps more developers discover the project, and to support contributions.&lt;/p&gt;

&lt;p&gt;I'm also interested in hearing on what you'd add to a tool like this.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>tools</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
