pbs-projects/Tech/Projects/cli-standardization.md

1.9 KiB

project type status path tags created updated
cli-standardization project-plan active Tech/Projects
pbs
tech-setup
automation
2026-04-23 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 | source && fisher install jorgebucaran/fisher end

...sent from Jenny & Travis