{"id":47619995,"url":"https://github.com/skaisser/devterm","last_synced_at":"2026-04-01T21:59:14.353Z","repository":{"id":341985228,"uuid":"1172308285","full_name":"skaisser/devterm","owner":"skaisser","description":"One command to set up the perfect developer terminal on macOS. Smart per-window themes, Oh My Posh prompt, 50+ aliases, SSH danger mode, and a category picker for your stack.","archived":false,"fork":false,"pushed_at":"2026-03-26T21:43:44.000Z","size":999,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T09:32:57.323Z","etag":null,"topics":["apple-silicon","cli","dev-environment","developer-tools","dotfiles","homebrew","iterm2","laravel","macos","macos-setup","nerd-fonts","oh-my-posh","productivity","shell","shell-script","terminal","terminal-setup","zsh","zsh-plugins","zsh-theme"],"latest_commit_sha":null,"homepage":"https://devterm.skaisser.dev","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skaisser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-04T06:51:13.000Z","updated_at":"2026-03-26T21:43:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/skaisser/devterm","commit_stats":null,"previous_names":["skaisser/devterm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/skaisser/devterm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skaisser%2Fdevterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skaisser%2Fdevterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skaisser%2Fdevterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skaisser%2Fdevterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skaisser","download_url":"https://codeload.github.com/skaisser/devterm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skaisser%2Fdevterm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-silicon","cli","dev-environment","developer-tools","dotfiles","homebrew","iterm2","laravel","macos","macos-setup","nerd-fonts","oh-my-posh","productivity","shell","shell-script","terminal","terminal-setup","zsh","zsh-plugins","zsh-theme"],"created_at":"2026-04-01T21:59:13.688Z","updated_at":"2026-04-01T21:59:14.345Z","avatar_url":"https://github.com/skaisser.png","language":"Shell","readme":"# DevTerm\n\n### One command. Fresh Mac to full dev machine.\n\nNo setup guides. No dotfile rabbit holes. One command installs iTerm2, configures your font, prompt, colors, 50+ aliases, AI tools, and every dev essential — then gets out of your way.\n\n[![Install](https://img.shields.io/badge/Install-bash_%3C(curl_devterm.skaisser.dev)-blue?style=for-the-badge)](#install) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-green?style=for-the-badge)](LICENSE) [![macOS](https://img.shields.io/badge/macOS-12%2B-lightgrey?style=for-the-badge\u0026logo=apple)](https://github.com/skaisser/devterm) [![Shell](https://img.shields.io/badge/Shell-Zsh-informational?style=for-the-badge\u0026logo=gnu-bash)](https://github.com/skaisser/devterm)\n\n[![GitHub stars](https://img.shields.io/github/stars/skaisser/devterm?style=social)](https://github.com/skaisser/devterm/stargazers) [![GitHub forks](https://img.shields.io/github/forks/skaisser/devterm?style=social)](https://github.com/skaisser/devterm/network/members) [![GitHub issues](https://img.shields.io/github/issues/skaisser/devterm)](https://github.com/skaisser/devterm/issues) [![GitHub last commit](https://img.shields.io/github/last-commit/skaisser/devterm)](https://github.com/skaisser/devterm/commits/main) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/skaisser/devterm/pulls)\n\n\u003e macOS 12+ · Apple Silicon + Intel · Works from any terminal\n\n[:brazil: Leia em Portugues](README.pt-BR.md)\n\n![devterm installer with gradient color banner](imgs/dev-terminal-installer.png)\n\n---\n\n## Why DevTerm?\n\nSetting up a new Mac for development means hours of installing tools, configuring shells, picking fonts, and wiring plugins together. DevTerm does all of that in one command:\n\n- **Smart per-window themes** — open 4 terminals, always know which is which\n- **SSH danger mode** — window goes red when you're on a remote server\n- **Oh My Posh prompt** — git branch, PHP/Node versions, time — only when relevant\n- **50+ aliases** — git, Laravel, navigation, system — all pre-configured\n- **Idempotent installer** — run it again anytime, it only installs what's missing\n- **Zero dependencies** — works on a fresh Mac straight out of the box\n\n---\n\n## Install\n\n### Step 1: Open Terminal\n\nOpen **Terminal** on your Mac. You can find it in:\n- `Applications \u003e Utilities \u003e Terminal`\n- Or press `Cmd + Space`, type **Terminal**, and hit Enter\n\n### Step 2: Copy and paste this command\n\n```bash\nbash \u003c(curl -fsSL devterm.skaisser.dev)\n```\n\nCopy the line above, paste it into Terminal, and press **Enter**.\n\n### Step 3: Follow the wizard\n\n1. It will ask for your **Mac password** (you won't see it as you type — that's normal, just type and press Enter)\n2. A setup wizard appears — press **Enter** to install everything (recommended), or type **n** to pick categories one by one\n3. Wait for it to finish — first time takes ~15 minutes on a fresh Mac, much faster on re-runs\n\n### Step 4: Open iTerm2\n\nEverything is configured automatically — font, colors, appearance, and system hotkey.\n\n1. Open **iTerm2** from Applications (or press **Cmd+`** from anywhere)\n2. That's it. Everything works out of the box\n\n\u003e The devterm profile (MesloLGS Nerd Font 18, skaisser colors, Minimal appearance, unlimited scrollback) is set as default automatically.\n\n### Other ways to install\n\n```bash\n# Clone and run locally (if you already have git)\ngit clone https://github.com/skaisser/devterm \u0026\u0026 cd devterm \u0026\u0026 ./install.sh\n\n# Check what's installed without changing anything\n./install.sh --check\n\n# Remove devterm and restore your previous .zshrc\n./install.sh --uninstall\n```\n\n\u003e **First time on a fresh Mac?** Xcode Command Line Tools and Homebrew install automatically. The installer handles everything — no manual steps needed.\n\n---\n\n## Features\n\n### The Smart Theme\n\nEach terminal window gets a unique dark background based on its TTY — no config needed. Open multiple windows and always know which is which at a glance.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"imgs/navy-theme.png\" alt=\"Navy theme\"/\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"imgs/green-theme.png\" alt=\"Green theme\"/\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cimg src=\"imgs/violet-theme.png\" alt=\"Violet theme\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003eIndigo \u003ccode\u003e#1a1a38\u003c/code\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eForest green \u003ccode\u003e#1a2a1a\u003c/code\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003eDeep violet \u003ccode\u003e#261426\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n| Window | Color                  |\n| ------ | ---------------------- |\n| 1      | Deep navy `#1e2040`    |\n| 2      | Forest green `#1a2a1a` |\n| 3      | Burgundy `#2a1818`     |\n| 4      | Indigo `#1a1a38`       |\n| 5      | Teal `#0f2828`         |\n| 6      | Dark plum `#1a0e2a`    |\n| 7      | Deep violet `#261426`  |\n| 8      | Emerald `#0e2a1a`      |\n\n### SSH Danger Mode\n\n```bash\nssh user@server  # entire window goes red so you never forget you're on production\n```\n\n![SSH terminal with full red background](imgs/ssh-terminal-red.png)\n\nRestores to its original color automatically when the session ends.\n\n### The Prompt\n\n![Terminal prompt showing PHP version, Node version, time and git branch](imgs/dev-terminal-php-node-time-branch.png)\n\n```\n myapp   feat/login ~2 +1 ↑1      8.3.0   20.11.0   03:14:22\n\u003e\u003e\n```\n\n| Segment         | Description                                                        |\n| --------------- | ------------------------------------------------------------------ |\n| **Path**        | Shortened: `~/Sites/myapp` → `myapp`                               |\n| **Git**         | Branch, working (`~`), staged (`+`), ahead (`↑`), behind (`↓`)     |\n| **PHP**         | Only shown inside PHP projects                                     |\n| **Node**        | Only shown when `package.json` is present                          |\n| **Go / Python** | Shown when relevant                                                |\n| **Time**        | Right-aligned                                                      |\n\n### Claude Code Statusline\n\n![Claude Code statusline showing model, context bar, tokens and folder](imgs/claude-code-status-line.png)\n\nLive context directly in your prompt — model, visual progress bar (green to yellow to red), token count, current project.\n\n---\n\n## What Gets Installed\n\nThe installer shows a **category picker** — press Enter to install everything (recommended) or type **n** to choose individually. Core tools always install no matter what.\n\n### Core (always installed)\n\n| Tool                   | What it does                                                                                         |\n| ---------------------- | ---------------------------------------------------------------------------------------------------- |\n| **iTerm2**             | Modern terminal emulator for macOS — supports smart themes, per-window colors, and SSH danger mode.  |\n| **Nerd Fonts**         | MesloLGS NF + Fira Code NF — patched fonts with icons required for the prompt and file listings.     |\n| **Oh My Posh + theme** | Prompt engine with the custom skaisser theme — shows path, git branch, language versions, and time.  |\n| **zoxide**             | Smart `cd` replacement — learns your most-used directories. Type `z myapp` to jump anywhere.         |\n| **zshrc config**       | Complete shell configuration with 50+ aliases, functions, smart window colors, and plugin sourcing. Your existing `.zshrc` is backed up automatically. |\n\n### Optional categories\n\nAll pre-selected by default — just press Enter to install everything.\n\n| Category | Tools |\n| -------- | ----- |\n| **Editor** | VS Code (desktop app + `code` CLI) |\n| **CLI Tools** | eza (modern `ls`), fzf (fuzzy finder), gh (GitHub CLI), htop, lazygit, wget |\n| **Zsh Plugins** | zsh-completions, zsh-autosuggestions, fast-syntax-highlighting, zsh-history-substring-search |\n| **Claude Code** | AI coding assistant + live statusline |\n| **PHP / Laravel** | Composer, Laravel Herd (serves `project.test` with HTTPS, includes PHP + MySQL) |\n| **JavaScript** | nvm, Node 22 + 18, Bun, Yarn (skipped if Laravel Herd manages Node) |\n| **DevOps** | rclone (cloud file sync — S3, Google Drive, Backblaze, 70+ providers) |\n| **Extras** | tmux (terminal multiplexer), cmatrix (Matrix rain) |\n\n---\n\n## Quick Reference\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eNavigation\u003c/strong\u003e\u003c/summary\u003e\n\n| Command          |                          |\n| ---------------- | ------------------------ |\n| `..` `..2` `..3` | Go up 1–3 levels         |\n| `-`              | Previous directory       |\n| `sites`          | Jump to `~/Sites`        |\n| `z myapp`        | Jump anywhere (frecency) |\n| `mkcd mydir`     | Create + enter directory |\n| `cl`             | Clear                    |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGit\u003c/strong\u003e\u003c/summary\u003e\n\n| Command        |                                           |\n| -------------- | ----------------------------------------- |\n| `gst`          | `git status`                              |\n| `gd` / `gds`   | diff / staged diff                        |\n| `gco` / `gcb`  | checkout / new branch                     |\n| `gadd`         | Interactive hunk staging                  |\n| `gp` / `gpush` | pull / push                               |\n| `glog`         | Pretty graph log                          |\n| `lazygit`      | Full TUI — stage hunks, resolve conflicts |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eFile Listing\u003c/strong\u003e\u003c/summary\u003e\n\n| Command       |                              |\n| ------------- | ---------------------------- |\n| `ls`          | Icons + git status           |\n| `l` / `ll`    | Long list / with permissions |\n| `lt` / `la`   | Tree 2 levels / full tree    |\n| `dud` / `duf` | Disk usage                   |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ePHP / Laravel\u003c/strong\u003e\u003c/summary\u003e\n\n| Command      |                              |\n| ------------ | ---------------------------- |\n| `art`        | `php artisan`                |\n| `pt` / `ptp` | Pest / Pest parallel         |\n| `tc` / `tcq` | Coverage / coverage parallel |\n| `cda`        | `composer dump-autoload`     |\n| `hfix`       | Restart Laravel Herd         |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eClaude Code\u003c/strong\u003e\u003c/summary\u003e\n\n| Command  |                         |\n| -------- | ----------------------- |\n| `claude` | Start Claude Code       |\n| `claudd` | Skip permissions prompt |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eSystem\u003c/strong\u003e\u003c/summary\u003e\n\n| Command                 |                               |\n| ----------------------- | ----------------------------- |\n| `ports`                 | All listening ports           |\n| `psg nginx`             | Search running processes      |\n| `killp nginx`           | Kill by name (with confirm)   |\n| `memusage` / `cpuusage` | Top consumers                 |\n| `extract file.tar.gz`   | Extract any archive           |\n| `weather \"Paris\"`       | Current weather               |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eFuzzy Finder (fzf)\u003c/strong\u003e\u003c/summary\u003e\n\n| Shortcut |                        |\n| -------- | ---------------------- |\n| `Ctrl+R` | Search command history |\n| `Ctrl+T` | Fuzzy-search files     |\n| `Alt+C`  | cd into any directory  |\n\n\u003c/details\u003e\n\n---\n\n## Customization\n\n### Change window colors\n\nEdit `bg_colors` in `~/.zshrc`:\n\n```bash\nlocal bg_colors=(\n    \"1e2040\"    # window 1 — any hex color\n    \"1a2a1a\"    # window 2\n    ...\n)\n```\n\n### Machine-specific config\n\n`~/.zshrc.local` is created automatically on first install with commented-out examples.\nIt's sourced at the end of `.zshrc` and never overwritten by reinstalls.\n\nUse it for: API keys, work aliases, SSH agent, Docker shortcuts, custom PATH entries.\n\n---\n\n## Requirements\n\n- macOS 12+ (Monterey or later)\n- Apple Silicon or Intel\n- Internet connection\n- Any terminal (Terminal.app works — iTerm2 installs automatically)\n\nEverything else installs automatically. No manual prerequisites.\n\n---\n\n## Contributing\n\nContributions are welcome! Feel free to open issues or submit pull requests.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feat/my-feature`)\n3. Commit your changes\n4. Push to the branch (`git push origin feat/my-feature`)\n5. Open a Pull Request\n\n---\n\n## License\n\n[Apache 2.0](LICENSE) — use freely, share openly.\n\n---\n\nMade by [Shirleyson Kaisser](https://github.com/skaisser)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskaisser%2Fdevterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskaisser%2Fdevterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskaisser%2Fdevterm/lists"}