Skip to content

Commit f84ffc4

Browse files
A13xSMclaude
andcommitted
feat(pai): Add --wrapper mode for VSCode extension integration
Adds a new --wrapper flag to pai.ts that enables VSCode Claude Code extension integration by: - Staying in current working directory (respects VSCode workspace) - Skipping banner display (cleaner VSCode terminal) - Skipping voice notification (inappropriate for IDE context) - Maintaining MCP configuration support Also adds bin/pai-wrapper executable script that can be set as the "Claude Process Wrapper" in VSCode settings. Usage: VSCode Settings > Claude Code: Claude Process Wrapper Set to: ~/.claude/bin/pai-wrapper Co-Authored-By: Claude <noreply@anthropic.com>
1 parent aca21b4 commit f84ffc4

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
# PAI wrapper for VSCode Claude Code extension
3+
# Invokes PAI in wrapper mode (stays local, skips banner/voice, keeps MCP config)
4+
exec bun ~/.claude/skills/CORE/Tools/pai.ts --wrapper "$@"

Releases/v2.4/.claude/skills/CORE/Tools/pai.ts

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
* pai -m bd,ap Launch with multiple MCPs
1212
* pai -r / --resume Resume last session
1313
* pai --local Stay in current directory (don't cd to ~/.claude)
14+
* pai --wrapper VSCode wrapper mode (local, no banner/voice, MCP only)
1415
* pai update Update Claude Code
1516
* pai version Show version info
1617
* pai profiles List available profiles
@@ -363,8 +364,11 @@ function cmdWallpaper(args: string[]) {
363364
// Commands
364365
// ============================================================================
365366

366-
async function cmdLaunch(options: { mcp?: string; resume?: boolean; skipPerms?: boolean; local?: boolean }) {
367-
displayBanner();
367+
async function cmdLaunch(options: { mcp?: string; resume?: boolean; skipPerms?: boolean; local?: boolean; wrapper?: boolean }) {
368+
// Skip banner in wrapper mode (VSCode integration)
369+
if (!options.wrapper) {
370+
displayBanner();
371+
}
368372
const args = ["claude"];
369373

370374
// Handle MCP configuration
@@ -381,13 +385,15 @@ async function cmdLaunch(options: { mcp?: string; resume?: boolean; skipPerms?:
381385
args.push("--resume");
382386
}
383387

384-
// Change to PAI directory unless --local flag is set
385-
if (!options.local) {
388+
// Change to PAI directory unless --local or --wrapper flag is set
389+
if (!options.local && !options.wrapper) {
386390
process.chdir(CLAUDE_DIR);
387391
}
388392

389-
// Voice notification (using focused marker for calmer tone)
390-
notifyVoice(`[🎯 focused] ${getDAName()} here, ready to go.`);
393+
// Voice notification (skip in wrapper mode)
394+
if (!options.wrapper) {
395+
notifyVoice(`[🎯 focused] ${getDAName()} here, ready to go.`);
396+
}
391397

392398
// Launch Claude
393399
const proc = spawn(args, {
@@ -546,6 +552,7 @@ USAGE:
546552
k -m bd,ap Launch with multiple MCPs
547553
k -r, --resume Resume last session
548554
k -l, --local Stay in current directory (don't cd to ~/.claude)
555+
k --wrapper VSCode wrapper mode (local, no banner/voice)
549556
550557
COMMANDS:
551558
k update Update Claude Code to latest version
@@ -600,6 +607,7 @@ async function main() {
600607
let resume = false;
601608
let skipPerms = true;
602609
let local = false;
610+
let wrapper = false;
603611
let command: string | undefined;
604612
let subCommand: string | undefined;
605613
let subArg: string | undefined;
@@ -632,6 +640,9 @@ async function main() {
632640
case "--local":
633641
local = true;
634642
break;
643+
case "--wrapper":
644+
wrapper = true;
645+
break;
635646
case "-v":
636647
case "--version":
637648
case "version":
@@ -707,7 +718,7 @@ async function main() {
707718
break;
708719
default:
709720
// Launch with options
710-
await cmdLaunch({ mcp, resume, skipPerms, local });
721+
await cmdLaunch({ mcp, resume, skipPerms, local, wrapper });
711722
}
712723
}
713724

0 commit comments

Comments
 (0)