This guide covers common issues and their solutions.
Run these commands first to understand your system state:
# Visual dashboard
blackdot status
# Comprehensive health check
blackdot doctor
# Check with auto-fix
blackdot doctor --fix
# Compare local vs vault
blackdot driftSymptom: Install script fails with permission errors.
Solution:
# Don't use sudo for the install script
curl -fsSL https://raw.githubusercontent.com/blackwell-systems/blackdot/main/install.sh | bash
# If you need to fix permissions afterward
blackdot doctor --fixSymptom: Install prompts for vault but you don't use one.
Solution:
# Option 1: Skip vault during install
./install.sh --minimal
# Option 2: Run setup wizard and choose "skip" when prompted for vault
./install.sh
blackdot setup # Choose "Skip" when asked about vault backendSymptom: brew: command not found after install.
Solution:
# Homebrew installs to different locations on Intel vs Apple Silicon
# For Apple Silicon (M1/M2/M3):
eval "$(/opt/homebrew/bin/brew shellenv)"
# For Intel:
eval "$(/usr/local/bin/brew shellenv)"
# Then re-run bootstrap
./bootstrap/bootstrap-mac.shSymptom: blackdot: The term 'blackdot' is not recognized after install.
Solution:
# Check if module is imported
Get-Module -Name Blackdot
# If not, import it manually
Import-Module $HOME\workspace\blackdot\powershell\Blackdot.psm1
# Add to your PowerShell profile for auto-loading
Add-Content $PROFILE "`nImport-Module $HOME\workspace\blackdot\powershell\Blackdot.psm1"
# Restart PowerShellSymptom: Missing icons, garbled characters, or plain prompt.
Solution:
# Install a Nerd Font
brew install --cask font-meslo-lg-nerd-font
# Configure your terminal to use "MesloLGS NF" font
# Then restart your terminalSymptom: blackdot command doesn't work.
Solution:
# Ensure zshrc is linked
ls -la ~/.zshrc
# Should show: .zshrc -> ~/workspace/blackdot/zsh/.zshrc
# If not linked, re-run bootstrap
./bootstrap/bootstrap-mac.sh # or bootstrap-linux.sh
# Or manually link
ln -sf ~/workspace/blackdot/zsh/.zshrc ~/.zshrc
# Reload shell
exec zshSymptom: Tab completion for blackdot command doesn't work.
Zsh Solution:
# Check if completions directory is in fpath
echo $fpath | tr ' ' '\n' | grep completions
# Rebuild completion cache
rm -f ~/.zcompdump*
exec zsh
# Verify completion file exists
ls ~/workspace/blackdot/zsh/completions/_blackdotPowerShell Solution:
# Reload the module to refresh completions
Remove-Module Blackdot -ErrorAction SilentlyContinue
Import-Module Blackdot
# Check if argument completers are registered
Get-ArgumentCompleter -Native | Where-Object { $_.CommandName -eq 'blackdot' }Symptom: Aliases or functions missing. New tmux/terminal panes start with a bare zsh prompt (no Powerlevel10k, no aliases, no blackdot command), but source ~/.zshrc fixes it.
Most common cause: The zshrc loader uses ${(%):-%x} to find the zsh.d/ module directory. If this was changed to $0, modules silently fail to load because $0 is zsh/-zsh during automatic startup (not the file path). The (N) glob qualifier swallows the error.
Solution:
- Check the loader line in
zsh/zshrc:
grep ZSHRC_DIR ~/workspace/blackdot/zsh/zshrc
# Should be: ZSHRC_DIR="${${(%):-%x}:A:h}"
# NOT: ZSHRC_DIR="${0:A:h}"- If the line uses
$0, fix it:
# In zsh/zshrc, replace:
# ZSHRC_DIR="${0:A:h}"
# with:
# ZSHRC_DIR="${${(%):-%x}:A:h}"- General checks:
# Verify symlink
ls -la ~/.zshrc
# Check for syntax errors
for f in ~/workspace/blackdot/zsh/zsh.d/*.zsh; do
zsh -n "$f" || echo "Error in $f"
doneSymptom: Vault commands fail with session errors.
Solution:
# Log in first (if needed)
bw login
# Unlock and export session
export BW_SESSION="$(bw unlock --raw)"
# Verify
bw unlock --check --session "$BW_SESSION"Symptom: blackdot vault pull can't find items.
Solution:
# List available items
blackdot vault list
# Check expected item names
# Items should be named: blackdot-SSH-Config, blackdot-AWS-Config, etc.
# Verify items exist in vault
blackdot vault list
# Create missing items
blackdot vault createSymptom: blackdot drift shows local differs from vault.
Solution:
# Preview what would change
blackdot diff --restore # See what restore would do
blackdot diff --sync # See what sync would do
# Best: Smart sync auto-detects direction for each file
blackdot sync # Auto push/pull based on what changed
blackdot sync --dry-run # Preview first
# Or choose direction manually:
blackdot vault pull # Pull vault → local (overwrites local)
blackdot vault push --all # Push local → vault (overwrites vault)Symptom: Vault CLI not installed.
Solution:
macOS:
brew install bitwarden-cli # Bitwarden
brew install --cask 1password-cli # 1Password
brew install pass # passLinux:
npm install -g @bitwarden/cli # Bitwarden
sudo apt install pass # pass
# See 1Password docs for LinuxWindows (PowerShell):
winget install Bitwarden.CLI # Bitwarden
winget install AgileBits.1Password.CLI # 1Password
# pass not natively supported on WindowsSymptom: SSH says "Permissions too open" or "bad permissions".
Solution:
# Fix SSH directory
chmod 700 ~/.ssh
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/id_*
chmod 644 ~/.ssh/*.pub
# Or use doctor
blackdot doctor --fixSymptom: AWS CLI warns about credential file permissions.
Solution:
chmod 600 ~/.aws/credentials
chmod 600 ~/.aws/config
# Or use doctor
blackdot doctor --fixSymptom: blackdot backup restore says no backups exist.
Solution:
# Check backup directory
ls -la ~/.blackdot-backups/
# Create a backup first
blackdot backup
# List available backups
blackdot backup --listSymptom: Need to restore a specific backup.
Solution:
# List backups with dates
blackdot backup --list
# Interactive restore (shows selection)
blackdot backup restore
# Manual restore
tar -xzf ~/.blackdot-backups/backup-YYYYMMDD-HHMMSS.tar.gz -C /Symptom: PowerShell says "running scripts is disabled on this system"
Solution:
# Check current policy
Get-ExecutionPolicy
# Set to allow local scripts (run as Administrator)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Retry import
Import-Module BlackdotSymptom: Import-Module Blackdot fails with "module not found"
Solution:
# Add to PSModulePath
$modulePath = "$HOME\workspace\blackdot\powershell"
$env:PSModulePath = "$modulePath;$env:PSModulePath"
# Or copy to standard module location
Copy-Item -Recurse $modulePath\* $HOME\Documents\PowerShell\Modules\Blackdot\Symptom: Shell takes seconds to start.
Solution:
# Disable Windows PATH integration
# Add to /etc/wsl.conf:
[interop]
appendWindowsPath = false
# Restart WSL
wsl --shutdownSymptom: Can't access files from Lima VM.
Solution:
# Check mount
limactl shell default mount
# Verify workspace symlink
ls -la /workspace
# Re-run bootstrap if needed
./bootstrap/bootstrap-linux.shSymptom: Container loses changes on restart.
Solution:
# Mount blackdot as volume
docker run -v ~/workspace/blackdot:/root/workspace/blackdot ...
# Or use the development image
docker build -t blackdot-dev .
docker run -it blackdot-devSymptom: blackdot upgrade fails with git errors.
Solution:
cd ~/workspace/blackdot
# Check status
git status
# Stash local changes
git stash
# Pull updates
git pull origin main
# Re-apply changes
git stash pop
# Re-run bootstrap
./bootstrap/bootstrap-mac.sh # or bootstrap-linux.shSymptom: New features not available after upgrade.
Zsh Solution:
# Ensure bootstrap ran
./bootstrap/bootstrap-mac.sh # or bootstrap-linux.sh
# Reload shell
exec zsh
# Check version
head -5 ~/workspace/blackdot/README.mdPowerShell Solution:
# Pull latest changes
cd $HOME\workspace\blackdot
git pull
# Reload the module
Remove-Module Blackdot -ErrorAction SilentlyContinue
Import-Module .\powershell\Blackdot.psm1
# Check status
blackdot status-
Run full diagnostics:
blackdot doctor blackdot status
-
Check logs:
# Installation metrics cat ~/.blackdot-metrics.jsonl | tail -20
-
Reset to clean state:
# Backup first! blackdot backup # Uninstall blackdot uninstall --dry-run # Preview blackdot uninstall # Execute # Reinstall curl -fsSL https://raw.githubusercontent.com/blackwell-systems/blackdot/main/install.sh | bash
-
Report an issue:
- Open GitHub Issue
- Include output of
blackdot doctor - Include your OS version and shell version