Skip to content

Repository files navigation

Dotfiles

Shell Lint

Opinionated workstation + Codespaces bootstrap.

Features

  • Idempotent install.sh with:
    • 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-loop Copilot skill
  • Shell linting and tracked GitHub token checks via GitHub Actions + local make lint.

Libraries and Packages

Shell & Terminal

  • Oh My Zsh - Zsh framework for managing configuration
  • Spaceship Prompt - Minimalistic and powerful Zsh prompt
  • tmux - Terminal multiplexer
  • fzf - Command-line fuzzy finder

Editors

  • Neovim - Hyperextensible Vim-based text editor

CLI Utilities

  • 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

Fonts

Development Tools

  • ShellCheck - Static analysis tool for shell scripts

Oh My Zsh Plugins

  • git - Git aliases and functions
  • alias-finder - Find existing aliases
  • kubectl - Kubectl autocompletion and aliases
  • docker - Docker autocompletion and aliases
  • gh - GitHub CLI autocompletion

Setup Instructions

Prerequisites

  • macOS: Homebrew installed
  • Linux/Codespaces: apt-get package manager available
  • Both: git, curl, and zsh installed

Installation

  1. Clone the repository:

    git clone https://github.com/JoannaaKL/dotfiles.git
    cd dotfiles
  2. Run the install script:

    ./install.sh
  3. Start a new shell or source the configuration:

    source ~/.zshrc

What the Install Script Does

The install.sh script performs the following actions:

  1. Preflight checks - Verifies required tools (git, curl) are available
  2. Environment-specific setup:
    • Codespaces: Installs tmux, bat, ripgrep, neovim, and shellcheck via apt-get
    • Local (macOS): Installs the same tools via Homebrew
  3. Symlinks dotfiles - Creates symlinks for configuration files (.gitconfig, .zshrc, .tmux.conf, etc.) with automatic backup of existing files
  4. Installs fonts - Downloads and installs Meslo Nerd Font
  5. Sets up Spaceship theme - Clones and configures the Spaceship Zsh theme
  6. Links PR review tools - Installs the pr-review, pr-address-feedback, and pr-review-loop command symlinks, their shared library, and the multi-model-pr-loop skill

Manual Setup (Optional)

If you prefer to install components individually:

Multi-model PR Review Loop

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.

Repository Checks

Run locally:

make lint

The CI workflow runs on every push and pull request. It checks every tracked Bash script and rejects recognized GitHub token formats in tracked files.

Codespaces SSH Config Export

./export_codespace_cfg

This inserts/updates a managed block in ~/.ssh/config between markers:

# >>> codespaces (managed) >>>
# <<< codespaces (managed) <<<

Cleaning Shutdown Codespaces

Preview:

./clean-codespaces.sh --dry-run

Execute deletions:

./clean-codespaces.sh

Future Ideas

  • Brewfile / apt manifest abstraction
  • Tmux plugin manager integration
  • Advanced Neovim config module

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages