julien-dev-powershell-profile
Manage PowerShell profile, aliases, functions. Triggers: add alias, update profile, modify claude command, Microsoft.PowerShell_profile.ps1
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.
| name | julien-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
- Read profile to identify correct section (11 numbered sections)
- Edit profile (or use Python if OneDrive sync fails)
- User runs
rupto 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
claudeorhappycommands - Check
$env:MCP_SECRETS_LOADEDto 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.jsonin 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:
- Prompt wrapper AFTER Zoxide (profile:86-104) ✅
- Windows Terminal suppressApplicationTitle: false ✅
- SessionStart hook restore-terminal-title-on-start.ps1 ✅
- 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
rupor new terminal
Compatible Skills After
- None typically (standalone modifications)
Tools Used
Read(read current profile state)Edit(modify profile sections)Bashwith 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