Skip to content

Latest commit

 

History

History
224 lines (174 loc) · 8.1 KB

File metadata and controls

224 lines (174 loc) · 8.1 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working across multiple development machines.


Machines

kecovo (Current)

Type: ARM Laptop Hardware: Snapdragon X Elite X1E78100 (12-core ARM), Qualcomm Adreno X1-85 GPU, 32GB RAM, 2TB NVMe OS: Windows 11 Pro (Insider, Build 29531) Primary Use: Development, AI/ML (ARM-native workloads)

rogpop16redux

Type: x64 Laptop (ASUS ROG Zephyrus G16 GU605MY) Hardware: Intel Core Ultra i9-14900HX (24-core x64 ~2.3GHz), NVIDIA RTX 4090 Laptop GPU, CUDA 13.1, 32GB+ RAM OS: Windows 11 Pro Insider Preview (Build 29531) Primary Use: Development, AI/ML (CUDA workloads), Gaming


Common Configuration (All Machines)

Shell Environment

  • Primary Shell: PowerShell 7.6.0-preview.6 (default pwsh) with Starship prompt
  • Stable Shell: PowerShell 7.5.4 ("C:\Program Files\PowerShell\7\pwsh.exe")
  • Profile: ~/OneDrive/Documents/PowerShell/Microsoft.PowerShell_profile.ps1
  • Profile Cache: Cached init scripts at $env:LOCALAPPDATA\powershell-cache for faster startup
    • Run Update-ShellCache after updating Starship or Zoxide
  • Terminal: WezTerm (cross-platform config at ~/.config/wezterm/wezterm.lua)
  • PSReadLine: Enhanced with predictive IntelliSense (ListView, HistoryAndPlugin)
  • Git Bash: Available separately with Starship prompt (.bashrc in home dir)

Modern CLI Tools (aliased in PowerShell)

Standard Replacement Alias
ls eza ls, ll (detailed), lt (tree), la
cat bat cat
grep rg (ripgrep) grep
find fd find
cd z (zoxide) learned frecency
history atuin Ctrl+R search, synced DB

Atuin (Shell History)

  • Config: ~/.config/atuin/config.toml
  • Data: $env:LOCALAPPDATA\atuin\ (history.db, records.db)
  • Sync: Disabled (auto_sync = false, no sync server) — fully offline
  • Search mode: Fuzzy, compact UI, vim-insert keymap
  • Keybinding: Ctrl+R in PowerShell (up arrow left to PSReadLine)
  • Secrets filter: Enabled — auto-redacts secrets from history
  • Imported history: PowerShell (PSReadLine) + Bash
  • Import more: atuin import <shell> (supports zsh, bash, fish, nu, powershell)
  • Cache: Init script cached at $env:LOCALAPPDATA\powershell-cache\atuin-init.ps1
    • Regenerated via Update-ShellCache

PSReadLine Features (PowerShell)

Predictive IntelliSense - Gray suggestions as you type, powered by command history

Key Action
Tab Menu complete with suggestions
↑/↓ History search (filters by what you've typed)
F2 Toggle between inline/list prediction view
Ctrl+R Atuin history search (FZF fallback if Atuin unavailable)

CompletionPredictor: Installed — provides syntax-aware tab completions alongside history predictions

Git Shortcuts (PowerShell functions)

gs  = git status
gd  = git diff
ga  = git add
gc  = git commit
gp  = git push
gl  = git log --oneline -20
gco = git checkout

SSH

OpenSSH: Windows built-in (OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2)

  • Path: C:\Windows\System32\OpenSSH\
  • Key: ~/.ssh/id_ed25519 (Ed25519)
  • Config: ~/.ssh/config
  • ssh-agent: Windows service, startup type Automatic (persists keys across reboots)
  • Git SSH: Configured to use Windows OpenSSH (core.sshCommand = C:/Windows/System32/OpenSSH/ssh.exe)

Note: Git for Windows bundles a separate older OpenSSH at C:\Program Files\Git\usr\bin\ssh.exe. The core.sshCommand override ensures Git uses the Windows agent-backed SSH instead.

Git Credential Helper

GitHub CLI is used as the global credential helper for HTTPS remotes:

credential.helper = !/c/Program\ Files/GitHub\ CLI/gh.exe auth git-credential
  • Set via: gh auth setup-git or manually in ~/.gitconfig
  • Requires: gh auth login (token stored in Windows keyring)
  • Note: Git for Windows ships with Git Credential Manager (GCM) at /usr/local/share/gcm-core/git-credential-manager, but this path doesn't exist on all machines. If HTTPS pushes fail with "could not read Username", fix with:
    git config --global --replace-all credential.helper '!/c/Program\ Files/GitHub\ CLI/gh.exe auth git-credential'

GPG Commit Signing

  • Key type: Ed25519 (GnuPG 2.4.9, gpg.format = openpgp)
  • Signing: commit.gpgsign = true (all commits signed automatically)
  • GitHub: Public key uploaded as "kecovo (ARM laptop)"
  • Keyring: ~/.gnupg/ (machine-local, not synced via chezmoi)

Code Editors

Primary: VS Code with GitHub Copilot

  • Set as default via $env:EDITOR = "code"

Neovim 0.11.6

  • Installed at: C:\Program Files\Neovim\bin\nvim.exe
  • Config: ~/.config/nvim/ (cross-platform, managed by chezmoi)
  • Plugin manager: lazy.nvim (42 plugins)
  • LSP: Mason with auto-installed servers (lua_ls, ts_ls, pyright, jdtls, kotlin_language_server)
  • Tools: prettier, stylua, black, eslint_d, ruff, shellcheck (via mason-tool-installer)
  • Theme: Tokyo Night, statusline: lualine, Git: neogit + gitsigns + diffview
  • DAP: JS/TS (pwa-node), Python (debugpy), with dap-ui
  • Open with: nvim <file>

AI/ML Environment

Ollama - Local LLMs on GPU

  • Installed at: C:\Users\excel\AppData\Local\Programs\Ollama\ollama.exe
  • Installed models: llama3.2:3b, deepseek-r1:7b, qwen2.5-coder:7b
  • Commands:
    ollama run <model>     # Chat with a model
    ollama pull <model>    # Download/update a model
    ollama list            # View installed models

Directory Structure

Path Purpose
~/productionize/ Windows setup scripts (currently empty)
~/scripts/ Maintenance scripts (maintenance.ps1, cleanup-temp.ps1, check-updates.ps1)
~/.config/ XDG-style app configs

Package Managers

Primary: winget (Windows Package Manager)

winget search <package>
winget install <package>
winget upgrade <package>
winget upgrade --all  # Update all packages

Note: Chocolatey and Scoop are not currently installed. Modern CLI tools (eza, bat, fd, rg, starship, zoxide, atuin) installed via winget.


Machine-Specific Configuration

kecovo

Git Bash Environment (audited 2026-02-25):

  • Git: 2.53.0
  • Node: 24.14.0 LTS via fnm 1.38.1 (fnm install 24, fnm use 24)
  • Python: 3.14.3 (python), 3.14.0 (python3)
  • GitHub CLI: 2.87.3
  • Prompt: starship 1.24.2
  • History: Atuin 18.12.1 (fuzzy Ctrl-R, up-arrow search)
  • Docker: Docker Desktop (start manually, not on PATH without it)
  • CLI tools: eza 0.23.4, bat 0.26.1, fd 10.3.0, ripgrep 15.1.0, fzf 0.68.0 (not shell-integrated), zoxide 0.9.9, lazygit 0.59.0
  • Policy: even LTS Node only

WSL2: Ubuntu available via WSL2

wsl

Maintenance

System cleanup (run as Administrator):

# Dry run first
& ~/scripts/maintenance.ps1 -DryRun

# Full cleanup
& ~/scripts/maintenance.ps1

Options: -SkipGaming, -SkipDev, -SkipBrowsers

Scheduled Tasks:

  • Workstation Temp Cleanup - Weekly on Sundays at 10:00 AM (user temp, browser/dev caches)
  • Workstation Update Check - Weekly on Saturdays at 9:00 AM (checks for winget updates)
  • Note: Full maintenance task not yet scheduled (use ~/scripts/create-maintenance-task-v2.ps1 to create)

Setup Scripts: The ~/productionize/ directory exists but is currently empty. Setup scripts can be added here for future system provisioning.

rogpop16redux

Git Bash Environment (audited 2026-02-28):

  • Git: 2.53.0
  • Node: 24.13.0 LTS via fnm
  • Python: 3.12.10 (system), 3.14 (ARM build)
  • Java: 21 (Temurin) via winget
  • Rust: 1.93.1 (stable) via rustup
  • mise runtimes: bun 1.3.10, deno 2.7.1, go 1.26.0, zig 0.15.2
  • GitHub CLI: 2.87.3
  • Prompt: starship 1.24.2
  • GPU: NVIDIA RTX 4090 Laptop GPU, CUDA 13.1, driver 591.86
  • Ollama: 0.17.4 (local LLMs on GPU)
  • Docker: Docker Desktop
  • uv: 0.10.7

Repos:

  • ~/dotfiles/ — chezmoi source (HTTPS)
  • ~/wezterm-config/ — WezTerm config (HTTPS)
  • ~/minecraft-server/ — Minecraft server project (HTTPS)