Opinionated workstation + Codespaces bootstrap.
- Idempotent
install.shwith:- Environment detection (local vs Codespaces)
- Neovim install + minimal config bootstrap
- Spaceship ZSH theme setup
- Meslo Nerd Font install (skips if present)
- Safe dotfile symlinking (backs up existing files)
- Managed Codespaces SSH config export (
export_codespace_cfg) - Codespace cleanup utility (
clean-codespaces.sh --dry-run) - Custom multi-model PR review/fix loop with the
multi-model-pr-loopCopilot skill - Shell linting and tracked GitHub token checks via GitHub Actions + local
make lint.
- Oh My Zsh - Zsh framework for managing configuration
- Spaceship Prompt - Minimalistic and powerful Zsh prompt
- tmux - Terminal multiplexer
- fzf - Command-line fuzzy finder
- Neovim - Hyperextensible Vim-based text editor
- bat - A cat clone with syntax highlighting
- ripgrep - Fast line-oriented search tool
- GitHub CLI - GitHub's official command-line tool
- GitHub Copilot CLI - Standalone coding agent used by the PR review commands
- Meslo Nerd Font - Patched font with icons from Nerd Fonts
- ShellCheck - Static analysis tool for shell scripts
- git - Git aliases and functions
- alias-finder - Find existing aliases
- kubectl - Kubectl autocompletion and aliases
- docker - Docker autocompletion and aliases
- gh - GitHub CLI autocompletion
- macOS: Homebrew installed
- Linux/Codespaces:
apt-getpackage manager available - Both:
git,curl, andzshinstalled
-
Clone the repository:
git clone https://github.com/JoannaaKL/dotfiles.git cd dotfiles -
Run the install script:
./install.sh
-
Start a new shell or source the configuration:
source ~/.zshrc
The install.sh script performs the following actions:
- Preflight checks - Verifies required tools (
git,curl) are available - Environment-specific setup:
- Codespaces: Installs
tmux,bat,ripgrep,neovim, andshellcheckviaapt-get - Local (macOS): Installs the same tools via Homebrew
- Codespaces: Installs
- Symlinks dotfiles - Creates symlinks for configuration files (
.gitconfig,.zshrc,.tmux.conf, etc.) with automatic backup of existing files - Installs fonts - Downloads and installs Meslo Nerd Font
- Sets up Spaceship theme - Clones and configures the Spaceship Zsh theme
- Links PR review tools - Installs the
pr-review,pr-address-feedback, andpr-review-loopcommand symlinks, their shared library, and themulti-model-pr-loopskill
If you prefer to install components individually:
- Oh My Zsh: Follow the installation guide
- Spaceship Prompt: See the installation instructions
- Nerd Fonts: Download from Nerd Fonts releases
The custom multi-model-pr-loop skill runs repeated review/fix rounds with two distinct Copilot model IDs per round. It is separate from the GitHub Copilot app's built-in PR review.
In a new app session, say:
Use the multi-model-pr-loop skill on <PR URL>
The shell command keeps its original name:
export PATH="$HOME/.local/bin:/opt/homebrew/bin:$PATH"
pr-review-loop <pr-url> [max-iters]Install the standalone copilot CLI separately and authenticate with
copilot login and gh auth login. Node.js, git, and jq must also be on PATH.
The old gh copilot extension is not a substitute for the standalone CLI.
The loop uses a blobless temporary checkout and stops at PASS or the iteration
cap, which defaults to 6. Checkouts with fixes are kept because the commits are
not pushed. Review-only checkouts can be removed automatically by passing an
explicit output path to pr-review. No GitHub review is posted.
As of 2026-09-07, the default pool contains 19 public model IDs from the
authenticated Copilot CLI catalog, including GPT-6 Astra. auto and
internal-only models are excluded. This is a snapshot, not automatic model
discovery; availability depends on the subscription and organization policies.
See the PR review commands guide for the full model pool, custom model overrides, review-only and fix-only commands, and exit codes.
Run locally:
make lintThe CI workflow runs on every push and pull request. It checks every tracked Bash script and rejects recognized GitHub token formats in tracked files.
./export_codespace_cfgThis inserts/updates a managed block in ~/.ssh/config between markers:
# >>> codespaces (managed) >>>
# <<< codespaces (managed) <<<
Preview:
./clean-codespaces.sh --dry-runExecute deletions:
./clean-codespaces.sh- Brewfile / apt manifest abstraction
- Tmux plugin manager integration
- Advanced Neovim config module