Platform: macOS (Apple Silicon)
Purpose: Standardized terminal configuration for React Native, PHP, WordPress, AI Development Tools, and IDE Launchers.
This .zshrc configuration provides:
- PHP / Composer support
- Ruby & CocoaPods support
- Node.js version management (NVM)
- Android SDK support
- Java 17 support for React Native & Gradle
- IDE launchers (VS Code, Cursor, PhpStorm, Windsurf, Antigravity)
- Codex Desktop & CLI integration
- Developer productivity aliases
.zshrc
├── Composer
├── Ruby
├── NVM
├── Android SDK
├── Java
├── IDE Launchers
├── Codex Function
├── Aliases
└── rbenv
Provides access to globally installed Composer packages.
export PATH="$HOME/.composer/vendor/bin:$PATH"composer --versionRequired for:
- CocoaPods
- Fastlane
- Ruby gems
- React Native iOS builds
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"ruby -vAllows switching between multiple Node.js versions.
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \
. "/opt/homebrew/opt/nvm/nvm.sh"
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \
. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"nvm --version
node -v
npm -vRequired for:
- Android Emulator
- adb
- React Native Android builds
export ANDROID_HOME="$HOME/Library/Android/sdk"
export PATH="$PATH:$ANDROID_HOME/emulator"
export PATH="$PATH:$ANDROID_HOME/platform-tools"adb version
emulator -versionRequired by:
- Gradle
- Android Builds
- React Native
export JAVA_HOME="/opt/homebrew/opt/openjdk@17"
export PATH="$JAVA_HOME/bin:$PATH"java -version
javac -versionAI-powered IDE from Codeium.
export PATH="/Users/amr.elghadban/.codeium/windsurf/bin:$PATH"surf .or
windsurf .AI-powered development environment.
export PATH="/Users/amr.elghadban/.antigravity/antigravity/bin:$PATH"antigravity .Standalone IDE launcher.
export PATH="/Users/amr.elghadban/.antigravity-ide/antigravity-ide/bin:$PATH"antigravity-ide .JetBrains PHP IDE launcher.
export PATH="/Applications/PhpStorm.app/Contents/MacOS:$PATH"phpstorm .Custom launcher that supports both:
- Codex Desktop
- Codex CLI
Open current folder in Codex Desktop.
codexcodex .codex app .Run Codex CLI.
codex clicodex cli --helpcodex cli generate# --------------------------------------------------
# Codex smart launcher (Desktop + CLI)
#
# Usage:
# codex → Open Codex Desktop (current dir)
# codex . → Open Codex Desktop (current dir)
# codex app [path] → Open Codex Desktop (optional path)
#
# codex cli → Run Codex CLI (current dir)
# codex cli --help → Codex CLI help
# codex cli . → Codex CLI scoped to dir
#
# Notes:
# - Defaults to Desktop when no mode is provided
# - Desktop and CLI are intentionally separated
# - Avoids conflicts with Codex CLI binary
# --------------------------------------------------
codex() {
local mode="$1"
local target
if [[ "$mode" == "cli" || "$mode" == "app" ]]; then
shift
else
mode="app"
fi
target="${1:-.}"
case "$mode" in
app)
open -a "Codex" "$target"
;;
cli)
if command -v codex-cli >/dev/null 2>&1; then
command codex-cli "$@"
elif command -v codex >/dev/null 2>&1; then
command codex "$@"
else
echo "Codex CLI not found in PATH"
return 1
fi
;;
esac
}alias vs="code"Usage:
vs .alias cr="cursor"Usage:
cr .alias ps="phpstorm"Usage:
ps .alias ws="surf"
alias windsurf="surf"Usage:
ws .or
windsurf .alias ag="antigravity"Usage:
ag .alias zshconfig="mate ~/.zshrc"
alias ohmyzsh="mate ~/.oh-my-zsh"Edit zsh configuration:
zshconfigOpen Oh My Zsh folder:
ohmyzshUsed to manage Ruby versions.
eval "$(rbenv init - zsh)"rbenv versionsRemove duplicate entries:
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"Keep only one copy.
export PATH="/Users/amr.elghadban/.antigravity-ide/antigravity-ide/bin:$PATH"Keep only one copy.
vs .
cr .
ps .
ws .
ag .
codex .node -v
npm -v
ruby -v
java -version
adb version
composer --versionsource ~/.zshrcBefore making changes:
cp ~/.zshrc ~/.zshrc.backupRestore if needed:
cp ~/.zshrc.backup ~/.zshrc
source ~/.zshrc# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
export PATH="$HOME/.composer/vendor/bin:$PATH"
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools
# Use Java 17 for React Native / Gradle
export JAVA_HOME="/opt/homebrew/opt/openjdk@17"
export PATH="$JAVA_HOME/bin:$PATH"
# Added by Windsurf
export PATH="/Users/amr.elghadban/.codeium/windsurf/bin:$PATH"
# Added by Antigravity
export PATH="/Users/amr.elghadban/.antigravity/antigravity/bin:$PATH"
# Added for PhpStorm
export PATH="/Applications/PhpStorm.app/Contents/MacOS:$PATH"
# --------------------------------------------------
# Codex smart launcher (Desktop + CLI)
#
# Usage:
# codex → Open Codex Desktop (current dir)
# codex . → Open Codex Desktop (current dir)
# codex app [path] → Open Codex Desktop (optional path)
#
# codex cli → Run Codex CLI (current dir)
# codex cli --help → Codex CLI help
# codex cli . → Codex CLI scoped to dir
#
# Notes:
# - Defaults to Desktop when no mode is provided
# - Desktop and CLI are intentionally separated
# - Avoids conflicts with Codex CLI binary
# --------------------------------------------------
codex() {
local mode="$1"
local target
# Explicit mode handling
if [[ "$mode" == "cli" || "$mode" == "app" ]]; then
shift
else
mode="app"
fi
target="${1:-.}"
case "$mode" in
app)
open -a "Codex" "$target"
;;
cli)
if command -v codex-cli >/dev/null 2>&1; then
command codex-cli "$@"
elif command -v codex >/dev/null 2>&1; then
# fallback if CLI binary is also named codex
command codex "$@"
else
echo "❌ Codex CLI not found in PATH"
echo "👉 Install with: npm install -g @openai/codex"
return 1
fi
;;
esac
}
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
alias zshconfig="mate ~/.zshrc"
alias ohmyzsh="mate ~/.oh-my-zsh"
# IDE Aliases
alias vs="code"
alias cr="cursor"
alias ps="phpstorm"
alias ws="surf"
alias windsurf="surf"
alias ag="antigravity"
#alias codex='open -a "Codex"' # <<<< example for open app via terminal command
eval "$(rbenv init - zsh)"
# Added by Antigravity IDE
export PATH="/Users/amr.elghadban/.antigravity-ide/antigravity-ide/bin:$PATH"
This configuration is optimized for:
- React Native Development
- PHP Development
- WordPress Projects
- Android Builds
- iOS Builds (CocoaPods)
- AI-Assisted Development
- Codex
- Windsurf
- Antigravity
- Cursor
- JetBrains PhpStorm Workflow
Maintained by: Amr Ahmed Elghadban