Synthèse
Kai est un outil CLI personnalisé qui intègre Claude Code avec des notifications vocales et une gestion de contexte. Il offre plusieurs modes d'utilisation (interactif, requête unique, silencieux) et s'exécute en TypeScript/Bun avec des outils configurables. Les notifications vocales créent une boucle de retour naturelle permettant une sensibilisation ambiante du travail asynchrone.
At the center of my workflow is a custom kai command that wraps Claude Code with voice notifications and context management. bash# Interactive mode (default PAI directory) kai # Single-shot query with voice kai "what's my schedule today? " # Run with specific context directory kai --context ~/Projects/Website "deploy the latest changes" # Silent mode (no voice) kai --no-voice "analyze this code for security issues" # Wallpaper management (Kitty terminal integration) kai wallpaper circuit-board1234567891011121314 The implementation (TypeScript/Bun): typescriptclass Kai { private config: KaiConfig = { contextDir: PAI_DIR, voice: true, maxTurns: 10, allowedTools: ["Bash", "Edit", "Read", "Write", "Grep", "Glob", ... ], systemPrompt: `You are Kai, Daniel's digital assistant. You're snarky but helpful, concise and direct.
` }; async run(prompt: string, options: Partial = {}): Promise { // Voice speaks the prompt await this. notify("Kai Starting", `Working on: ${prompt}`, true); // Execute Claude with configured tools and context const proc = Bun. spawn(["claude", ... args], { cwd: this. config.
contextDir, env: { KAI_SESSION: "true" } }); // Extract summary from output const summaryMatch = output. match(/SUMMARY:\s*(. +)/); // Voice speaks the completion await this. notify("Kai Complete", summary, true); } }123456789101112131415161718192021222324252627 The voice notifications create a natural feedback loop. When I run kai "research these 5 companies" and walk away, I hear "Kai starting: Working on research these 5 companies" from across the room.
Five minutes later I hear "Kai complete: I researched all five companies and found funding data for each. " This transforms asynchronous work into ambient awareness. The wallpaper integration is a small detail that makes a difference. I have a collection of UL-branded wallpapers for Kitty terminal.