julien-dev-powershell-profile

theflysurfer's avatarfrom theflysurfer

Manage PowerShell profile, aliases, functions. Triggers: add alias, update profile, modify claude command, Microsoft.PowerShell_profile.ps1

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 18, 2025

When & Why to Use This Skill

This Claude skill automates the management of PowerShell profiles, allowing developers to efficiently handle aliases, functions, and environment configurations. It features advanced performance optimizations like lazy loading for MCP secrets to reduce shell startup time and provides robust workarounds for OneDrive synchronization issues, ensuring a seamless and high-performance terminal experience.

Use Cases

  • Automated Alias Management: Quickly add, update, or remove PowerShell aliases and functions to streamline repetitive command-line tasks without manual profile editing.
  • Shell Performance Optimization: Implement lazy loading for environment secrets and heavy modules to significantly decrease PowerShell startup latency.
  • Cross-Environment Sync Fixes: Use automated Python-based workarounds to modify PowerShell profiles when standard file edits are blocked by OneDrive sync locks.
  • Terminal UI Customization: Manage dynamic terminal titles and prompt wrappers to maintain consistent context and visibility across different shell sessions and tools like Claude Code.
namejulien-dev-powershell-profile
description"Manage PowerShell profile, aliases, functions. Triggers: add alias, update profile, modify claude command, Microsoft.PowerShell_profile.ps1"

PowerShell Profile Manager

Profile: C:\Users\julien\OneDrive\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

Workflow

Observability

First: At the start of execution, display:

🔧 Skill "julien-dev-powershell-profile" activated
  1. Read profile to identify correct section (11 numbered sections)
  2. Edit profile (or use Python if OneDrive sync fails)
  3. User runs rup to reload

Performance Optimizations

Lazy Loading MCP Secrets

Location: profile:349-431 (Load-MCPSecrets function)

Impact: Saves ~700ms on EVERY PowerShell startup (-64% faster)

How it works:

  • CredentialManager Add-Type compilation deferred until needed
  • Only loaded when launching claude or happy commands
  • Check $env:MCP_SECRETS_LOADED to avoid reloading

Critical: When modifying secret loading, ensure it stays lazy!

Get-ClaudeArgs - DRY Common Logic

Location: profile:427-457

Purpose: Shared argument generation for claude, happy, claude-official

Features:

  • Auto-detects .mcp.json in current directory
  • Auto-resume (unless --new, -n, new, . passed)
  • Sets CLAUDE_CODE_DISABLE_TERMINAL_TITLE=1 (prevents title override)

When modifying: Update Get-ClaudeArgs, not individual functions

Claude/Happy Architecture

Three Functions, One Goal

Function Command Purpose
claude happy.cmd Default - uses Happy wrapper (mobile control)
happy happy.cmd Alias for claude
claude-official claude.cmd Bypass Happy wrapper if needed

Why Happy?

Happy (npm: happy-coder) provides enhanced mobile control over Claude Code.

CRITICAL ISSUE: Both happy.cmd and claude.cmd contain:

title %COMSPEC%

This overwrites terminal title to "C:\WINDOWS\system32\cmd.exe"

Solution: Multi-layered hook system (SessionStart + PostToolUse)

See CLAUDE.md section "Solution Complète pour les Titres d'Onglets Dynamiques"

Requires 4 components:

  1. Prompt wrapper AFTER Zoxide (profile:86-104) ✅
  2. Windows Terminal suppressApplicationTitle: false ✅
  3. SessionStart hook restore-terminal-title-on-start.ps1 ✅
  4. PostToolUse hook update-terminal-title.js (after every Bash command) ✅

Reference Files

Need File
Section details references/profile-structure.md
Code patterns references/code-patterns.md
OneDrive issues references/troubleshooting.md
Terminal title fix CLAUDE.md "Solution Complète pour les Titres d'Onglets"

Skill Chaining

Skills Required Before

  • None (entry point skill)

Input Expected

  • User request to modify profile/alias/function
  • Clear description of desired behavior

Output Produced

  • Format: Modified Microsoft.PowerShell_profile.ps1
  • Side effects: Changes apply after rup or new terminal

Compatible Skills After

  • None typically (standalone modifications)

Tools Used

  • Read (read current profile state)
  • Edit (modify profile sections)
  • Bash with Python (workaround for OneDrive sync)

Visual Workflow

User: "Add/modify PowerShell alias"
    ↓
[THIS SKILL]
    ├─► Read profile + refs as needed
    ├─► Identify correct section
    ├─► Edit (or Python workaround)
    └─► Verify modification
    ↓
User runs `rup` or opens new terminal