返回 Skill 列表
extension
分类: 开发与工程无需 API Key

julien-dev-powershell-profile

管理PowerShell配置文件、别名、函数。触发条件:添加别名、更新配置文件、修改claude命令、Microsoft.PowerShell_profile.ps1

person作者: jakexiaohubgithub

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