Developer productivity isn't just about typing fasterβit's about automating repetitive tasks, using the right tools, and optimizing your workflow. Here are the essential tools and techniques that will transform how you work in 2026.
Modern Terminal Setup
1. Warp Terminal
Warp brings modern IDE features to the terminal with AI-powered command suggestions, blocks, and workflows.
# Command suggestions as you type git checkout <AI suggests recent branches> # Command blocks - each command is a separate block you can select, copy, and share npm install npm run dev # Workflows - save and share common command sequences warp run deploy-staging
2. Starship Prompt
A minimal, fast, and customizable prompt that shows exactly what you need.
# Minimal configuration format = """ $directory\ $git_branch\ $git_status\ $nodejs\ $rust\ $golang\ $package\ $line_break\ $character """ [character] success_symbol = "[β](bold green)" error_symbol = "[β](bold red)" [directory] truncation_length = 3 truncate_to_repo = true [git_branch] symbol = "π± " format = "on [$symbol$branch]($style) " [git_status] conflicted = "βοΈ " ahead = "β‘${count}" behind = "β£${count}" diverged = "ββ‘${ahead_count}β£${behind_count}" untracked = "π€·" stashed = "π¦" modified = "π" staged = "β" renamed = "π " deleted = "π"
Essential CLI Tools
1. ripgrep (rg)
Ultra-fast code search that respects .gitignore by default.
# Find all TODOs rg "TODO" # Search in specific file types rg "useEffect" -t tsx -t ts # Show context around matches rg "function.*user" -C 3 # Search and replace rg "oldFunction" -l | xargs sed -i 's/oldFunction/newFunction/g' # JSON output for piping rg "error" --json | jq '.data.lines.text'
2. fzf (Fuzzy Finder)
Interactive fuzzy finder for the terminal.
# fzf configuration export FZF_DEFAULT_COMMAND='rg --files --hidden --follow --glob "!.git/*"' export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border' # Fuzzy file search alias ff='fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"' # Fuzzy git log alias gl='git log --oneline | fzf --preview "git show {1}"' # Fuzzy process kill alias fkill='ps aux | fzf | awk "{print \$2}" | xargs kill' # Fuzzy directory jump cd $(find . -type d | fzf)
3. bat (Better cat)
cat with syntax highlighting and git integration.
# View file with syntax highlighting bat src/components/Button.tsx # Show git changes bat --diff src/components/Button.tsx # Use as man page viewer export MANPAGER="sh -c 'col -bx | bat -l man -p'" # Alias cat to bat alias cat='bat --paging=never'
4. exa/eza (Modern ls)
Improved ls with colors, icons, and git integration.
# Install: brew install eza # Basic aliases alias ls='eza --icons --group-directories-first' alias ll='eza --icons --group-directories-first -lah' alias lt='eza --icons --tree --level=2' # Show git status in file list alias lg='eza --icons --long --git' # Tree view with git status alias lgt='eza --icons --tree --level=3 --git'
5. zoxide (Smart cd)
Jump to frequently used directories with minimal typing.
# Initialize zoxide eval "$(zoxide init zsh)" # Usage z proj # Jumps to ~/Developer/Projects z config # Jumps to ~/.config zi # Interactive selection with fzf # Alias cd to z alias cd='z'
Git Productivity
1. Git Aliases
[alias] # Short status st = status -sb # Prettier log lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit # Show last commit last = log -1 HEAD --stat # Undo last commit undo = reset --soft HEAD^ # Amend without editing message amend = commit --amend --no-edit # Show branches with last commit br = branch -v # Delete merged branches cleanup = "!git branch --merged | grep -v '\\*\\|main\\|master' | xargs -n 1 git branch -d" # Interactive rebase rb = rebase -i # Show contributors contributors = shortlog -sn --no-merges
2. Delta (Better Git Diffs)
Syntax-highlighting pager for git, diff, and grep.
[core] pager = delta [interactive] diffFilter = delta --color-only [delta] navigate = true light = false line-numbers = true side-by-side = true [merge] conflictstyle = diff3 [diff] colorMoved = default
Automation Scripts
1. Project Setup Script
#!/bin/bash # Create new Next.js project with standard setup new_project() { local name=$1 if [ -z "$name" ]; then echo "Usage: new_project <project-name>" return 1 fi echo "Creating new project: $name" # Create Next.js project npx create-next-app@latest "$name" \ --typescript \ --tailwind \ --eslint \ --app \ --src-dir \ --no-import-alias cd "$name" # Install additional dependencies pnpm add -D prettier prettier-plugin-tailwindcss pnpm add clsx tailwind-merge # Create prettier config cat > .prettierrc << EOF { "semi": false, "singleQuote": true, "tabWidth": 2, "trailingComma": "es5", "plugins": ["prettier-plugin-tailwindcss"] } EOF # Create utils file mkdir -p src/lib cat > src/lib/utils.ts << EOF import { clsx, type ClassValue } from 'clsx' import { twMerge } from 'tailwind-merge' export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)) } EOF # Initialize git git init git add . git commit -m "Initial commit" echo "β Project $name created successfully!" code . }
2. Daily Workflow Script
#!/bin/bash # Start daily development workflow start_work() { echo "π Starting work day..." # Update all git repositories echo "π¦ Updating repositories..." cd ~/Developer/Projects for dir in */; do if [ -d "$dir/.git" ]; then echo "Updating $dir" cd "$dir" git fetch --all git pull cd .. fi done # Check for system updates echo "π Checking for updates..." brew update brew outdated # Start Docker if needed if ! docker info > /dev/null 2>&1; then echo "π³ Starting Docker..." open -a Docker fi # Clean up old branches echo "π§Ή Cleaning up merged branches..." git cleanup echo "β Ready to code!" }
3. Deployment Script
#!/bin/bash # Smart deployment script deploy() { local env=${1:-staging} echo "π Deploying to $env..." # Run checks echo "π Running checks..." pnpm run type-check || { echo "β Type check failed"; return 1; } pnpm run lint || { echo "β Lint failed"; return 1; } pnpm run test || { echo "β Tests failed"; return 1; } # Build echo "π¦ Building..." pnpm run build || { echo "β Build failed"; return 1; } # Deploy based on environment case $env in staging) echo "π€ Deploying to staging..." vercel --yes ;; production) echo "π€ Deploying to production..." read -p "Are you sure? (y/N) " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then vercel --prod --yes fi ;; *) echo "β Unknown environment: $env" return 1 ;; esac echo "β Deployment complete!" }
Package Manager Optimization
1. pnpm Configuration
# Use pnpm for speed and disk efficiency auto-install-peers=true shamefully-hoist=false strict-peer-dependencies=false # Cache settings store-dir=~/.pnpm-store cache-dir=~/.pnpm-cache # Performance network-concurrency=16 child-concurrency=8
2. Global Package Aliases
# Package manager aliases alias pn='pnpm' alias pni='pnpm install' alias pna='pnpm add' alias pnd='pnpm add -D' alias pnr='pnpm run' alias pnx='pnpm dlx' # Quick dev commands alias dev='pnpm run dev' alias build='pnpm run build' alias test='pnpm run test'
AI-Powered Development
1. GitHub Copilot CLI
# Install npm install -g @githubnext/github-copilot-cli # Usage ?? how to list files recursively # Suggests: find . -type f git? undo last commit # Suggests: git reset --soft HEAD^ gh? create a pull request # Suggests: gh pr create --title "..." --body "..."
2. AI Code Review
#!/bin/bash # Get AI code review using LLM ai_review() { local diff=$(git diff HEAD) if [ -z "$diff" ]; then echo "No changes to review" return fi echo "π€ Requesting AI code review..." # Use Claude API (requires API key) curl https://api.anthropic.com/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d "{ \"model\": \"claude-3-5-sonnet-20241022\", \"max_tokens\": 1024, \"messages\": [{ \"role\": \"user\", \"content\": \"Review this code diff and provide feedback:\n\n$diff\" }] }" }
Monitoring & Debugging
1. htop/btop
Visual process monitor with better UI.
# Install btop (modern version) brew install btop # Run btop
2. HTTPie
User-friendly HTTP client for testing APIs.
# Install brew install httpie # Usage http GET https://api.example.com/users http POST https://api.example.com/users name="John" email="john@example.com" http PUT https://api.example.com/users/1 name="Jane" # Save output http GET https://api.example.com/data > data.json # Custom headers http GET https://api.example.com/protected Authorization:"Bearer token"
Conclusion
Modern developer productivity comes from choosing the right tools and automating repetitive tasks. Start with a solid terminal setup using Warp or similar, adopt fast CLI tools like ripgrep and fzf, create reusable automation scripts, and leverage AI assistants for code review and suggestions. The time invested in optimizing your workflow pays dividends daily through faster development cycles and reduced cognitive load. Pick a few tools from this list, integrate them into your workflow, and gradually expand your toolkit as you identify more automation opportunities.