- Change Python script execution cwd from sandboxDir to targetDir
- Files now download directly to user's current working directory
- Update message to show exact download path
- Maintains pip install in .claude/sandbox for dependencies
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Keep --studio as separate web interface command for Claude Code Studio
- Make --sandbox e2b pure CLI experience without opening web interface
- Add interactive agent selection when --agent not provided
- Agent list fetched from GitHub with option to continue without agent
- Maintain existing prompt collection and Y/n confirmation flow
- Real-time log display and folder download already working
This ensures --sandbox e2b follows the CLI workflow:
1. Check/download agents if missing
2. Prompt for input if --prompt not provided
3. Confirm E2B execution with Y/n
4. Execute and show logs
5. Download folder when complete
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Load .env file from current working directory (where command is executed)
- Pass environment variables correctly to Python E2B launcher
- Show API key status on server startup with clear feedback
- Ensure E2B and Anthropic API keys are loaded from user's project
- Better debugging output for environment variable loading
- Add prominent API keys notice with setup instructions
- Include direct links to get E2B and Anthropic API keys
- Improve error handling to detect missing API key errors
- Show helpful error messages for API key configuration
- Better user guidance for .env file setup
Features:
✅ Interactive Project Requirements Editor:
- Opens when --prompt parameter is not provided in sandbox mode
- Uses inquirer editor type for multi-line text input
- Comprehensive default template with structured guidance
- Input validation (minimum 10 characters)
✅ Enhanced User Experience:
- Clear instructions on how to provide detailed requirements
- Pre-filled template with examples and categories:
* Feature descriptions
* Technical requirements (tech stack, styling)
* Design requirements (colors, layout, UI style)
- Real example at the bottom for reference
✅ Smart Flow:
- Only triggers when prompt is missing in sandbox mode
- Captures user input and continues with normal sandbox execution
- Maintains all existing functionality when --prompt is provided
This allows users to run sandbox mode without specifying --prompt
and get a guided experience to describe their project requirements.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Changes:
- E2B launcher now downloads files to ./ (project root) instead of ./e2b-outputs/
- Updated confirmation dialog to show "Files will be downloaded to project root directory"
- Updated modal feature text to "Files downloaded to project root"
- Removed timestamp folder organization for simpler file management
This ensures generated files are immediately available in the project root
where users expect them, without needing to navigate to subfolders.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Features added:
✅ Sandbox Execution Confirmation:
- Beautiful formatted confirmation dialog with execution details
- Shows agent name, truncated prompt, provider (E2B Cloud)
- Displays execution info: real-time logs, file downloads, timeout
- Clear ESC cancellation instructions
✅ ESC Key Cancellation:
- Real-time ESC key detection during sandbox execution
- Graceful process termination with SIGTERM
- Proper stdin cleanup and raw mode handling
- User-friendly cancellation messages
✅ Enhanced User Experience:
- Informative confirmation dialog before execution
- Real-time execution status and instructions
- Safe process cancellation without hanging
- Clear feedback for all execution states
This provides users with full control over sandbox execution and clear
visibility into what will happen during the E2B sandbox process.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Problem: When using --sandbox with --prompt, the system was showing
"Do you want to execute this prompt in Claude Code?" confirmation dialog
after installing the agent, even though sandbox mode should handle the
prompt execution directly.
Root Cause: The issue existed since the beginning. When --sandbox installs
an agent internally, the installIndividualComponents() function was also
checking for options.prompt and calling handlePromptExecution(), creating
a duplicate prompt handling path.
Solution: Added !options.sandbox condition to all three locations where
handlePromptExecution() is called:
1. Main template installation flow (line 372)
2. Individual components installation (line 1454)
3. Workflow components installation (line 1623)
This ensures prompt execution only happens in regular mode, not sandbox mode.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Extended Node.js spawn timeout from default to 15 minutes (900 seconds)
- Increased Python E2B launcher timeout from 5 to 10 minutes (600 seconds)
- Updated monitor script to use same extended timeout
- Added timeout handling with user-friendly error messages
- Added timeout notification to inform users of extended wait times
Resolves timeout issues with complex Claude Code operations in E2B sandboxes.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove complex verification process that was causing sequence issues
- Simplify installation flow to: download → install → execute
- E2B functionality verified manually and works correctly
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add E2B sandbox component with Python launcher script
- Support CLI parameters for E2B and Anthropic API keys (--e2b-api-key, --anthropic-api-key)
- Add comprehensive error handling for file downloads
- Make dotenv import optional in launcher script
- Add complete blog post with sandbox usage guide
- Update component generation system to support sandbox category
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add --verbose flag support for debugging agent execution
- Remove YAML front matter from system prompts to fix agent behavior
- Switch from --append-system-prompt to --system-prompt for better control
- Add detailed debug output showing command execution details
- Update help text to include verbose option
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
🌍 Major new feature: Global AI Agents powered by Claude Code SDK
## New Features
- **Global Agent Creation**: `--create-agent <agent-name>`
- **Agent Management**: `--list-agents`, `--update-agent`, `--remove-agent`
- **Zero Configuration**: Agents install to /usr/local/bin (immediately available)
- **Auto Context Detection**: Smart project type detection and file context
- **Universal Access**: Works from any directory, in scripts, CI/CD, npm tasks
## Technical Implementation
- New global-agent-manager.js module with complete agent lifecycle
- Automatic PATH management across shell environments
- Executable script generation with Claude Code SDK integration
- Real-time loading indicators during AI processing
- Robust error handling and fallback mechanisms
## Frontend Integration
- Enhanced agent modals with Global Agent installation options
- New CSS styles for global agent sections
- Copy-to-clipboard functionality for all commands
- Usage examples and feature highlights
## User Experience
Before: Traditional project-based agent installation
After: `cct --create-agent security-auditor` → `security-auditor "prompt"` (anywhere)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove obsolete tracking files (docs/track.html, docs/api/track.html)
- Simplify tracking-service.js by removing telemetry fallback system
- Update documentation to reflect Supabase-only architecture
- Remove references to GitHub Issues and unused workflow components
- Clean up legacy GitHub repo references in tracking service
- Update API examples to use correct endpoint and payload format
The system now uses only Supabase database for tracking, eliminating
the complex fallback system that was previously in place.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Point tracking service to /api/track-download-supabase
- Ensure production tracking uses working endpoint
- All downloads will now be properly stored in Supabase database
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implements a comprehensive download tracking system inspired by npm analytics
to monitor component usage and improve popular components.
Key features:
• Anonymous download tracking for all component types (agents, commands, mcps, settings, hooks)
• Vercel + PostgreSQL backend with dual endpoint strategy
• Privacy-first design with complete opt-out support
• Fire-and-forget tracking that never blocks user experience
• Comprehensive test suite and documentation
Backend changes:
• Created API endpoint /api/track-download.js with PostgreSQL integration
• Implemented proper database schema with download_stats aggregation
• Added request validation, rate limiting, and security measures
• Configured Vercel deployment with database functions
CLI changes:
• Enhanced TrackingService to support database + telemetry endpoints
• Added automatic tracking for all installation types
• Implemented graceful fallback when database is unavailable
• Maintains existing privacy and opt-out mechanisms
Testing & Documentation:
• Added comprehensive test suite (test-download-tracking.js)
• Created detailed documentation (DOWNLOAD_TRACKING.md)
• Included deployment instructions and troubleshooting guide
• Added security and compliance information
The system respects user privacy by:
- Only collecting anonymous usage metrics
- Providing multiple opt-out mechanisms (CCT_NO_TRACKING, CCT_NO_ANALYTICS, CI=true)
- Never storing personally identifiable information
- Using fire-and-forget requests with timeout limits
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change 'settings and hooks' to 'configuration components'
- More flexible terminology that doesn't expose internal categorization
- Cleaner user experience with generic language
Before:
📍 Choose installation locations for settings and hooks:
? Where would you like to install settings and hooks?
📋 Will install settings and hooks in: user, local
After:
📍 Choose installation locations for configuration components:
? Where would you like to install the configuration components?
📋 Will install configuration components in: user, local
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Ask installation locations ONCE at the beginning for all settings and hooks
- Eliminate repeated prompts during batch installation
- Add sharedInstallLocations parameter to individual functions
- Use shared locations when provided, fall back to individual prompts otherwise
- Show clear message about selected locations before installation begins
Flow:
1. User runs: --setting=model/use-sonnet,telemetry/enable-telemetry
2. CLI asks ONCE: 'Where would you like to install settings and hooks?'
3. User selects locations (e.g., user, project, local)
4. CLI shows: 'Will install settings and hooks in: user, project, local'
5. All settings install to those same locations automatically
6. No additional prompts, CLI exits after completion
Prevents the frustrating loop where each component shows its own
installation menu, creating a better user experience for batch operations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add successfulInstallations counter to track actual successful installations
- Show accurate count in summary messages instead of total attempted
- Differentiate between complete success and partial success:
- 🎉 Green message when all locations successful
- ⚠️ Yellow message when some locations failed
- ❌ Red details showing number of failed installations
- Prevents misleading 'successfully installed in 4 location(s)!' when only 3 succeeded
Example outputs:
✅ All successful: '🎉 Setting installed in 3 location(s)!'
⚠️ Partial success: '⚠️ Setting installed in 3 of 4 location(s).'
'❌ 1 installation(s) failed due to permission or other errors.'
Fixes the case where enterprise settings fail due to permission denied
but user still sees success message for all locations.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Settings and hooks now support checkbox selection for multiple installation locations
- Users can install the same component in multiple environments simultaneously:
- 🏠 User Settings (~/.claude/settings.json) - Global
- 📁 Project Settings (.claude/settings.json) - Team shared
- ⚙️ Local Settings (.claude/settings.local.json) - Personal
- 🏢 Enterprise Settings - System-wide (requires admin)
- Interactive prompts show checkbox interface with validation
- Each location is processed independently with conflict detection
- Progress messages show installation status for each location
- Tracking includes installation_location for analytics
- Graceful error handling - failed locations don't stop others
- Summary message shows total installations completed
Example: Install allow-npm-commands in both user and project settings
for global availability plus team sharing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Settings and hooks now show interactive prompts for installation location
- Fixed inconsistency between silent mode default and interactive mode default
- Both now default to 'local' settings (.claude/settings.local.json)
- Respects --yes flag to skip prompts when needed
- Users will now see the 4 installation options:
- 🏠 User Settings (~/.claude/settings.json) - Global
- 📁 Project Settings (.claude/settings.json) - Team shared
- ⚙️ Local Settings (.claude/settings.local.json) - Personal
- 🏢 Enterprise Settings - System-wide (requires admin)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
✨ New Features:
- Interactive prompt to choose installation location for settings and hooks
- Support for all Claude Code configuration files hierarchy:
• User settings (~/.claude/settings.json) - Global for all projects
• Project settings (.claude/settings.json) - Shared with team
• Local settings (.claude/settings.local.json) - Personal, not committed
• Enterprise managed settings - System-wide policy (requires admin)
🖥️ Platform Support:
- macOS: /Library/Application Support/ClaudeCode/managed-settings.json
- Linux/WSL: /etc/claude-code/managed-settings.json
- Windows: C:\ProgramData\ClaudeCode\managed-settings.json
🔧 Technical Improvements:
- Unified installation logic for both hooks and settings
- Admin privilege detection and error handling for enterprise settings
- Proper directory creation for different installation locations
- Clear user feedback about target paths and requirements
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update all 14 hooks to use proper Claude Code array/matcher format
- Fix CLI merge logic to handle new hook structure correctly
- Add support for both old and new hook formats during migration
- Remove conflict detection for hooks (Claude Code arrays support multiple entries)
- Ensure hooks follow proper structure:
{
"hooks": {
"EventName": [
{
"matcher": "ToolPattern",
"hooks": [
{"type": "command", "command": "bash-command"}
]
}
]
}
}
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add 9 Settings components (telemetry, permissions, model, cleanup)
- Add 6 Hooks components (formatting, git integration, backups, testing)
- Implement CLI installation with --setting and --hook flags
- Add conflict detection that prompts user before overwriting
- Merge settings into .claude/settings.json with intelligent deep merge
- Update data-loader.js to handle new component types
- Add filter buttons for Settings and Hooks in web interface
- Generate components.json with new Settings and Hooks sections
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added padding-bottom to chat-messages container
- Footer now has proper spacing and doesn't cover content
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Shopify-style cart sidebar with drag-from-right animation
- Implement Add to Stack buttons for all component cards
- Create dynamic command generation for agents, commands, and MCPs
- Add cart state management with localStorage persistence
- Implement notification system with auto-dismiss
- Add social sharing for X/Twitter and Threads
- Create overlay copy buttons for command text in cards and cart
- Optimize card layout grid system (4 columns desktop, 2 tablet, 1 mobile)
- Add cart floating button with item count badge
- Fix scroll prevention and notification persistence issues
- Remove quotes from agent parameters in generated commands
- Implement compact cart item design with Clear All repositioning
- Add comprehensive cart styling with responsive design
- Include share functionality with proper URL encoding
- Update CLI package version to 1.14.16 for npm compatibility
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add description field to MCP JSON files for frontend display
- Update generate_components_json.py to extract MCP descriptions
- Modify CLI to exclude description field from downloaded .mcp.json files
- Update frontend to display MCP descriptions in component cards
- Implement separate description handling for MCPs vs other components
Key changes:
• MCP JSON files now include description field above mcpServers
• Python script extracts descriptions into separate field in components.json
• CLI automatically removes description field during installation
• Frontend shows descriptive text for MCP cards using description field
• Maintains backward compatibility with existing MCP installations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement exponential backoff for GitHub API rate limits (5 retries max)
- Add sophisticated rate limit detection with exact wait times
- Handle missing files/directories gracefully instead of failing completely
- Add comprehensive download statistics and progress tracking
- Distinguish between different types of 403 errors (rate limit vs permissions)
- Continue installation even when some template files are unavailable
- Provide detailed summary of successful, skipped, and failed downloads
- Support workflow where some templates may have missing optional files
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>