Agent skill

julien-dev-powershell-profile

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

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/julien-dev-powershell-profile

SKILL.md

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:

cmd
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

Didn't find tool you were looking for?

Be as detailed as possible for better results