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

64 lines
1.9 KiB
Markdown

---
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