Why terminals feel slow
Slow terminals are rarely just a “missing tools” problem. Friction usually lives in a few places:
📑Table of Contents
- finding code
- jumping history or branches
- bouncing to GitHub for PRs and issues
- switching project environment variables
- reading diffs
Clear those first and day-to-day speed changes.
What this guide covers
This guide centers on fzf, ripgrep (rg), and GitHub CLI (gh), then places direnv, delta, tmux, and a few helpers by friction type—not by popularity list.
Reader outcomes for this article:
- Choose three installs for this week and consciously defer the rest
- Lean on official docs and independent write-ups beyond the originating roundup
Learning outcomes
A role map before another tool catalog
Name the stall, then pick the tool.
Eight friction types
- Find (code, history, branches) → fzf / peco / ripgrep
- Cut GitHub round-trips → gh (optionally with fzf)
- Read diffs → delta
- Auto-switch project env → direnv
- Keep multi-pane sessions → tmux
- Declare repeatable tasks → task (Taskfile)
- Readable HTTP checks → HTTPie
- Static previews → http-server
What independent sources still recommend
Independent 2026 curations still put fzf, ripgrep, tmux, and delta in the “worth installing” tier (NexaSphere).
Travis Media documents daily patterns such as the following (Travis Media, 2026-07-05):
- fzf history search
git branch | fzfcheckout- ripgrep content search with .gitignore defaults
Friction quick-reference table
| Friction | Representative tools | Main effect | First try if… |
|---|---|---|---|
| Find | ripgrep, fzf | Fast search + interactive filter | Everyone |
| GitHub hops | gh | PRs/issues from the terminal | You live in GitHub |
| Diffs | delta | Syntax-highlighted diffs | You review often |
| Env switch | direnv | Load on directory enter | Many repos |
| Screen hold | tmux | Sessions and panes | Long terminal days |
Sources for this map
Sources (as of July 2026):
You do not need every row on day one. Start with search.
Faster search and movement — fzf, ripgrep, peco
The win is usually fast search plus interactive filtering, not either tool alone.
Christophe Avonture independently shows piping ripgrep into fzf with a bat preview and a reusable ZSH-style rgf workflow (Avonture).
ripgrep (rg)
ripgrep’s default value is high-speed content search that respects .gitignore. Travis Media treats it as a daily habit.
Speed and measurement notes:
- Avonture’s published contrast—about 0.08s for rg versus about 4.2s for grep on a node_modules-heavy tree—is a machine- and tree-specific reference, not a universal SLA
- Treat it as “orders of magnitude are possible,” then measure once on your laptop
First steps:
- Put
rgon PATH - Replace a few IDE full-text searches per day with terminal search
- On huge monorepos, prioritize ignore rules and path limits over raw binary speed
fzf
fzf is a fuzzy finder. Common wiring:
- Interactive shell history (often Ctrl-R)
- File picking
git branch | fzfcheckout
Travis Media lists history and branch selection as everyday patterns.
Practical knobs:
- Point
FZF_DEFAULT_COMMANDat fd - Add one checkout alias
Prefer one sticky binding (history or branches) over copying a full config dump.
Where peco fits
peco is another interactive filter useful at the end of pipes (for example, picking from issue lists). Overlap with fzf is real. Default policy: one primary finder, add the second only for a specialized pipe UI.
This week (search layer)
- Install ripgrep and expose
rg - Enable fzf key-bindings in your shell
- Customize exactly one flow: branch checkout or
rg | fzf(bat preview optional)
Close the loop on GitHub, diffs, and env — gh, delta, direnv
Cutting browser hops and “forgot to source the env” failures speeds review loops. This layer has clear official product docs.
GitHub CLI (gh)
The official GitHub CLI manual defines gh as a terminal/script interface to GitHub, covering auth login, config, aliases, and Enterprise host/token setup. That is the primary product evidence.
Common operator flows
Common operator flows:
gh pr create/list/viewgh issue list/create/commentgh browsewhen a browser tab is still useful
Independent practitioner notes
Independent Japanese practitioner notes cover the same loop:
- Homebrew install,
gh auth login, and terminal-first issue/repo work (Zenn: ring_belle) - Daily PR/browse patterns plus pairing gh output with fzf for selection UI (Qiita: mkiken, 2024-12-15)

Skeleton setup
- Install gh from the official path for your OS
gh auth login- Alias the subcommands you actually run
- Optionally pipe PR lists into fzf
Permissions and UI boundaries
Watch token scopes and org SSO.
- Do not over-broaden personal token scopes
- Complete org SSO authorization when required
- gh reduces round-trips; it does not fully replace repository settings UI or heavy review screens
delta
Official delta docs describe a syntax-highlighting pager for git/diff with layouts such as line numbers and side-by-side.
Setting core.pager = delta in .gitconfig is the usual hook.
Check for conflicts with existing less/pager settings after install.
direnv
direnv loads .envrc on directory enter and unloads on leave. The security hinge is direnv allow—unknown env files should not execute silently. It fits 12-factor style per-project variables.
Operational cautions:
- Do not commit secrets into shared
.envrcwithout a clear policy - Distinguish “not allowed yet” from “broken tool”
- Agree with teammates what belongs in env files
This week (GitHub / env / diff)
- Run
gh auth status - Open one PR entirely from the terminal
- Add either direnv or delta to a repo you open daily
Sessions and repetition — tmux, task, HTTPie, http-server
Other friction: too many windows, forgotten bootstrap commands, and brittle curl JSON. These tools help specific roles; they are not universal week-one installs.
tmux
tmux keeps panes and sessions across interruptions. It still appears in 2026 “modern CLI” shortlists (NexaSphere).
Learning cost is medium—prefix keys and mouse settings often block adoption. Install only if multi-pane terminal work is daily.
task (Taskfile)
YAML tasks for setup / dev / test beat tribal shell lore when a team shares a repo. Without team agreement, Taskfiles rot.
HTTPie and http-server
HTTPie improves human HTTP debugging (readable JSON, color). http-server is a quick static preview path—not production hosting. Add HTTPie if API hand-testing is frequent; add http-server only if static previews are frequent.
Reader action
Pick tmux or task first. Add HTTPie only if APIs dominate your day.
Priority comparison — what to install this week
Do not install ten tools at once. Rank by your largest friction.
Priority table (core 1–5)
| Priority | Tool | Main effect | Setup cost | Best for | Evidence direction |
|---|---|---|---|---|---|
| 1 | ripgrep | Fast, gitignore-aware search | Low | Everyone | Travis / Avonture daily + timing example |
| 2 | fzf | History, branches, interactive pick | Low–med | Shell-heavy work | Travis / Avonture combination |
| 3 | gh | Terminal PR/issue loop | Low | GitHub users | Official manual / mkiken / ring_belle |
| 4 | direnv | Auto project env | Low | Many repos | Official direnv |
| 5 | delta | Readable diffs | Low | Heavy review | Official delta |
Priority table (extended 6–10)
| Priority | Tool | Main effect | Setup cost | Best for | Evidence direction |
|---|---|---|---|---|---|
| 6 | tmux | Multi-session terminal | Medium | Long sessions | NexaSphere-style lists |
| 7 | task | Declared workflows | Medium | Teams | Needs repo consensus |
| 8 | HTTPie | API debugging | Low | Backend-heavy | High API frequency |
| 9 | peco | Flexible pipe UI | Low | Secondary finder | Prefer one primary |
| 10 | http-server | Static preview | Low | Frontend checks | Not a production server |
Source references
Sources (as of July 2026):
Decision checklist
- Is this week’s worst pain search or GitHub hopping?
- If direnv, do you already have a secrets rule?
- Will the team actually share Taskfile or tmux conventions?
- Will you re-measure any published timing claim once locally?
Priorities 1–3 usually unlock the most. Treat direnv or delta as a single add-on on a daily repo.
FAQ
Q1. Do I need both fzf and peco?
Usually no. Keep one primary interactive finder; add a second only for a specialized pipe UI.
Q2. Does ripgrep replace grep?
For interactive daily search, often yes enough. Keep grep in portable POSIX scripts. Split roles instead of forcing a purge.
Q3. Does gh replace the GitHub web UI?
No. It reduces round-trips. Heavy review and settings stay in the browser.
Q4. Is direnv safe?
It requires explicit allow. Still decide secrets handling before adopting project env files.
Q5. Do Windows steps match macOS/Linux?
Package managers and shells differ. This article’s skeletons assume Unix-like shells (macOS, Linux, WSL).
Q6. Can I trust published rg vs grep timings?
Use them as orientation only. Repo size, disk, and cache change results—measure once on your tree.
Summary and next actions
Assign tools to friction types instead of memorizing top-ten lists. Independent and official sources converge on fzf×ripgrep for search ergonomics, gh for fewer GitHub hops, and direnv/delta for env and diff friction.
This week
- Install rg and fzf; wire branch checkout or history search once
- Finish
gh auth loginand open one PR from the terminal - Add either direnv or delta to a daily repository
Avoid
- Installing all ten at once
- Over-trusting someone else’s benchmark
- Leaving secrets in unreviewed
.envrcfiles
Write down adoption tradeoffs—learning cost, token scopes, team agreement—before expanding into tmux or Taskfile. Extend only after the core search and GitHub loop feels quieter.
Related articles:
Author
krona23
Over 20 years in the IT industry, serving as Division Head and CTO at multiple companies running large-scale web services in Japan. Experienced across Windows, iOS, Android, and web development. Currently focused on AI-native transformation. At DevGENT, sharing practical guides on AI code editors, automation tools, and LLMs in three languages.
🔥 Most Popular
- Claude Desktop Won't Install? Windows & Mac Fixes That Worked (2026)
- Claude Code CLI vs Web vs Desktop: A Daily User's Guide (2026)
- Zed Language Support & IME Issues: CJK Input, i18n Status — Complete Guide (2026)
- Claude Code Skill: Hands-On SKILL.md, Auto-Invoke & Teams (2026)
- Install OpenClaw: Node 24 or 26 (November 2026)












Leave a Reply