Skip to content

mhdiiilham/sebash-duls

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sebash-duls

My terminal setup. One command to go from a fresh Mac to a fully configured dev environment.

Author: Muhammad Ilham — muhammadilham.xyz · hi@muhammadilham.xyz · @mhdiiilham


Quick install

curl -fsSL https://raw.githubusercontent.com/mhdiiilham/sebash-duls/main/install.sh | bash

No need to clone — the script fetches everything it needs from GitHub automatically.

Or run locally if you've already cloned:

git clone https://github.com/mhdiiilham/sebash-duls && cd sebash-duls && bash install.sh

Already installed tools are automatically skipped — safe to run multiple times.

How it works

The installer opens an interactive menu with two modes:

Basic — installs the original curated set (shell tools, Go, apps, dotfiles) in one shot.

Custom — steps through each category one page at a time. Toggle individual tools with space, then press to move to the next category.

  ┌─────────────────────────────────────┐
  │      Terminal config installer      │
  └─────────────────────────────────────┘

  [b]  Basic   — original set (shell, go, apps, dotfiles)
  [c]  Custom  — pick tool by tool, category by category

  [q]  Quit

What's available

Shell Tools

Tool What it does
fzf Fuzzy finder — Ctrl+R history, Ctrl+T file picker
zoxide Smart cd that learns your frequent directories
zsh-autosuggestions Fish-like grey suggestions as you type
zsh-syntax-highlighting Commands turn green (valid) or red (invalid) live
direnv Auto-loads .envrc files per project directory
btop Real-time system monitor
gh GitHub CLI — PRs, issues, cloning from terminal
jq JSON processor
eza Modern ls with colors, icons, git status
bat cat with syntax highlighting
ripgrep Faster greprg
lazygit Terminal UI for git
httpie Human-friendly HTTP client — http GET localhost:8080/
mkcert Local HTTPS certificates in one command
ffmpeg Audio/video processing
imagemagick Image manipulation

Kubernetes & Infra

Tool What it does
kubectl Kubernetes CLI
helm Kubernetes package manager
k9s Terminal UI for Kubernetes clusters
terraform Infrastructure as code

Cloud CLIs

Tool What it does
awscli AWS command line interface
gcloud Google Cloud CLI

Local Databases

Tool What it does
postgresql PostgreSQL database server
redis Redis in-memory data store

Version Managers

Tool What it does
goenv Go version manager
nvm + Node LTS + pnpm Node version manager, LTS Node, fast package manager
uv Fast Python package manager

Go Tools

Tool What it does
golangci-lint Runs 50+ Go linters at once
gopls Official Go language server (LSP)
delve Go debugger
air Live reload for Go apps
mockgen Go mock generator
goose Database migration tool
evans Interactive gRPC client

Apps

App What it does
Ghostty Terminal emulator
Zed Editor
Raycast App launcher, clipboard history, snippets
Rectangle Snap and resize windows with keyboard shortcuts
OrbStack Lightweight Docker Desktop replacement
JetBrains Mono Nerd Font Font used in Ghostty (includes icons for eza)
Postman API testing GUI
TablePlus DB GUI — Postgres, MySQL, Redis, and more
Insomnia REST/GraphQL client
Figma Design tool
Slack Team messaging
Discord Community chat
1Password Password manager
Notion Notes and docs

Setup

Item What it does
Oh My Zsh zsh framework
Config: .zshrc Shell config
Config: .zprofile Login shell config
Config: .zshenv Environment variables
Config: ghostty Ghostty terminal config
Claude CLI Claude AI in the terminal

Shell shortcuts

Shortcut Action
or Alt+Enter Accept autocomplete suggestion
Ctrl+R Fuzzy search command history
Ctrl+T Fuzzy pick a file (inserts path)
Ctrl+Right / Left Jump word by word
Ctrl+Backspace Delete previous word
Home / End Jump to start/end of line
Ctrl+P / N Search history up/down

Aliases

Alias Expands to
ls eza --icons
ll eza -lAF --icons --git
la eza -A --icons
cat bat
lg lazygit
.. cd ..
... cd ../..

After install

# 1. Reload shell
source ~/.zshrc

# 2. Pick a Go version
goenv install 1.23.0
goenv global 1.23.0

# 3. Log in to GitHub CLI
gh auth login

# 4. Log in to Claude
claude

# 5. Launch Raycast and set it as your default launcher
open /Applications/Raycast.app

direnv usage

Add a .envrc to any project and it auto-loads when you cd in:

# .envrc
export DATABASE_URL="postgres://localhost/mydb"
export API_KEY="dev-key-123"
direnv allow   # approve once

Named after @dmtrxw's sebats-duls. In his memory.

About

My macOS terminal setup — one curl command to bootstrap a new Mac

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages