{"slug": "i-kept-leaving-my-terminal", "title": "I kept leaving my terminal.", "summary": "A developer built a CLI tool called 'shortcuts' that displays keyboard shortcuts, commands, and notes from a plain-text Markdown file directly in the terminal. The tool aims to reduce context switching by keeping reference information accessible without leaving the terminal. It supports Windows, Linux, macOS, WSL, and Git Bash, and deliberately avoids dependencies, cloud sync, and telemetry.", "body_md": "`shortcuts`\n\n.\nEvery developer knows keyboard shortcuts are worth learning.\n\nThe problem is remembering them.\n\n`shortcuts`\n\ndoes that for you.\n\nYou 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.\n\nThe interruption often costs more time than the shortcut was supposed to save.\n\nI 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.\n\nTBH the real issue was context switching in ma mind.\n\nEven 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.\n\nExisting solutions weren't quite what I wanted\n\nThere are already plenty of ways to write it down:\n\nI wanted something that lived and behaved like any other CLI utility\n\nhence building the smallest thing that solved the problem\n\n```\n> shortcuts\n\n=== Panes ===\n\nAlt + Shift + +     Split pane\nAlt + Shift + -     Split pane horizontally\nAlt + Arrow Keys    Move focus\n\n=== SSH ===\n127.0.0.1           LocalHost\n...\n```\n\nmy shorcuts file contain :\n\n```\nstandard keyboard shortcuts\nGit commands I rarely use\nSSH hosts\nDocker commands\ndevelopment ports\ntemporary notes\nphone numbers\nplaintext passwords {sorry} {I do not recommend this T_T}\n```\n\nIt's just a text file\n\none of the first decisions I made was to avoid complication.\n\neverything lives in a single plain-text file.\n\nthat gives a few advantages almost for free:\n\neditable in any text editor\n\neasy to version control\n\nportable between machines\n\ntrivial to back up\n\nno migration or export formats\n\nSometimes the simplest storage format is also the most future-proof\n\n**Markdown**... but adapted for the terminal\n\nI wanted the file to be pleasant to edit without inventing a completely new syntax.\n\nSo instead of creating a custom format, I borrowed the parts of Markdown that make sense in a terminal:\n\nheadings become terminal sections\n\n**bold** and *italic* still work\n\none intentional difference is backticks.\n\ninstead of representing inline code, they highlight individual keys by using a different color:\n\n`Ctrl`\n\n+ `Shift`\n\n+ `P`\n\nthis lets the renderer emphasize the important parts of a shortcut while leaving connectors like + or / visually unobtrusive.\n\nmany common Markdown features such as tables, HTML, images, nested lists were intentionally left out. A terminal cheat sheet doesn't need them, does it ?\n\nMaking it work everywhere was an interesting idea\n\nthe project supports **Windows**, **Linux**, **macOS**, **WSL**, and **Git Bash**.\n\nthe goal wasn't simply to run everywhere it was to behave the same.\n\nInternally, 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.\n\nKeeping both implementations in sync ended up being more challenging when adding new features.\n\nConstraints became features\n\nWhenever I considered adding something, I asked a simple question to myself, and ma AI,\n\nDoes this make the tool easier to use every day?\n\nIf the answer wasn't clearly yes, it stayed out.\n\nThat meant deliberately avoiding:\n\ndependencies\n\ncloud synchronization\n\ntelemetry [will never be present]\n\ncomplex configuration\n\nThe only time the tool connects to the internet is when you explicitly ask it to update itself.\n\nEverything else stays local.\n\n*final yap, I promise.*\n\nSimplicity is prerequisite for reliability.\n\n- Edsger W. Dijkstra\n\nThis project reminded me that not every useful piece of software has to be ambitious and big.\n\nSometimes the best tools are the ones which solve the smallest problems.\n\n`shortcuts`\n\nstarted as a way to remember keyboard shortcuts, but it would ultimately become a daily use for me.\n\nIf you'd like to try it, the project is available on GitHub\n\n**GitHub:**\n\n[https://github.com/Suhaas-code/shortcuts-cmd](https://github.com/Suhaas-code/shortcuts-cmd)\n\nIf you find it useful, consider giving the repository a ⭐(please T_T). It helps more developers discover the project, and to support contributions.\n\nI'm also interested in hearing on what you'd add to a tool like this.", "url": "https://wpnews.pro/news/i-kept-leaving-my-terminal", "canonical_source": "https://dev.to/thepresident/i-kept-leaving-my-terminal-3pj5", "published_at": "2026-07-11 07:15:52+00:00", "updated_at": "2026-07-11 07:43:17.768573+00:00", "lang": "en", "topics": ["developer-tools"], "entities": ["shortcuts", "Windows Terminal", "tmux", "Git", "Docker", "SSH", "WSL", "Git Bash"], "alternates": {"html": "https://wpnews.pro/news/i-kept-leaving-my-terminal", "markdown": "https://wpnews.pro/news/i-kept-leaving-my-terminal.md", "text": "https://wpnews.pro/news/i-kept-leaving-my-terminal.txt", "jsonld": "https://wpnews.pro/news/i-kept-leaving-my-terminal.jsonld"}}