These are my dotfiles. Take anything you want, but at your own risk.
It mainly targets macOS systems, but it works on at least Ubuntu as well.
Warning The Linux is not working in the moment, beacuse the $HOME will change to /root
- Minimal efforts to install everything, using a Makefile
- Mostly based around Homebrew, Cask, ASDF, NPM, latest Bash + GNU Utils
- Fast and colored prompt
- Updated macOS defaults (Dock, Systen)
- Interactive macOS setup now prompts for computer name (with fallback and env override)
- GitHub Copilot custom instructions, custom agent files, and chat modes (plan, agent, review, test, document) for enhanced AI assistance
- The installation and runcom setup is tested on real Ubuntu and macOS machines using a GitHub Action
- Post install
dotfilescommand line to restall, update packages, etc.
- Homebrew (packages: Brewfile)
- Homebrew Cask (packages: Caskfile)
- asdf (packages: .tool-versions)
- Vs Code (packages: VSCodefile)
- Latest Git, Bash 4, GNU coreutils, curl
Flexible AI customization with selectable workspace instruction files, task-specific chat modes, and optional global agent/persona linking.
Loaded from:
.github/copilot-instructions.md(always loaded).github/instructions/(your active subset)
Selection source (catalog) is config/copilot/instructions/. The make copilot target invokes the interactive selector (bin/copilot-select).
Interactive selection:
make copilot # shows list; enter numbers or filenamesNon-interactive (indexes):
COPILOT_INSTRUCTIONS="1,3" make copilotNon-interactive (filenames):
COPILOT_INSTRUCTIONS="shell-scripts.instructions.md,documentation.instructions.md" make copilotBehavior: Only the selected files are copied (added/overwritten) into .github/instructions/; existing instruction files not in the selection are preserved (non‑destructive update).
Located in .github/chatmodes/:
agent.chatmode.md– Implementation & handoffsplan.chatmode.md– Planning only, no editsreview.chatmode.md– Code quality & security reviewtest.chatmode.md– Test case generation (bats focus)document.chatmode.md– Documentation generation
Make them available in all VS Code (Insiders) workspaces:
make copilot-globalThis symlinks files from config/copilot/{instructions,chatmodes,agents} into the user prompts directory. Omit if you want per‑project isolation only.
Add custom personas:
echo "# My reviewer" > config/copilot/agents/security.agent.md
make copilot-globalmake copilot # choose/update active instructions
dotfiles copilot # inspect workspace Copilot status
COPILOT_INSTRUCTIONS="1,3" make copilot # scripted update
make copilot-global # (optional) enable globallyOn a sparkling fresh installation of macOS:
sudo softwareupdate -i -a
xcode-select --installThe Xcode Command Line Tools includes git and make (not available on stock macOS). Now there are two options:
- Install this repo with
curlavailable:
bash -c "`curl -fsSL https://raw.githubusercontent.com/ntsd/dotfiles/master/remote-install.sh`"This will clone or download, this repo to ~/.dotfiles depending on the availability of git, curl or wget.
- Alternatively, clone manually into the desired location:
git clone https://github.com/ntsd/dotfiles.git ~/.dotfilesUse the Makefile to install everything listed above, and symlink runcom and config (using stow):
cd ~/.dotfiles
COMPUTER_NAME="MyMac" make
# During `make macos` the defaults script will prompt:
# Enter desired computer name [CurrentName] (leave blank to keep):
# You can automate this by providing an environment variable:
# COMPUTER_NAME="MyMac" make macos
# If omitted, existing ComputerName or hostname is used.$ dotfiles help
Usage: dotfiles <command>
Commands:
help This help message
clean Clean up caches (brew)
copilot Show workspace Copilot instruction/chatmode usage
copilot-global Link user-level Copilot prompt files (advanced)
dock Apply macOS Dock settings
macos Apply macOS system defaults
test Run tests
asdf Update asdf global packages
brew Update Homebrew/Cask packages
node Update Node packages
update Update packages and pkg managers (OS, brew, npm)You can put your custom settings, such as Git credentials in the system/.custom file which will be sourced from
.bash_profile automatically. This file is in .gitignore.
Alternatively, you can have an additional, personal dotfiles repo at ~/.extra. The runcom .bash_profile sources all
~/.extra/*.sh files.
Workspace-only:
make copilotGlobal (user-level prompts):
make copilot-globalAdd a custom agent persona:
echo "# Incident responder" > config/copilot/agents/pagerduty.agent.md
make copilot-globalTo script instruction activation in CI (non-interactive):
COPILOT_INSTRUCTIONS="general.instructions.md,markdown.instructions.md" make copilotThis dotfile is fork from @webpro Dotfiles.
Many thanks to the dotfiles community.