DEV Community

ke jia
ke jia

Posted on

Terminal-First Development: Why I Closed 30 Browser Tabs and Kept 4 Commands

I used to develop with 30 tabs open. GitHub, docs, Stack Overflow, a snippet service, a JSON formatter, a Base64 encoder, three different "tool" sites, and somewhere in there — the code.

Last month I ran an experiment: close all of it, and do the same work from the terminal. Four npx commands later, I had everything those tabs did.

This is the argument for terminal-first, with receipts.

Tab 1: "New project setup" → npx scaffoldx-cli

The tab was 14 open "how do I set up X" articles and a 2019 starter repo.

The command:

npx scaffoldx-cli
Enter fullscreen mode Exit fullscreen mode

Nine templates, one pick, one project name. The folder exists with working configs and git init already run. The 14 tabs are now a number on a menu.

Tab 2: "That snippet I saved" → npx @wuchunjie/snippetx

The tab was the "code stuff" bookmark folder — 40 entries, zero search by content.

npx @wuchunjie/snippetx search debounce
npx @wuchunjie/snippetx copy f3a1b2c4 | pbcopy
Enter fullscreen mode Exit fullscreen mode

Snippets live in ~/.snippetx/snippets.json. Search matches content, not just titles. The bookmark folder is deleted.

Tab 3: "Repo overview" → npx @wuchunjie/gitpulse

The tab was the GitHub web UI: commits page, contributors page, graphs page. Three clicks, three loads, three tabs.

npx @wuchunjie/gitpulse
Enter fullscreen mode Exit fullscreen mode

Commits, contributors with bar charts, file-type breakdown, activity heatmap — one screen, one command, no navigation.

Tab 4: "Is this .env safe?" → npx @wuchunjie/dotguard

The tab was a "secret scanner" website — which is itself a security problem, because scanning means pasting your secrets into someone else's server.

npx @wuchunjie/dotguard .
Enter fullscreen mode Exit fullscreen mode

Local scan, local results, non-zero exit code for CI. Your secrets never leave the machine. That is not a small point.

What the Terminal Won

  • Speed. Four commands versus 30 tabs of clicking. The browser was never fast; it was just familiar.
  • Privacy. Nothing sensitive gets pasted into a third-party site.
  • Composability. pbpaste | snippetx add, dotguard . && git commit — the terminal chains, tabs do not.
  • Stability. A zero-dependency CLI does not get a redesign, a paywall, or a sunset. A website gets all three.

What I Kept Open

To be honest: docs sites, when I need them, and the browser for things that are genuinely visual. "Terminal-first" is not "browser-hating". It is: the browser is a destination, not a workspace.

The workspace is where the code is.

npm: scaffoldx-cli · @wuchunjie/snippetx · @wuchunjie/gitpulse · @wuchunjie/dotguard


From the same toolbox

  • ScaffoldX — generate production-ready project templates in seconds: npx scaffoldx-cli
  • DotGuard — scan .env files for exposed secrets: npx @wuchunjie/dotguard
  • GitPulse — git analytics (commits, contributors, activity) in your terminal: npx @wuchunjie/gitpulse
  • SnippetX — save, search, and copy code snippets from the terminal: npx @wuchunjie/snippetx

GitHub: wuchunjie00/devtools


☕ If This Saved You Time

All of these tools are and will always be 100% free. If they make your day a little easier, consider fueling the next one:

Buy me a coffee on Ko-fi

Built with ❤️. Zero dependencies, zero tracking, zero bloat.

Top comments (0)