@sebastienrousseau/dotfiles 0.2.501 → 0.2.503
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +155 -4
- package/LICENSE +21 -1283
- package/README.md +40 -8
- package/docs/CONFIG_STRATEGY.md +124 -0
- package/docs/COPYRIGHT +1 -1
- package/docs/GOVERNANCE.md +98 -0
- package/docs/MAINTAINERS.md +41 -0
- package/docs/OPENCODE.md +127 -0
- package/docs/README.md +2 -0
- package/docs/STRUCTURE.md +102 -0
- package/docs/adr/ADR-011-nushell-tier3-keep.md +2 -2
- package/docs/architecture/AI_COST_OPTIMIZATION.md +143 -0
- package/docs/architecture/REPO_LAYOUT.md +8 -8
- package/docs/archive/MILESTONE_v0.2.493.md +1 -1
- package/docs/index.md +2 -2
- package/docs/interop/POWERSHELL.md +1 -1
- package/docs/manual/00-introduction.md +1 -1
- package/docs/manual/01-concepts/02-trust-model.md +1 -1
- package/docs/manual/03-reference/01-dot-cli.md +63 -45
- package/docs/manual/03-reference/02-config-files.md +2 -2
- package/docs/manual/03-reference/05-feature-flags.md +62 -3
- package/docs/manual/_toc.yml +1 -1
- package/docs/manual/command-index.md +72 -55
- package/docs/manual/index.md +66 -0
- package/docs/operations/CI_COMPOSITES.md +2 -2
- package/docs/operations/COMPLETIONS.md +2 -2
- package/docs/operations/COVERAGE.md +40 -6
- package/docs/operations/HARD_AUDIT_2026.md +631 -0
- package/docs/operations/MAINTENANCE.md +3 -3
- package/docs/operations/MANIFEST.md +127 -0
- package/docs/operations/REGISTRY.md +89 -0
- package/docs/operations/RELEASE_PIPELINE.md +130 -0
- package/docs/operations/RFC_v0_2_503_reorganization.md +280 -0
- package/docs/operations/ROADMAP_2026.md +665 -0
- package/docs/operations/ROADMAP_V0_2_503.md +134 -0
- package/docs/operations/TESTING.md +17 -0
- package/docs/operations/TRACEABILITY.md +9 -3
- package/docs/operations/VERSION_SYNC.md +4 -4
- package/docs/reference/POWERSHELL_PARITY.md +81 -0
- package/docs/registry.json +6 -0
- package/docs/schema/dot-env-v1.json +110 -0
- package/docs/security/CI_EGRESS_ALLOWLIST.md +1 -1
- package/docs/security/CI_PINNING.md +121 -0
- package/docs/security/COMMIT_SIGNING.md +138 -0
- package/docs/security/DEPS_DEV_EXCEPTIONS.md +2 -2
- package/docs/security/DISCLOSURE.md +130 -0
- package/docs/security/FUZZING.md +114 -0
- package/docs/security/INSTALL_VERIFICATION.md +2 -2
- package/docs/security/KEY_ROTATION.md +81 -1
- package/docs/security/POLICY_RELEASES.md +2 -2
- package/docs/security/SCORECARD.md +130 -15
- package/docs/security/SHELL_EXEMPTIONS.md +4 -4
- package/docs/security/VERIFY_RELEASE.md +201 -0
- package/docs/security/security-pubkey.asc +15 -0
- package/install.sh +67 -38
- package/package.json +1 -1
- package/scripts/README.md +123 -0
- package/scripts/ci/check-copyright-headers.sh +4 -93
- package/scripts/ci/check-shell-preamble.sh +4 -103
- package/scripts/ci/guard-gitleaks-checkout.sh +4 -54
- package/scripts/diagnostics/a2a-conformance.sh +4 -4
- package/scripts/diagnostics/alias-governance.sh +1 -1
- package/scripts/diagnostics/aliases-cheatsheet.sh +2 -2
- package/scripts/diagnostics/benchmark.sh +4 -4
- package/scripts/diagnostics/conflicts.sh +2 -2
- package/scripts/diagnostics/doctor-unified.sh +2 -2
- package/scripts/diagnostics/doctor.sh +45 -15
- package/scripts/diagnostics/drift-dashboard.sh +2 -2
- package/scripts/diagnostics/health.sh +4 -4
- package/scripts/diagnostics/history-analysis.sh +2 -2
- package/scripts/diagnostics/mcp-doctor.sh +10 -7
- package/scripts/diagnostics/perf.sh +4 -4
- package/scripts/diagnostics/scorecard.sh +4 -4
- package/scripts/diagnostics/security-score.sh +2 -2
- package/scripts/diagnostics/smoke-test.sh +2 -2
- package/scripts/diagnostics/snapshot.sh +2 -2
- package/scripts/diagnostics/verify.sh +4 -4
- package/scripts/diagnostics/version-locks.sh +2 -2
- package/scripts/diagnostics/workstation-attestation.sh +14 -14
- package/scripts/dot/commands/agent.sh +27 -22
- package/scripts/dot/commands/agents.sh +335 -0
- package/scripts/dot/commands/ai.sh +144 -25
- package/scripts/dot/commands/aliases.sh +10 -8
- package/scripts/dot/commands/appearance.sh +2 -2
- package/scripts/dot/commands/core.sh +12 -6
- package/scripts/dot/commands/diagnostics.sh +5 -5
- package/scripts/dot/commands/env-emit.sh +202 -0
- package/scripts/dot/commands/fleet.sh +290 -14
- package/scripts/dot/commands/init.sh +184 -0
- package/scripts/dot/commands/lint.sh +9 -4
- package/scripts/dot/commands/manual.sh +3 -3
- package/scripts/dot/commands/meta.sh +19 -10
- package/scripts/dot/commands/patterns.sh +2 -2
- package/scripts/dot/commands/registry.sh +263 -0
- package/scripts/dot/commands/restore.sh +4 -4
- package/scripts/dot/commands/secrets.sh +4 -3
- package/scripts/dot/commands/security.sh +2 -2
- package/scripts/dot/commands/tools.sh +62 -4
- package/scripts/dot/powershell/Dot.psm1 +199 -0
- package/scripts/fonts/install-nerd-fonts.sh +2 -2
- package/scripts/git-hooks/pre-commit-audit.sh +2 -2
- package/scripts/git-hooks/pre-push +13 -0
- package/scripts/lib/secrets_provider.sh +32 -6
- package/scripts/ops/ai-setup.sh +1 -1
- package/scripts/ops/bundle.sh +2 -2
- package/scripts/ops/chaos.sh +2 -2
- package/scripts/ops/chezmoi-apply.sh +4 -4
- package/scripts/ops/heal.sh +4 -4
- package/scripts/ops/post-apply-repair.sh +2 -2
- package/scripts/ops/prewarm.sh +2 -2
- package/scripts/ops/release.sh +4 -4
- package/scripts/ops/rollback.sh +18 -4
- package/scripts/ops/setup.sh +2 -2
- package/scripts/qa/check-version-consistency.sh +123 -0
- package/scripts/qa/coverage-baseline.sh +1 -1
- package/scripts/qa/docs-coverage.sh +2 -2
- package/scripts/qa/powershell-contract.ps1 +1 -1
- package/scripts/qa/scorecard-snapshot.sh +127 -0
- package/scripts/security/backup.sh +2 -2
- package/scripts/security/check-disclosure-key-expiry.sh +110 -0
- package/scripts/security/dns-doh.sh +4 -4
- package/scripts/security/encryption-check.sh +4 -4
- package/scripts/security/enforce-policies.sh +2 -2
- package/scripts/security/firewall.sh +4 -4
- package/scripts/security/lock-configs.sh +11 -2
- package/scripts/security/lock-screen.sh +4 -4
- package/scripts/security/manage-secrets.sh +2 -2
- package/scripts/security/ssh-cert.sh +2 -2
- package/scripts/security/telemetry-kill.sh +4 -4
- package/scripts/security/usb-safety.sh +4 -4
- package/scripts/theme/extract-heic-frames.sh +114 -0
- package/scripts/theme/rebuild-themes.sh +8 -1
- package/scripts/theme/switch.sh +13 -6
- package/scripts/theme/wallpaper-sync.sh +297 -93
- package/scripts/tuning/linux.sh +2 -2
- package/scripts/tuning/macos.sh +2 -2
- package/scripts/version-sync.sh +58 -7
- package/dot_config/.module-manifest.json +0 -69
- package/dot_config/ai/identity.md +0 -23
- package/dot_config/ai/patterns/architect.md +0 -16
- package/dot_config/ai/patterns/hardener.md +0 -15
- package/dot_config/ai/patterns/refactor.md +0 -15
- package/dot_config/aider/aider.conf.yml +0 -32
- package/dot_config/alacritty/alacritty.toml.tmpl +0 -55
- package/dot_config/ansible/ansible.cfg +0 -11
- package/dot_config/atuin/config.toml.tmpl +0 -47
- package/dot_config/bat/config +0 -23
- package/dot_config/brave-flags.conf.tmpl +0 -7
- package/dot_config/btop/btop.conf +0 -16
- package/dot_config/btop/themes/tokyonight.theme +0 -34
- package/dot_config/bun/bunfig.toml.tmpl +0 -33
- package/dot_config/claude/mcp_servers.json +0 -20
- package/dot_config/containers/containers.conf +0 -14
- package/dot_config/curl/dot_curlrc +0 -18
- package/dot_config/dlv/config.yml +0 -39
- package/dot_config/docker/config.json +0 -15
- package/dot_config/dotfiles/agent-card.json +0 -29
- package/dot_config/dotfiles/agent-profiles.json +0 -92
- package/dot_config/dotfiles/boot/README.md +0 -13
- package/dot_config/dotfiles/grub/README.md +0 -13
- package/dot_config/dotfiles/lock/README.md +0 -13
- package/dot_config/dotfiles/mcp-lock.json +0 -33
- package/dot_config/dotfiles/mcp-policy.json +0 -52
- package/dot_config/dotfiles/mcp-registry.json +0 -47
- package/dot_config/dotfiles/model-registry.json +0 -20
- package/dot_config/dotfiles/policy-bundles.json +0 -38
- package/dot_config/dotfiles/prompt-registry.json +0 -16
- package/dot_config/dotfiles/versions.env +0 -18
- package/dot_config/duf/duf.conf +0 -6
- package/dot_config/duti/defaults.duti +0 -5
- package/dot_config/emoji/emoji.txt +0 -34
- package/dot_config/environment.d/50-ssh-agent.conf +0 -2
- package/dot_config/environment.d/90-wayland.conf +0 -19
- package/dot_config/fastfetch/config.jsonc +0 -28
- package/dot_config/firefox/user.js.tmpl +0 -58
- package/dot_config/fish/completions/dot-theme-sync.fish.tmpl +0 -9
- package/dot_config/fish/completions/dot.fish.tmpl +0 -115
- package/dot_config/fish/conf.d/000-perf-cache.fish +0 -56
- package/dot_config/fish/conf.d/aliases.fish.tmpl +0 -77
- package/dot_config/fish/conf.d/env.fish.tmpl +0 -48
- package/dot_config/fish/conf.d/functions.fish.tmpl +0 -22
- package/dot_config/fish/conf.d/init.fish.tmpl +0 -172
- package/dot_config/fish/config.fish.tmpl +0 -44
- package/dot_config/fish/fish_plugins +0 -1
- package/dot_config/fish/functions/_.fish +0 -3
- package/dot_config/fish/functions/_cached_eval.fish +0 -131
- package/dot_config/fish/functions/_cached_eval_clear.fish +0 -17
- package/dot_config/fish/functions/als.fish +0 -46
- package/dot_config/fish/functions/bg-upgrade.fish +0 -7
- package/dot_config/fish/functions/c.fish +0 -3
- package/dot_config/fish/functions/cat.fish +0 -9
- package/dot_config/fish/functions/d.fish +0 -7
- package/dot_config/fish/functions/dot.fish +0 -34
- package/dot_config/fish/functions/h.fish +0 -3
- package/dot_config/fish/functions/l.fish +0 -7
- package/dot_config/fish/functions/la.fish +0 -7
- package/dot_config/fish/functions/ll.fish +0 -7
- package/dot_config/fish/functions/log_error.fish +0 -13
- package/dot_config/fish/functions/log_info.fish +0 -13
- package/dot_config/fish/functions/lr.fish +0 -7
- package/dot_config/fish/functions/lra.fish +0 -7
- package/dot_config/fish/functions/ls.fish +0 -7
- package/dot_config/fish/functions/lt.fish +0 -7
- package/dot_config/fish/functions/lta.fish +0 -7
- package/dot_config/fish/functions/notify-run.fish +0 -11
- package/dot_config/fish/functions/q.fish +0 -3
- package/dot_config/fish/functions/silent-run.fish +0 -7
- package/dot_config/fish/functions/yy.fish +0 -8
- package/dot_config/flatpak/flatpak.list +0 -4
- package/dot_config/fontconfig/fonts.conf.tmpl +0 -57
- package/dot_config/foot/foot.ini.tmpl +0 -33
- package/dot_config/fuzzel/fuzzel.ini.tmpl +0 -18
- package/dot_config/fzf/fzf.zsh +0 -48
- package/dot_config/gem/gemrc +0 -9
- package/dot_config/gh/config.yml +0 -12
- package/dot_config/ghostty/config.tmpl +0 -165
- package/dot_config/git/allowed_signers.tmpl +0 -18
- package/dot_config/git/attributes +0 -12
- package/dot_config/git/commit-template +0 -10
- package/dot_config/git/hooks/executable_commit-msg +0 -146
- package/dot_config/git/ignore +0 -27
- package/dot_config/gnupg/gpg-agent.conf +0 -11
- package/dot_config/go/golangci.yml +0 -118
- package/dot_config/go/gopls.json +0 -30
- package/dot_config/goose/config.yaml +0 -29
- package/dot_config/gtk-3.0/gtk.css.tmpl +0 -184
- package/dot_config/gtk-3.0/settings.ini.tmpl +0 -27
- package/dot_config/gtk-4.0/gtk.css.tmpl +0 -252
- package/dot_config/gtk-4.0/settings.ini.tmpl +0 -18
- package/dot_config/htop/htoprc +0 -20
- package/dot_config/inputrc +0 -2
- package/dot_config/ipython/profile_default/ipython_config.py +0 -19
- package/dot_config/just/justfile +0 -122
- package/dot_config/k9s/config.yaml +0 -65
- package/dot_config/k9s/skins/catppuccin-mocha.yaml +0 -116
- package/dot_config/kanshi/config.tmpl +0 -22
- package/dot_config/karabiner/karabiner.json +0 -14
- package/dot_config/kitty/kitty.conf.tmpl +0 -53
- package/dot_config/lazydocker/config.yml +0 -186
- package/dot_config/lazygit/config.yml +0 -35
- package/dot_config/mako/config +0 -47
- package/dot_config/mas/masapps.txt +0 -5
- package/dot_config/micro/settings.json +0 -3
- package/dot_config/mimeapps.list +0 -77
- package/dot_config/minikube/config.json +0 -13
- package/dot_config/mise/config.toml +0 -99
- package/dot_config/mongosh/mongoshrc.js +0 -68
- package/dot_config/mpv/input.conf +0 -47
- package/dot_config/mpv/mpv.conf +0 -47
- package/dot_config/mycli/myclirc +0 -67
- package/dot_config/nano/nanorc +0 -28
- package/dot_config/ncdu/config +0 -12
- package/dot_config/niri/config.kdl.tmpl +0 -327
- package/dot_config/nushell/aliases.nu +0 -18
- package/dot_config/nushell/cached_eval.nu +0 -80
- package/dot_config/nushell/completions.nu.tmpl +0 -52
- package/dot_config/nushell/config.nu.tmpl +0 -86
- package/dot_config/nushell/env.nu.tmpl +0 -102
- package/dot_config/nushell/functions.nu.tmpl +0 -17
- package/dot_config/nvim/init.lua +0 -18
- package/dot_config/nvim/lazy-lock.json +0 -58
- package/dot_config/nvim/lua/config/autocmds.lua +0 -107
- package/dot_config/nvim/lua/config/keymaps.lua +0 -92
- package/dot_config/nvim/lua/config/lazy.lua +0 -44
- package/dot_config/nvim/lua/config/options.lua +0 -49
- package/dot_config/nvim/lua/plugins/ai.lua +0 -75
- package/dot_config/nvim/lua/plugins/coding.lua +0 -216
- package/dot_config/nvim/lua/plugins/completion.lua +0 -60
- package/dot_config/nvim/lua/plugins/dap.lua +0 -412
- package/dot_config/nvim/lua/plugins/editor.lua +0 -55
- package/dot_config/nvim/lua/plugins/git.lua +0 -10
- package/dot_config/nvim/lua/plugins/lsp.lua +0 -156
- package/dot_config/nvim/lua/plugins/markdown.lua +0 -18
- package/dot_config/nvim/lua/plugins/rust.lua +0 -34
- package/dot_config/nvim/lua/plugins/sessions.lua +0 -33
- package/dot_config/nvim/lua/plugins/ui.lua +0 -509
- package/dot_config/paru/paru.conf +0 -10
- package/dot_config/pip/pip.conf.tmpl +0 -32
- package/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl +0 -81
- package/dot_config/pueue/pueue.yml +0 -34
- package/dot_config/pypoetry/config.toml +0 -6
- package/dot_config/pyrightconfig.json +0 -5
- package/dot_config/raycast/README.md +0 -13
- package/dot_config/redis/redisclirc +0 -41
- package/dot_config/ripgrep/ripgreprc +0 -21
- package/dot_config/shell/00-core-paths.sh.tmpl +0 -134
- package/dot_config/shell/05-core-safety.sh +0 -48
- package/dot_config/shell/10-secrets.sh +0 -41
- package/dot_config/shell/40-fzf-defaults.sh.tmpl +0 -17
- package/dot_config/shell/40-ls-colors.sh +0 -49
- package/dot_config/shell/50-logic-functions-core.sh.tmpl +0 -11
- package/dot_config/shell/50-logic-functions.sh.tmpl +0 -11
- package/dot_config/shell/51-logic-functions-extra.sh.tmpl +0 -65
- package/dot_config/shell/90-ux-aliases.sh.tmpl +0 -121
- package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +0 -55
- package/dot_config/shell/Brewfile +0 -207
- package/dot_config/shell/Brewfile.cask +0 -92
- package/dot_config/shell/Brewfile.cli +0 -127
- package/dot_config/shell/README.md +0 -284
- package/dot_config/shell/als_data.txt.tmpl +0 -65
- package/dot_config/shell/custom/auto_ls.zsh +0 -20
- package/dot_config/shell/custom/context_suggest.zsh +0 -68
- package/dot_config/shell/custom/error_analysis.zsh +0 -45
- package/dot_config/sops/dot_sops.yaml +0 -23
- package/dot_config/starship.toml.tmpl +0 -202
- package/dot_config/swaylock/config +0 -43
- package/dot_config/systemd/user/dotfiles-maintenance.service +0 -8
- package/dot_config/systemd/user/dotfiles-maintenance.timer +0 -11
- package/dot_config/systemd/user/pueued.service +0 -12
- package/dot_config/systemd/user/ssh-agent.service +0 -12
- package/dot_config/task/Taskfile.yml +0 -86
- package/dot_config/tflint/tflint.hcl +0 -9
- package/dot_config/tmux/tmux.conf.tmpl +0 -223
- package/dot_config/topgrade.toml.tmpl +0 -54
- package/dot_config/user-dirs.dirs +0 -10
- package/dot_config/vscode/extensions.txt +0 -11
- package/dot_config/vscode/settings.json.tmpl +0 -82
- package/dot_config/waybar/config.jsonc.tmpl +0 -90
- package/dot_config/waybar/style.css.tmpl +0 -211
- package/dot_config/wezterm/wezterm.lua.tmpl +0 -64
- package/dot_config/wget/wgetrc +0 -12
- package/dot_config/xdg-desktop-portal/niri-portals.conf +0 -5
- package/dot_config/yarn/yarnrc.yml +0 -36
- package/dot_config/yazi/keymap.toml +0 -67
- package/dot_config/yazi/theme.toml +0 -102
- package/dot_config/yazi/yazi.toml +0 -40
- package/dot_config/zathura/zathurarc +0 -52
- package/dot_config/zellij/config.kdl.tmpl +0 -79
- package/dot_config/zsh/dot_zprofile +0 -7
- package/dot_config/zsh/dot_zshenv +0 -5
- package/dot_config/zsh/dot_zshrc.tmpl +0 -635
- package/dot_config/zsh/rc.d/00-alias-shims.zsh +0 -99
- package/dot_config/zsh/rc.d/05-ssh-agent.zsh +0 -18
- package/dot_config/zsh/rc.d/10-env.zsh.tmpl +0 -28
- package/dot_config/zsh/rc.d/20-zinit.zsh +0 -65
- package/dot_config/zsh/rc.d/30-options.zsh.tmpl +0 -214
- package/dot_config/zsh/rc.d/40-bell.zsh +0 -20
- package/dot_config/zsh/rc.d/50-login-fortune.zsh +0 -9
- package/dot_config/zsh/rc.d/99-alias-wrapper.zsh +0 -32
- package/dot_local/bin/executable_ai-update +0 -195
- package/dot_local/bin/executable_ai_core +0 -152
- package/dot_local/bin/executable_antigravity +0 -11
- package/dot_local/bin/executable_b64 +0 -84
- package/dot_local/bin/executable_bm +0 -79
- package/dot_local/bin/executable_cb +0 -39
- package/dot_local/bin/executable_dot +0 -596
- package/dot_local/bin/executable_dot-ai +0 -36
- package/dot_local/bin/executable_dot-bootstrap +0 -77
- package/dot_local/bin/executable_dot-launch-or-focus +0 -52
- package/dot_local/bin/executable_dot-load-benchmark +0 -31
- package/dot_local/bin/executable_dot-load-benchmark-pty +0 -77
- package/dot_local/bin/executable_dot-theme-sync +0 -952
- package/dot_local/bin/executable_dot_completion +0 -57
- package/dot_local/bin/executable_dtags +0 -28
- package/dot_local/bin/executable_epoch +0 -67
- package/dot_local/bin/executable_extract +0 -41
- package/dot_local/bin/executable_gbd +0 -52
- package/dot_local/bin/executable_gd +0 -42
- package/dot_local/bin/executable_git-ai-commit +0 -175
- package/dot_local/bin/executable_git-ai-diff +0 -169
- package/dot_local/bin/executable_gl +0 -101
- package/dot_local/bin/executable_hash +0 -161
- package/dot_local/bin/executable_hashsum +0 -160
- package/dot_local/bin/executable_hex +0 -115
- package/dot_local/bin/executable_jsonv +0 -78
- package/dot_local/bin/executable_jwt +0 -94
- package/dot_local/bin/executable_kill-port +0 -75
- package/dot_local/bin/executable_lorem +0 -118
- package/dot_local/bin/executable_mkscript +0 -35
- package/dot_local/bin/executable_monitor +0 -56
- package/dot_local/bin/executable_myip +0 -51
- package/dot_local/bin/executable_notify +0 -24
- package/dot_local/bin/executable_open +0 -38
- package/dot_local/bin/executable_pw +0 -27
- package/dot_local/bin/executable_rec-start +0 -46
- package/dot_local/bin/executable_rec-stop +0 -35
- package/dot_local/bin/executable_regex +0 -132
- package/dot_local/bin/executable_start-niri +0 -8
- package/dot_local/bin/executable_tmux-sessionizer +0 -314
- package/dot_local/bin/executable_tour +0 -177
- package/dot_local/bin/executable_up +0 -23
- package/dot_local/bin/executable_update +0 -142
- package/dot_local/bin/executable_uuid +0 -87
- package/dot_local/bin/executable_win +0 -32
- package/dot_local/bin/executable_yamlv +0 -57
- package/dot_local/share/bash-completion/completions/dot +0 -72
- package/dot_local/share/icons/hicolor/128x128/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/16x16/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/24x24/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/256x256/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/32x32/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/48x48/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/512x512/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/64x64/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/96x96/apps/rousseau.png +0 -0
- package/dot_local/share/icons/hicolor/scalable/apps/rousseau.png +0 -0
- package/dot_local/share/man/man1/dot.1 +0 -149
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_download +0 -64
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_install +0 -18
- package/dot_local/share/mise/plugins/kiro-cli/bin/executable_list-all +0 -13
- package/dot_local/share/wayland-sessions/niri.desktop.tmpl +0 -6
- package/dot_local/share/zsh/completions/.keep +0 -0
- package/dot_local/share/zsh/completions/_dot +0 -283
- package/scripts/ci/check-dangerous-chmod.sh +0 -19
- package/scripts/ci/check-deps-dev.sh +0 -236
- package/scripts/ci/check-insecure-tls.sh +0 -61
- package/scripts/ci/check-regression-traceability.sh +0 -67
- package/scripts/ci/install-chezmoi-verified.sh +0 -64
- package/scripts/ci/run-coverage.sh +0 -362
- package/scripts/ci/validate-chezmoidata.sh +0 -25
- package/scripts/ci/validate-ci-config.sh +0 -224
- package/scripts/docs/build-manual.sh +0 -883
- package/scripts/docs/check-manual.sh +0 -213
- package/scripts/dot/lib/bento.sh +0 -50
- package/scripts/dot/lib/log.sh +0 -200
- package/scripts/dot/lib/platform.sh +0 -99
- package/scripts/dot/lib/ui.sh +0 -518
- package/scripts/dot/lib/utils.sh +0 -377
- package/scripts/maintenance/check-updates.sh +0 -131
- package/scripts/release/package-policy-bundles.sh +0 -125
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AI Cost Optimization"
|
|
3
|
+
date: 2026-05-24
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AI Cost Optimization
|
|
7
|
+
|
|
8
|
+
This dotfiles framework ships an opinionated AI-cost layer designed to
|
|
9
|
+
keep token spend predictable and low while still using the smartest
|
|
10
|
+
model for orchestration. Two ideas drive it:
|
|
11
|
+
|
|
12
|
+
1. **Delegate the grunt work.** Have the expensive smart model
|
|
13
|
+
orchestrate, and a cheap fast model do the file reads, edits, and
|
|
14
|
+
verification. The smart model sees one tool call and the final
|
|
15
|
+
`git diff` instead of every intermediate read.
|
|
16
|
+
2. **Account every call.** Every invocation through `dot ai <provider>`
|
|
17
|
+
appends a JSONL entry so you can see spend across all providers in
|
|
18
|
+
one report, not just per-tool dashboards.
|
|
19
|
+
|
|
20
|
+
## Quick reference
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
dot ai delegate "rename every UserService method that starts with get to fetch"
|
|
24
|
+
dot ai cost # all-time overview
|
|
25
|
+
dot ai cost --since 7 # last 7 days
|
|
26
|
+
dot ai cost --fails # only failures + breakdown by failure type
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Inside Claude Code: `/vibe`, `/vibe-report`, `/vibeon`, `/vibeoff`,
|
|
30
|
+
`/vibestatus`, `/vibe-model-pick`, `/vibe-model-clear`.
|
|
31
|
+
|
|
32
|
+
## The delegator pattern
|
|
33
|
+
|
|
34
|
+
The pattern comes from [pcx-wave/vibe-skill][vibe-skill]. Mistral Vibe
|
|
35
|
+
is the default delegate but the same wrapper accepts any model Vibe
|
|
36
|
+
knows about (DeepSeek V4 Flash, Gemini Flash, etc.).
|
|
37
|
+
|
|
38
|
+
[vibe-skill]: https://github.com/pcx-wave/vibe-skill
|
|
39
|
+
|
|
40
|
+
Cost comparison (May 2026 list prices, blended 85 in / 15 out typical
|
|
41
|
+
of coding tasks):
|
|
42
|
+
|
|
43
|
+
| Task | Claude Sonnet 4.6 ($3 / $15) | Mistral Medium 3.5 ($1.50 / $7.50) | DeepSeek V4 Flash ($0.14 / $0.28) |
|
|
44
|
+
|---|---|---|---|
|
|
45
|
+
| 1-file tweak (800 tok) | ~$0.004 | ~$0.002 | ~$0.0001 |
|
|
46
|
+
| 6-read task (4,800 tok) | ~$0.023 | ~$0.012 | ~$0.0008 |
|
|
47
|
+
| Multi-file refactor (12,000 tok) | ~$0.058 | ~$0.029 | ~$0.002 |
|
|
48
|
+
|
|
49
|
+
Real-world stats from 254 vibe-skill runs over 10 days (May 2026):
|
|
50
|
+
|
|
51
|
+
| | Amount |
|
|
52
|
+
|---|---|
|
|
53
|
+
| Actually paid (Mistral Pro prorated + DeepSeek pay-as-you-go) | **$10.35** |
|
|
54
|
+
| Same workload pay-as-you-go via Mistral API | $46.61 |
|
|
55
|
+
| Same workload on Claude Sonnet 4.6 | $179.91 |
|
|
56
|
+
| Saved vs Claude | **$169.56 (17.4× cheaper)** |
|
|
57
|
+
|
|
58
|
+
Claude itself contributes ~500-1500 tokens per delegation as
|
|
59
|
+
orchestration overhead. Even with that overhead the savings dominate
|
|
60
|
+
for anything beyond a one-line edit.
|
|
61
|
+
|
|
62
|
+
## Pieces deployed by this repo
|
|
63
|
+
|
|
64
|
+
| Component | Source path | Deployed to | Role |
|
|
65
|
+
|---|---|---|---|
|
|
66
|
+
| `vibe` skill | `defaults/dot_claude/skills/vibe/` | `~/.claude/skills/vibe/` | Claude Code slash commands (`/vibe`, `/vibe-report`, etc.) |
|
|
67
|
+
| Delegator binary | `defaults/dot_claude/skills/vibe/tools/executable_vibe-delegate` | `~/.claude/skills/vibe/tools/vibe-delegate` | Runs the cheap-model task in a pseudo-TTY, parses streaming JSON, syntax-checks changes, logs the run |
|
|
68
|
+
| Reporter | `defaults/dot_claude/skills/vibe/tools/executable_delegate-report` | `~/.claude/skills/vibe/tools/delegate-report` | Reads the JSONL log, prints overview / by-model / by-project / failure tables |
|
|
69
|
+
| CLI shim | `scripts/dot/commands/ai.sh` | `bin/dot ai delegate` / `bin/dot ai cost` | Same delegator + reporter, callable from the terminal without Claude Code |
|
|
70
|
+
| Unified log hook | `_ai_log_run` in `ai.sh` | runs inside `run_ai_with_context` | Appends one JSONL line per `dot ai <provider>` invocation |
|
|
71
|
+
| Log file | runtime-managed | `~/.local/share/delegate-runs.jsonl` | One line per run; `dot ai cost` reads it |
|
|
72
|
+
|
|
73
|
+
## State files
|
|
74
|
+
|
|
75
|
+
| File | Owner | Purpose |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| `~/.local/share/delegate-runs.jsonl` | runtime | One JSONL entry per AI invocation (vibe + every other provider) |
|
|
78
|
+
| `~/.local/share/vibe-auto.flag` | `/vibeon` / `/vibeoff` | When present, Claude auto-delegates coding tasks to Vibe |
|
|
79
|
+
| `~/.local/share/vibe-model.flag` | `/vibe-model-pick` | Override the Vibe model for the next runs; cleared by `/vibe-model-clear` |
|
|
80
|
+
| `~/.vibe/config.toml` | user | Vibe's own provider / model configuration |
|
|
81
|
+
|
|
82
|
+
## Reading the report
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
DELEGATE REPORT 2026-05-17 → 2026-05-24
|
|
86
|
+
Runs : 27 (ok: 25, failed: 2, timeout: 0)
|
|
87
|
+
Success rate : 92%
|
|
88
|
+
Avg duration : 18.4s
|
|
89
|
+
Tokens total : 4,231,082
|
|
90
|
+
Delegate cost : $1.4711
|
|
91
|
+
Claude equiv : $14.8294
|
|
92
|
+
Saved : $13.3583 (90% cheaper than Claude)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`Claude equiv` is what the same workload would have cost on Claude
|
|
96
|
+
Sonnet 4.6 ($3 / $15 per M tokens, blended at the same in/out ratio).
|
|
97
|
+
The savings line is the difference. Failure types are broken out per
|
|
98
|
+
model so you can see which delegate is most reliable for your repo.
|
|
99
|
+
|
|
100
|
+
## Provider coverage
|
|
101
|
+
|
|
102
|
+
Every provider exposed via `dot ai <provider>` is logged best-effort.
|
|
103
|
+
For providers that don't surface token counts in their CLI output, the
|
|
104
|
+
report still tracks: timestamp, project, exit code, duration, prompt
|
|
105
|
+
word count. Token / cost fields stay zero for those providers — the
|
|
106
|
+
report tolerates the gap and aggregates by `model` regardless.
|
|
107
|
+
|
|
108
|
+
Providers tracked today:
|
|
109
|
+
|
|
110
|
+
| Provider | Binary | Logged | Tokens surfaced? |
|
|
111
|
+
|---|---|---|---|
|
|
112
|
+
| Claude Code | `claude` | yes | no (CLI doesn't expose) |
|
|
113
|
+
| Codex | `codex` | yes | no |
|
|
114
|
+
| Copilot CLI | `copilot` | yes | no |
|
|
115
|
+
| Gemini CLI | `gemini` | yes | no |
|
|
116
|
+
| Goose | `goose` | yes | no |
|
|
117
|
+
| Aider | `aider` | yes | no |
|
|
118
|
+
| OpenCode | `opencode` | yes | no |
|
|
119
|
+
| Autohand | `autohand` | yes | no |
|
|
120
|
+
| Mistral Vibe | `vibe` | yes | **yes** (via delegator) |
|
|
121
|
+
| Qwen | `qwen` | yes | no |
|
|
122
|
+
| ZAI | `zai` | yes | no |
|
|
123
|
+
| Shell-GPT | `sgpt` | yes | no |
|
|
124
|
+
| Ollama (local) | `ollama` | yes | n/a (no cost) |
|
|
125
|
+
| Kiro CLI | `kiro-cli` | yes | no |
|
|
126
|
+
|
|
127
|
+
## Future work
|
|
128
|
+
|
|
129
|
+
Not implemented yet, ordered roughly by likely impact:
|
|
130
|
+
|
|
131
|
+
1. **Provider-level budget guard.** `dot ai budget --set 50/month`
|
|
132
|
+
would warn at 80% and refuse new requests at 100% (overridable).
|
|
133
|
+
Needs per-provider cost estimation hooks beyond what each CLI
|
|
134
|
+
surfaces today.
|
|
135
|
+
2. **Prompt response cache.** Many coding-helper queries are
|
|
136
|
+
deterministic ("syntax for X in Y"). A local cache keyed on prompt
|
|
137
|
+
hash + provider could short-circuit repeat queries.
|
|
138
|
+
3. **Per-task-class model routing.** `dot ai delegate --class refactor`
|
|
139
|
+
would pick the cheapest model that meets the quality bar for the
|
|
140
|
+
task class. Today the user picks the model.
|
|
141
|
+
4. **Rate-limit awareness.** Track API rate limits from response
|
|
142
|
+
headers, queue requests, surface a `dot ai cost --limits` view that
|
|
143
|
+
shows time-to-reset for every provider with an active limit.
|
|
@@ -14,7 +14,7 @@ For naming conventions (file prefixes, run-script numbering tiers), see
|
|
|
14
14
|
[`../NAMING_CONVENTIONS.md`](../NAMING_CONVENTIONS.md). For the broader
|
|
15
15
|
architectural rationale (philosophy, startup model, flake strategy), see
|
|
16
16
|
[`ARCHITECTURE.md`](ARCHITECTURE.md). For the configuration-management
|
|
17
|
-
strategy at a higher level, see [
|
|
17
|
+
strategy at a higher level, see [`../CONFIG_STRATEGY.md`](../CONFIG_STRATEGY.md).
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
@@ -85,7 +85,7 @@ exist on purpose and don't overlap:
|
|
|
85
85
|
|-------------------------------|-----------------------|------------------------------------------------------------------|-------------------------------|
|
|
86
86
|
| `dot_claude/CLAUDE.md` | `~/.claude/CLAUDE.md` | Claude Code, in **any** cwd on this machine | Personal, cross-project |
|
|
87
87
|
| `CLAUDE.md` (repo root) | Not deployed | Claude Code, when cwd is **this** repo | Repo-scoped guidance |
|
|
88
|
-
| `OPENCODE.md`
|
|
88
|
+
| `docs/OPENCODE.md` | Not deployed | OpenCode CLI, when cwd is **this** repo | Repo-scoped guidance (mirror) |
|
|
89
89
|
| `.claude/settings.local.json` | Not deployed, **not tracked** | Claude Code | Per-machine permission allowlist |
|
|
90
90
|
|
|
91
91
|
Each of the three tracked files carries a header comment explaining its
|
|
@@ -143,11 +143,11 @@ the repo itself.
|
|
|
143
143
|
|
|
144
144
|
| Subdir | Purpose |
|
|
145
145
|
|-------------------------------------------|-----------------------------------------------------------------|
|
|
146
|
-
| `
|
|
146
|
+
| `tools/ci/` | CI helpers (`check-copyright-headers.sh`, `install-chezmoi-verified.sh`, `validate-ci-config.sh`) |
|
|
147
147
|
| `scripts/dot/commands/` | Subcommand implementations for the `dot` CLI |
|
|
148
|
-
| `
|
|
148
|
+
| `tools/docs/` | Manual build pipeline (`build-manual.sh`, `check-manual.sh`) |
|
|
149
149
|
| `scripts/theme/` | K-Means CIELAB theme engine + HEIC merge/convert |
|
|
150
|
-
| `scripts/ops/`, `
|
|
150
|
+
| `scripts/ops/`, `tools/maintenance/`, `tools/release/` | Operator tooling |
|
|
151
151
|
| `scripts/diagnostics/`, `scripts/qa/`, `scripts/security/`, `scripts/secrets/` | Domain-scoped scripts |
|
|
152
152
|
| `scripts/fonts/`, `scripts/demo/`, `scripts/git-hooks/`, `scripts/tools/`, `scripts/tuning/`, `scripts/lib/` | Supporting scripts |
|
|
153
153
|
| `scripts/uninstall.sh`, `scripts/version-sync.sh` | Top-level ops entrypoints |
|
|
@@ -199,7 +199,7 @@ braces.
|
|
|
199
199
|
| `templates/chezmoi-data/`, `templates/projects/` | Starter scaffolding for new machines / new projects |
|
|
200
200
|
| `examples/` | 14 standalone demo scripts used by the manual and tutorials |
|
|
201
201
|
| `CHANGELOG.md`, `LICENSE`, `README.md` | Standard |
|
|
202
|
-
| `CONFIG_STRATEGY.md`
|
|
202
|
+
| `docs/CONFIG_STRATEGY.md` | High-level "how configuration management works here" overview |
|
|
203
203
|
| `.gitattributes`, `.gitignore`, `.gitleaksignore`, `.editorconfig`, `.secrets.baseline`, `.sops.yaml`, `.luacheckrc` | Repo-level tool configs |
|
|
204
204
|
| `.pre-commit-config.yaml` → `config/pre-commit-config.yaml` | Symlink so `pre-commit` finds the canonical config |
|
|
205
205
|
|
|
@@ -213,7 +213,7 @@ version control. If one of them ever shows up in `git status`, check the
|
|
|
213
213
|
|
|
214
214
|
| Path | Source |
|
|
215
215
|
|--------------------------|------------------------------------------------------------------------------|
|
|
216
|
-
| `_build/` | Output of `
|
|
216
|
+
| `_build/` | Output of `tools/docs/build-manual.sh` |
|
|
217
217
|
| `.pnpm-store/` | pnpm's content-addressable store (should never appear here) |
|
|
218
218
|
| `.claude/` | Claude Code per-machine state (`settings.local.json` permission allowlists) |
|
|
219
219
|
| `node_modules/` | Node dependency trees from repo-local scripts |
|
|
@@ -229,7 +229,7 @@ A quick decision tree for common cases:
|
|
|
229
229
|
|
|
230
230
|
- **New app config that lives under `~/.config/<app>/`** → `dot_config/<app>/` (see `docs/NAMING_CONVENTIONS.md` → "Adding New Modules").
|
|
231
231
|
- **New user-facing CLI script** → `dot_local/bin/executable_<name>`.
|
|
232
|
-
- **New `dot` subcommand** → implementation in `scripts/dot/commands/<name>.sh`, routing in `
|
|
232
|
+
- **New `dot` subcommand** → implementation in `scripts/dot/commands/<name>.sh`, routing in `bin/dot`.
|
|
233
233
|
- **New repo-only automation** (CI helper, maintenance task, release step) → `scripts/<domain>/<name>.sh`.
|
|
234
234
|
- **New test** → `tests/unit/<domain>/test_<feature>.sh` (follow `test_{domain}_{feature}.sh` naming).
|
|
235
235
|
- **New doc** → pick the narrowest of `docs/architecture/`, `docs/reference/`, `docs/guides/`, `docs/operations/`, `docs/security/`.
|
|
@@ -16,7 +16,7 @@ This milestone keeps scope intentionally small and operationally focused.
|
|
|
16
16
|
|
|
17
17
|
- [x] Add `dot verify` command routing in diagnostics module.
|
|
18
18
|
- `scripts/dot/commands/diagnostics.sh`
|
|
19
|
-
- `
|
|
19
|
+
- `bin/dot`
|
|
20
20
|
- [x] Add verification runner script.
|
|
21
21
|
- `scripts/diagnostics/verify.sh`
|
|
22
22
|
- Runs:
|
package/docs/index.md
CHANGED
|
@@ -7,7 +7,7 @@ render_with_liquid: false
|
|
|
7
7
|
Cross-platform, signed, local-first dotfiles for macOS, Linux, and WSL.
|
|
8
8
|
|
|
9
9
|
[](https://github.com/sebastienrousseau/dotfiles/actions)
|
|
10
|
-
[](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.503)
|
|
11
11
|
[](https://github.com/sebastienrousseau/dotfiles/releases)
|
|
12
12
|
|
|
13
13
|
This site is published from the `docs/` directory on `master` and tracks the current workstation baseline, operational guidance, and security material for the repository.
|
|
@@ -38,6 +38,6 @@ This site is published from the `docs/` directory on `master` and tracks the cur
|
|
|
38
38
|
|
|
39
39
|
## Current Release
|
|
40
40
|
|
|
41
|
-
- Current tagged release: [`v0.2.
|
|
41
|
+
- Current tagged release: [`v0.2.503`](https://github.com/sebastienrousseau/dotfiles/releases/tag/v0.2.503)
|
|
42
42
|
- Latest release feed: [GitHub releases](https://github.com/sebastienrousseau/dotfiles/releases/latest)
|
|
43
43
|
- Source repository: [sebastienrousseau/dotfiles](https://github.com/sebastienrousseau/dotfiles)
|
|
@@ -13,7 +13,7 @@ and what specifically is verified. Closes the docs slice of
|
|
|
13
13
|
|
|
14
14
|
| File | Role |
|
|
15
15
|
|---|---|
|
|
16
|
-
| [`dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl`](../../dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl) | The dotfiles PowerShell profile. Deployed to `$PROFILE` (resolves to `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on Linux/macOS; `Documents\PowerShell\Microsoft.PowerShell_profile.ps1` on Windows). |
|
|
16
|
+
| [`dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl`](../../defaults/dot_config/powershell/Microsoft.PowerShell_profile.ps1.tmpl) | The dotfiles PowerShell profile. Deployed to `$PROFILE` (resolves to `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on Linux/macOS; `Documents\PowerShell\Microsoft.PowerShell_profile.ps1` on Windows). |
|
|
17
17
|
| [`scripts/qa/powershell-contract.ps1`](../../scripts/qa/powershell-contract.ps1) | The runtime contract. Renders the template, dot-sources it, asserts required function shims exist, runs PSScriptAnalyzer. |
|
|
18
18
|
| [`tests/unit/install/test_powershell_profile_syntax.sh`](../../tests/unit/install/test_powershell_profile_syntax.sh) | Static-syntax test runnable on Linux/macOS via `pwsh` when present; falls back to brace-balance + textual invariants when not. |
|
|
19
19
|
|
|
@@ -4,7 +4,7 @@ render_with_liquid: false
|
|
|
4
4
|
|
|
5
5
|
# Introduction
|
|
6
6
|
|
|
7
|
-
This manual describes `.dotfiles` v0.2.
|
|
7
|
+
This manual describes `.dotfiles` v0.2.503 — a trusted agent workstation baseline for macOS, Linux, and WSL.
|
|
8
8
|
|
|
9
9
|
The repository is more than a personal dotfiles collection. It ships as workstation infrastructure: signed, attested, multi-platform, AI-aware, and self-healing. Chezmoi handles templating and platform differences. The `dot` CLI sits on top and coordinates lifecycle operations.
|
|
10
10
|
|
|
@@ -32,7 +32,7 @@ The trust anchor is the signer's public key published in `~/.ssh/allowed_signers
|
|
|
32
32
|
|
|
33
33
|
### Verified Chezmoi Installer
|
|
34
34
|
|
|
35
|
-
The `install.sh` script prefers `
|
|
35
|
+
The `install.sh` script prefers `tools/ci/install-chezmoi-verified.sh`, which:
|
|
36
36
|
|
|
37
37
|
1. Downloads chezmoi from the upstream release URL
|
|
38
38
|
2. Verifies the SHA256 checksum against a hardcoded, version-pinned value
|
|
@@ -151,19 +151,6 @@ dot attest [--output|-o <file>] [--sign|-s]
|
|
|
151
151
|
|
|
152
152
|
Default output: `~/.local/state/dotfiles/attestation/YYYY-MM-DD-HHMMSS.json`. With `--sign`, the JSON is signed with the user's SSH ED25519 key.
|
|
153
153
|
|
|
154
|
-
### `dot verify`
|
|
155
|
-
|
|
156
|
-
Verify integrity of the installation.
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
dot verify [--security|-s] [--attestation <path>]
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
| Flag | Effect |
|
|
163
|
-
|:---|:---|
|
|
164
|
-
| `--security`, `-s` | Run gitleaks + signature checks + policy hash |
|
|
165
|
-
| `--attestation <path>` | Verify an external attestation file |
|
|
166
|
-
|
|
167
154
|
### `dot lint`
|
|
168
155
|
|
|
169
156
|
Lint shell scripts (shellcheck, shfmt).
|
|
@@ -174,24 +161,6 @@ dot lint [--path <glob>] [--strict]
|
|
|
174
161
|
|
|
175
162
|
## Performance
|
|
176
163
|
|
|
177
|
-
### `dot benchmark`
|
|
178
|
-
|
|
179
|
-
Measure shell startup time.
|
|
180
|
-
|
|
181
|
-
```
|
|
182
|
-
dot benchmark [--detailed|-d] [--profile|-p] [--compare|-c] [--waterfall|-w] [--runs|-r <n>]
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
| Flag | Effect |
|
|
186
|
-
|:---|:---|
|
|
187
|
-
| `--detailed`, `-d` | Per-module timing breakdown |
|
|
188
|
-
| `--profile`, `-p` | Profile with `$SHELL -ixc ""` |
|
|
189
|
-
| `--compare`, `-c` | Compare against baseline |
|
|
190
|
-
| `--waterfall`, `-w` | Waterfall visualization |
|
|
191
|
-
| `--runs`, `-r <n>` | Number of hyperfine runs (default 10) |
|
|
192
|
-
|
|
193
|
-
Exit codes: 0 (<500ms target), 1 (regression).
|
|
194
|
-
|
|
195
164
|
### `dot perf`
|
|
196
165
|
|
|
197
166
|
Quick performance snapshot.
|
|
@@ -200,17 +169,9 @@ Quick performance snapshot.
|
|
|
200
169
|
dot perf [--json|-j] [--profile|-p] [--runs|-r <n>] [--target|-t <ms>]
|
|
201
170
|
```
|
|
202
171
|
|
|
203
|
-
### `dot prewarm`
|
|
204
|
-
|
|
205
|
-
Regenerate shell init caches for fast startup.
|
|
206
|
-
|
|
207
172
|
### `dot cache-refresh`
|
|
208
173
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
### `dot clean-cache`
|
|
212
|
-
|
|
213
|
-
Clear generated shell initialization caches. Next shell startup will be slow; use `dot prewarm` afterward.
|
|
174
|
+
Regenerate shell caches for ultra-fast startup.
|
|
214
175
|
|
|
215
176
|
### `dot score`
|
|
216
177
|
|
|
@@ -322,11 +283,72 @@ Multi-node status, drift, and namespace.
|
|
|
322
283
|
dot fleet # show all known hosts
|
|
323
284
|
dot fleet attest # collect signed attestations
|
|
324
285
|
dot fleet diff # compare rendered config across hosts
|
|
325
|
-
dot fleet sync # run `dot
|
|
286
|
+
dot fleet sync # run `dot upgrade` on every host
|
|
287
|
+
dot fleet apply # SSH out to every host in fleet.toml and run 'dot sync'
|
|
326
288
|
```
|
|
327
289
|
|
|
328
290
|
Fleet hosts are configured in `~/.config/dotfiles/fleet.toml`.
|
|
329
291
|
|
|
292
|
+
### `dot fleet apply`
|
|
293
|
+
|
|
294
|
+
Push dotfiles state to every host registered in `~/.config/dotfiles/fleet.toml`.
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
dot fleet apply [--host <name>] [--cmd <shell>] [--dry-run] [--jobs <n>]
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
| Flag | Effect |
|
|
301
|
+
|:---|:---|
|
|
302
|
+
| `--host <name>` | Apply to a single host only (matches the `[hosts.<name>]` stanza key). |
|
|
303
|
+
| `--cmd <shell>` | Run a custom command on every host instead of the default `dot sync && dot doctor --quiet`. **Warning:** this is arbitrary shell on remote hosts; the value is your trust boundary. |
|
|
304
|
+
| `--dry-run`, `-n` | Print the resolved hosts + planned command without opening SSH. |
|
|
305
|
+
| `--jobs <n>` | Parallelism (default 4). |
|
|
306
|
+
|
|
307
|
+
Hostnames in `fleet.toml` are validated against `[A-Za-z0-9._@:+/-]+` before fan-out; entries containing other characters abort the apply. First-time SSH connections use `StrictHostKeyChecking=accept-new` (TOFU); pre-populate `~/.ssh/known_hosts` if your threat model requires no TOFU window.
|
|
308
|
+
|
|
309
|
+
Example `fleet.toml`:
|
|
310
|
+
|
|
311
|
+
```toml
|
|
312
|
+
[hosts.laptop]
|
|
313
|
+
ssh = "user@laptop.local"
|
|
314
|
+
profile = "workstation"
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Agents
|
|
318
|
+
|
|
319
|
+
### `dot agents`
|
|
320
|
+
|
|
321
|
+
Multi-harness AI agent configuration manager. `CLAUDE.md` is canonical; `dot agents render` keeps `AGENTS.md` (the cross-harness standard read by Codex / Copilot / Cursor / Windsurf / Amp / Devin) plus `.cursor/rules/dotfiles.mdc` and `.codex/config.toml` in sync.
|
|
322
|
+
|
|
323
|
+
```
|
|
324
|
+
dot agents list # show which harnesses are recognised + their target paths
|
|
325
|
+
dot agents check # exit 0 if AGENTS.md tracks CLAUDE.md; 1 if drifted
|
|
326
|
+
dot agents render # regenerate AGENTS.md + 10 harness-specific files
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Harnesses covered: `AGENTS.md` (canonical cross-harness), Cursor (`.cursor/rules/dotfiles.mdc`), Codex (`.codex/config.toml`), Windsurf (`.windsurf/rules.md`), Zed (`.zed/agent-config.toml`), Roo (`.roo/rules.md`), Cline (`.clinerules`), Aider (`.aider.conf.yml`), Continue (`.continuerc.json`), Jules (`.jules/system.md`), Gemini (`.gemini/GEMINI.md`).
|
|
330
|
+
|
|
331
|
+
Edit `CLAUDE.md` first, then run `dot agents render`; do not hand-edit `AGENTS.md` or any of the per-harness files. The check subcommand is suitable for pre-commit hooks.
|
|
332
|
+
|
|
333
|
+
## Registry
|
|
334
|
+
|
|
335
|
+
### `dot registry`
|
|
336
|
+
|
|
337
|
+
JSON-indexed module registry. Discover and install reusable dotfile modules from a registry hosted via GitHub Pages (or any HTTPS URL via `set-url`).
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
dot registry list # list modules in the configured registry
|
|
341
|
+
dot registry search <query> # filter modules by keyword
|
|
342
|
+
dot registry info <name> # full metadata for one module
|
|
343
|
+
dot registry install <name> # apply a module (scaffold today)
|
|
344
|
+
dot registry url # show the active registry URL
|
|
345
|
+
dot registry set-url <url> # override the registry URL (HTTPS-only)
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
Default registry: `https://sebastienrousseau.github.io/dotfiles/registry.json`. Cache lives at `${XDG_CACHE_HOME:-~/.cache}/dotfiles/registry/index.json` with a 6h TTL. One-off override: `DOTFILES_REGISTRY_URL=<url> dot registry list`.
|
|
349
|
+
|
|
350
|
+
The JSON contract + module-contribution flow live in [`docs/operations/REGISTRY.md`](../../operations/REGISTRY.md).
|
|
351
|
+
|
|
330
352
|
## Reference
|
|
331
353
|
|
|
332
354
|
### `dot version`
|
|
@@ -361,10 +383,6 @@ dot add --encrypt ~/.somefile # encrypted with Age
|
|
|
361
383
|
dot add --template ~/.somefile # templatize
|
|
362
384
|
```
|
|
363
385
|
|
|
364
|
-
### `dot remove <path>`
|
|
365
|
-
|
|
366
|
-
Safely remove a managed file (removes from source and unmanages).
|
|
367
|
-
|
|
368
386
|
### `dot cd`
|
|
369
387
|
|
|
370
388
|
Print the source directory path. Useful for `cd $(dot cd)`.
|
|
@@ -33,7 +33,7 @@ Every config file read or written by `.dotfiles`, with its schema and purpose.
|
|
|
33
33
|
|
|
34
34
|
```toml
|
|
35
35
|
# Version — bumped by version-sync.sh at release time
|
|
36
|
-
dotfiles_version = "0.2.
|
|
36
|
+
dotfiles_version = "0.2.503"
|
|
37
37
|
|
|
38
38
|
# Machine preset — override in ~/.config/chezmoi/chezmoi.toml per host
|
|
39
39
|
machine = ""
|
|
@@ -219,7 +219,7 @@ Agent Card (MCP A2A spec):
|
|
|
219
219
|
```json
|
|
220
220
|
{
|
|
221
221
|
"name": "dotfiles-agent",
|
|
222
|
-
"version": "0.2.
|
|
222
|
+
"version": "0.2.503",
|
|
223
223
|
"capabilities": ["chezmoi.apply", "theme.switch", "secrets.decrypt"],
|
|
224
224
|
"policy_hash": "0x7f2a..."
|
|
225
225
|
}
|
|
@@ -11,10 +11,19 @@ Feature flags toggle optional subsystems. Set in `.chezmoidata.toml`, override p
|
|
|
11
11
|
|
|
12
12
|
```toml
|
|
13
13
|
[features]
|
|
14
|
-
|
|
14
|
+
alias_wrapper = false # Wrap selected aliases with safer defaults
|
|
15
|
+
dms = true # Dank Material Shell (Niri desktop)
|
|
16
|
+
zellij = false # Zellij terminal multiplexer config
|
|
15
17
|
linux_desktop = false # Linux-specific desktop configs
|
|
16
|
-
niri
|
|
17
|
-
waybar
|
|
18
|
+
niri = false # Niri window manager
|
|
19
|
+
waybar = false # Waybar status bar
|
|
20
|
+
fuzzel = false # Fuzzel application launcher (Wayland)
|
|
21
|
+
mako = false # Mako notification daemon (Wayland)
|
|
22
|
+
foot = false # Foot terminal emulator (Wayland)
|
|
23
|
+
kanshi = false # Kanshi monitor profile manager (Wayland)
|
|
24
|
+
touch = false # Touchscreen-friendly tweaks (Surface, etc.)
|
|
25
|
+
t2 = false # Apple T2 hardware-specific tweaks
|
|
26
|
+
surface = false # Microsoft Surface hardware-specific tweaks
|
|
18
27
|
```
|
|
19
28
|
|
|
20
29
|
## Per-Preset Overrides (`.chezmoidata/hardware.toml`)
|
|
@@ -69,6 +78,56 @@ When `true`:
|
|
|
69
78
|
|
|
70
79
|
Requires: Waybar installed.
|
|
71
80
|
|
|
81
|
+
### `alias_wrapper` — Safer Alias Defaults
|
|
82
|
+
|
|
83
|
+
When `true`, opt-in wrappers replace selected aliases with confirmation-prompt
|
|
84
|
+
variants (e.g., `rm -i`, `mv -i`). Default `false` for power-user ergonomics.
|
|
85
|
+
|
|
86
|
+
### `zellij` — Zellij Terminal Multiplexer
|
|
87
|
+
|
|
88
|
+
When `true`:
|
|
89
|
+
|
|
90
|
+
- Generates `~/.config/zellij/config.kdl` from the active theme
|
|
91
|
+
- Wires the `dot mux` alias to launch a profile-aware session
|
|
92
|
+
|
|
93
|
+
Requires: Zellij installed.
|
|
94
|
+
|
|
95
|
+
### `fuzzel` — Fuzzel Application Launcher (Wayland)
|
|
96
|
+
|
|
97
|
+
When `true`, generates `~/.config/fuzzel/fuzzel.ini` using the active theme.
|
|
98
|
+
Requires: Fuzzel installed (Wayland-only). No effect on macOS.
|
|
99
|
+
|
|
100
|
+
### `mako` — Mako Notification Daemon (Wayland)
|
|
101
|
+
|
|
102
|
+
When `true`, generates `~/.config/mako/config` with theme-derived colors.
|
|
103
|
+
Requires: Mako installed (Wayland-only). No effect on macOS.
|
|
104
|
+
|
|
105
|
+
### `foot` — Foot Terminal Emulator (Wayland)
|
|
106
|
+
|
|
107
|
+
When `true`, generates `~/.config/foot/foot.ini` from `themes.toml`.
|
|
108
|
+
Requires: Foot installed (Wayland-only). No effect on macOS.
|
|
109
|
+
|
|
110
|
+
### `kanshi` — Kanshi Monitor Profile Manager (Wayland)
|
|
111
|
+
|
|
112
|
+
When `true`, generates `~/.config/kanshi/config` with per-host monitor layouts.
|
|
113
|
+
Requires: Kanshi installed (Wayland-only). No effect on macOS.
|
|
114
|
+
|
|
115
|
+
### `touch` — Touchscreen-Friendly Tweaks
|
|
116
|
+
|
|
117
|
+
When `true`, enables larger UI scaling and touch-friendly input mappings.
|
|
118
|
+
Typically combined with `surface` for Microsoft Surface devices.
|
|
119
|
+
|
|
120
|
+
### `t2` — Apple T2 Hardware Tweaks
|
|
121
|
+
|
|
122
|
+
When `true`, enables `t2linux` kernel-module hints, audio routing fixes, and
|
|
123
|
+
Touch-Bar utilities for Intel Macs with the T2 chip on Linux. Set by the
|
|
124
|
+
`macbook-t2` hardware preset in `.chezmoidata/hardware.toml`.
|
|
125
|
+
|
|
126
|
+
### `surface` — Microsoft Surface Hardware Tweaks
|
|
127
|
+
|
|
128
|
+
When `true`, enables `linux-surface` kernel parameters, touchpad gestures, and
|
|
129
|
+
pen-input mappings. Set by the `surface-pro` hardware preset.
|
|
130
|
+
|
|
72
131
|
## Using a Flag in a Template
|
|
73
132
|
|
|
74
133
|
```go
|
package/docs/manual/_toc.yml
CHANGED
|
@@ -4,59 +4,76 @@ render_with_liquid: false
|
|
|
4
4
|
|
|
5
5
|
# Command Index
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Generated from `dot help all`. To refresh after adding or renaming
|
|
8
|
+
a subcommand, run `tools/docs/generate-command-index.sh`. The CI
|
|
9
|
+
job `lint/command-index` fails when this file is stale.
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
11
|
+
| Command | Summary |
|
|
12
|
+
|---------|---------|
|
|
13
|
+
| `dot add` | Add a file to chezmoi source |
|
|
14
|
+
| `dot agent` | Profile-aware execution, agent card, a2a-card, session log, checkpoints, and conformance |
|
|
15
|
+
| `dot ai` | AI CLI status, delegate, and cost report |
|
|
16
|
+
| `dot ai-query` | Context-aware RAG query over your dotfiles |
|
|
17
|
+
| `dot ai-setup` | Interactive setup for all AI CLI tools |
|
|
18
|
+
| `dot aider` | Aider with context patterns |
|
|
19
|
+
| `dot attest` | Export workstation attestation evidence (--json |
|
|
20
|
+
| `dot backup` | Create a compressed backup of your home |
|
|
21
|
+
| `dot bundle` | Create offline archive of dotfiles environment |
|
|
22
|
+
| `dot cache-refresh` | Regenerate shell caches for ultra-fast startup |
|
|
23
|
+
| `dot cd` | Print source directory path (use: cd $(dot cd)) |
|
|
24
|
+
| `dot chaos` | Simulate config corruption to test self-healing |
|
|
25
|
+
| `dot cl` | Claude CLI with context patterns |
|
|
26
|
+
| `dot commit` | AI-powered conventional commit |
|
|
27
|
+
| `dot copilot` | GitHub Copilot CLI with context patterns |
|
|
28
|
+
| `dot diff` | Show chezmoi diff with exclusions |
|
|
29
|
+
| `dot dns-doh` | Enable DNS-over-HTTPS [macOS,Linux] |
|
|
30
|
+
| `dot docs` | Show repo README |
|
|
31
|
+
| `dot doctor` | Deep audit: tools, paths, portability, AI analysis (--ai |
|
|
32
|
+
| `dot edit` | Open chezmoi source in $EDITOR |
|
|
33
|
+
| `dot encrypt-check` | Check disk encryption status |
|
|
34
|
+
| `dot env` | Tool versions (mise) |
|
|
35
|
+
| `dot firewall` | Apply firewall hardening [macOS,Linux] |
|
|
36
|
+
| `dot fleet` | Show fleet node status, drift, and namespace (--json for machine output) |
|
|
37
|
+
| `dot fleet` | drift Check for configuration drift across managed files |
|
|
38
|
+
| `dot fleet` | events Show recent fleet events from local event log |
|
|
39
|
+
| `dot fleet` | namespace Show or set the active namespace for multi-tenant isolation |
|
|
40
|
+
| `dot fonts` | Install Nerd Fonts (JetBrainsMono by default) |
|
|
41
|
+
| `dot gemini` | Gemini CLI with context patterns |
|
|
42
|
+
| `dot help` | Show this help message |
|
|
43
|
+
| `dot history` | Shell history analysis |
|
|
44
|
+
| `dot keys` | Keybindings (sign-check: verify git signing) |
|
|
45
|
+
| `dot kiro` | Kiro CLI with context patterns |
|
|
46
|
+
| `dot learn` | Start the interactive tour of your new tools |
|
|
47
|
+
| `dot lint` | Lint shell scripts (--fix |
|
|
48
|
+
| `dot load-bench` | Measure time to heavy-layer readiness |
|
|
49
|
+
| `dot lock-screen` | Enforce lock screen idle settings [Linux] |
|
|
50
|
+
| `dot mcp` | Inspect MCP policy, supply chain, and registry |
|
|
51
|
+
| `dot metrics` | Show recent observability metrics (JSONL) |
|
|
52
|
+
| `dot mode` | Set or inspect agent operating profiles (ask/plan/apply/audit) |
|
|
53
|
+
| `dot new` | Create a new project from a template |
|
|
54
|
+
| `dot ollama` | Ollama with context patterns |
|
|
55
|
+
| `dot opencode` | OpenCode with context patterns |
|
|
56
|
+
| `dot packages` | List installed packages and package managers |
|
|
57
|
+
| `dot perf` | Show performance mode and quick timing |
|
|
58
|
+
| `dot profile` | Show/switch configuration profile |
|
|
59
|
+
| `dot rollback` | Rollback dotfiles to a previous state |
|
|
60
|
+
| `dot sandbox` | Launch a safe sandbox preview (Docker/Podman) |
|
|
61
|
+
| `dot score` | System health and security scorecard |
|
|
62
|
+
| `dot search` | Find commands by keyword |
|
|
63
|
+
| `dot secrets` | Edit encrypted secrets (age) |
|
|
64
|
+
| `dot secrets-create` | Create an encrypted secrets file |
|
|
65
|
+
| `dot secrets-init` | Initialize age key for secrets |
|
|
66
|
+
| `dot sgpt` | Shell-GPT with context patterns |
|
|
67
|
+
| `dot snapshot` | Capture baseline system snapshot |
|
|
68
|
+
| `dot ssh-cert` | Manage short-lived SSH certificates |
|
|
69
|
+
| `dot ssh-key` | Encrypt an SSH key locally with age |
|
|
70
|
+
| `dot status` | Show configuration drift (chezmoi status) |
|
|
71
|
+
| `dot sync` | Apply dotfiles (alias for apply; --pull to fetch, --check to preview) |
|
|
72
|
+
| `dot telemetry` | Disable OS telemetry [macOS,Linux] |
|
|
73
|
+
| `dot theme` | Switch terminal theme (dark/light) |
|
|
74
|
+
| `dot tools` | Show or install nix packages |
|
|
75
|
+
| `dot tune` | Apply OS tuning (opt-in) [macOS,Linux] |
|
|
76
|
+
| `dot upgrade` | Update system toolchains, plugins, and dotfiles |
|
|
77
|
+
| `dot usb-safety` | Disable automount for removable media [Linux] |
|
|
78
|
+
| `dot version` | Show version information. |
|
|
79
|
+
| `dot wallpaper` | Apply a wallpaper from your library [macOS,Linux] |
|