--- project: cli-standardization type: project-plan status: active path: Tech/Projects tags: - pbs - tech-setup - automation created: 2026-04-23 updated: 2026-04-23 --- # CLI Standardization: Fish, Starship & Cross-Node Sync Standardize the terminal experience across the Manjaro dev rig, Proxmox nodes, and Ubuntu NAS. This project moves away from manual "server pet" configuration in favor of an automated, immutable CLI environment. ## Objectives - Deploy Fish 4.5+ and Starship to all primary nodes via Ansible. - Establish a single source of truth for dotfiles using Chezmoi. - Implement the `docker debug` protocol to avoid shell-bloat in containers. ## Phase 1: Host Automation (Ansible) - [ ] Create Ansible role `cli_modern` to install `fish`, `starship`, and `fzf`. - [ ] Add task to set Fish as the default shell for the primary user. - [ ] Deploy role to Proxmox cluster and Ubuntu NAS. ## Phase 2: Dotfile Orchestration (Chezmoi) - [ ] Initialize Git repository for dotfiles. - [ ] Use Chezmoi to manage `~/.config/fish/config.fish` and `starship.toml`. - [ ] Configure `fish_plugins` file for Fisher to handle automated plugin sync. - [ ] Test `chezmoi apply` workflow on Manjaro rig. ## Phase 3: Container Workflow - [ ] Verify `docker-debug` binary availability on nodes. - [ ] Create an alias/function for `ddebug` that defaults to the Fish shell. - [ ] Document the VS Code Dev Container configuration for consistent project-level shells. ## Configuration Snippets ### Base config.fish fish if status is-interactive # Starship Initialization starship init fish | source # Zoxide (Modern cd) zoxide init fish | source end # Ensure Fisher and plugins are synced if not functions -q fisher curl -sL [ https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish](https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish) | source && fisher install jorgebucaran/fisher end ...sent from Jenny & Travis