{ pkgs, ... }: { # Universal CLI tools for all hosts home.packages = with pkgs; [ # File navigation & viewing eza bat ripgrep fd fzf tree wget # download files and recursive sites # System info htop tldr fastfetch # Editor micro # Node.js ecosystem # nodejs # read-only в nix store не подходит для pi (npm install ломается) pnpm # fast node package manager # Secrets (pass.withExtensions (ext: [ ext.pass-otp ])) gpgme gnupg # Extras ollama # CLI для LLM delta # красивый git diff (synonym: git-delta) alejandra # nix-форматтер broot # tree с превью trash-cli # rm с корзиной texliveFull # LaTeX (~4GB, для математики) gita # manage multiple git repos ffmpeg_7 # видео-конвертация (remux/перекодирование) yt-dlp # скачивание с YouTube и 1000+ сайтов (эталонный CLI) transmission_4 # BitTorrent: transmission-daemon + -remote + -create/show/edit CLI tools himalaya # IMAP/SMTP/JMAP почтовый CLI (JSON-вывод для агента) # x402 / MPP agentic payments CLI (Solana Foundation) (pkgs.callPackage ./pay.nix {}) # Python (системный 3.9 macOS — слишком старый; ставим 3.13 через nix) python313 uv ]; # TODO: global npm/pnpm packages not managed by nix for now # install manually: pnpm i -g @mariozechner/pi-coding-agent # NOTE: pay (x402 CLI) added above via callPackage ./pay.nix # GPG agent is configured in home/pass.nix (only for pass) # FZF fuzzy finder programs.fzf = { enable = true; enableZshIntegration = true; defaultCommand = "fd --type f --hidden --exclude .git"; defaultOptions = [ "--height 40%" "--layout=reverse" "--border" ]; }; # Zoxide - smarter cd programs.zoxide = { enable = true; enableZshIntegration = true; options = [ "--cmd cd" ]; }; # Atuin - encrypted shell history with sync programs.atuin = { enable = true; enableZshIntegration = true; settings = { auto_sync = true; sync_frequency = "5m"; search_mode = "fuzzy"; style = "compact"; show_preview = true; exit_mode = "return-query"; }; }; # Bat - cat with syntax highlighting programs.bat = { enable = true; config = { theme = "Catppuccin Macchiato"; italic-text = "always"; style = "numbers,changes,header"; }; }; # Eza - modern ls replacement programs.eza = { enable = true; icons = "auto"; git = true; }; # Fastfetch - system info (using package only, no home-manager module) # Config is in ~/.config/fastfetch/config.jsonc manually for now }