{"id":36974711,"url":"https://github.com/involvex/vscode-statusbar-quick-actions","last_synced_at":"2026-01-13T22:01:37.760Z","repository":{"id":330735911,"uuid":"1123730837","full_name":"involvex/vscode-statusbar-quick-actions","owner":"involvex","description":"Highly customizable statusbar buttons for executing user-defined scripts and commands with advanced features including theme support, execution tracking, and intelligent visibility conditions.","archived":false,"fork":false,"pushed_at":"2025-12-28T15:19:14.000Z","size":1637,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-29T12:48:43.598Z","etag":null,"topics":["vsce","vscode","vscode-extension","vscode-plugin","vscode-status-bar"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=involvex.statusbar-quick-actions","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/involvex.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"involvex","buy_me_a_coffee":"involvex","custom":["https://paypal.me/involvex"]}},"created_at":"2025-12-27T13:54:54.000Z","updated_at":"2025-12-28T15:19:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/involvex/vscode-statusbar-quick-actions","commit_stats":null,"previous_names":["involvex/vscode-statusbar-quick-actions"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/involvex/vscode-statusbar-quick-actions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fvscode-statusbar-quick-actions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fvscode-statusbar-quick-actions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fvscode-statusbar-quick-actions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fvscode-statusbar-quick-actions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/involvex","download_url":"https://codeload.github.com/involvex/vscode-statusbar-quick-actions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/involvex%2Fvscode-statusbar-quick-actions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28400397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["vsce","vscode","vscode-extension","vscode-plugin","vscode-status-bar"],"created_at":"2026-01-13T22:01:37.686Z","updated_at":"2026-01-13T22:01:37.751Z","avatar_url":"https://github.com/involvex.png","language":"TypeScript","funding_links":["https://github.com/sponsors/involvex","https://buymeacoffee.com/involvex","https://paypal.me/involvex"],"categories":[],"sub_categories":[],"readme":"# StatusBar Quick Actions\n\nA comprehensive VSCode extension that provides highly customizable statusbar buttons for executing user-defined scripts and commands.\n\n## Features\n\n### 🚀 **Universal Command Execution**\n\n- **Package Manager Scripts**: Support for npm, yarn, pnpm, and bun\n- **GitHub CLI Integration**: Execute GitHub commands directly from statusbar\n- **Custom Shell Scripts**: Run any shell command with environment variables\n- **VSCode Commands**: Execute built-in VSCode commands\n- **Auto-Detection**: Automatically detect package managers from lock files\n\n### 🎨 **Modern Theme System**\n\n- **Dark/Light Mode**: Automatic theme detection from VSCode\n- **High Contrast Support**: Accessibility-first design\n- **Custom Color Palettes**: Configurable colors for different button states\n- **StatusBar Integration**: Seamless integration with VSCode themes\n\n### 👁️ **Smart Visibility Conditions**\n\n- **File Type Patterns**: Show buttons based on current file type\n- **Git Repository Status**: Conditional display based on repository state\n- **Workspace Folder Detection**: Context-aware button visibility\n- **File/Directory Existence**: Dynamic button configuration\n\n### ⚡ **Enterprise-Grade Features**\n\n- **Real-time Progress**: Visual feedback during command execution\n- **Error Handling**: Comprehensive error management with user-friendly messages\n- **Command History**: Track and analyze command execution patterns\n- **Timeout Management**: Configurable execution timeouts\n- **Background Execution**: Run commands in background with progress indicators\n\n### ♿ **Accessibility Support**\n\n- **Keyboard Navigation**: Full keyboard accessibility\n- **Screen Reader Compatibility**: ARIA labels and descriptions\n- **High Contrast Mode**: Optimized for accessibility needs\n- **Focus Management**: Proper focus order and indicators\n\n## Installation\n\n1. **From VS Code**: Search for \"StatusBar Quick Actions\" in the Extensions view\n\n   ```url\n   https://marketplace.visualstudio.com/items?itemName=involvex.statusbar-quick-actions\n   ```\n\n2. **From VSIX**: Download the extension package and install via `code --install-extension`\n3. **Development**: Clone the repository and install locally\n\n## Quick Start\n\n### Basic Configuration\n\n1. Open VS Code Settings (`Ctrl+,` or `Cmd+,`)\n2. Search for \"StatusBar Quick Actions\"\n3. Configure your first button:\n\n```json\n{\n  \"statusbarQuickActions\": {\n    \"buttons\": [\n      {\n        \"id\": \"npm-dev\",\n        \"text\": \"$(play) Dev\",\n        \"tooltip\": \"Start development server\",\n        \"command\": {\n          \"type\": \"npm\",\n          \"script\": \"dev\"\n        },\n        \"enabled\": true,\n        \"alignment\": \"left\",\n        \"priority\": 100\n      }\n    ]\n  }\n}\n```\n\n### Sample Configurations\n\nThe extension includes comprehensive sample configurations for various project types:\n\n- **JavaScript/Node.js**: npm scripts, testing, building\n- **React/TypeScript**: Development server, builds, testing\n- **Python Development**: Virtual environments, testing, formatting\n- **Git Operations**: Status, commit, push, pull workflows\n- **Docker Workflows**: Container management and deployment\n\nSee `SAMPLE-CONFIGURATIONS.md` for detailed examples.\n\n## Configuration CLI\n\nThe extension includes a powerful command-line interface for managing configurations without opening VSCode settings.\n\n### Running the CLI\n\n```bash\n# Using bun (recommended)\nbun run dev:cli\n\n# Or directly\nbun src/config-cli.ts\n```\n\n### CLI Features\n\nThe CLI provides an interactive menu with the following options:\n\n#### 1. View Current Configuration\n\nDisplay all configured buttons with their properties:\n\n- Button ID, text, and command type\n- Enabled/disabled status\n- Current debug mode setting\n\n#### 2. Apply Preset\n\nApply pre-built button configurations:\n\n- **Node.js Development**: npm start, test, build\n- **Bun Development**: bun dev, test, build\n- **Git Workflow**: git status, pull, push\n\nMerge modes:\n\n- Replace all (removes existing buttons)\n- Append (adds to existing buttons)\n- Merge (replaces buttons with same ID)\n\n#### 3. Add Button\n\nInteractive wizard to create new buttons:\n\n- Supports all command types (npm, yarn, pnpm, bun, shell, vscode, task, detect)\n- Auto-generates unique IDs\n- Configures text, tooltip, and command\n\n#### 4. Remove Button\n\nDelete buttons from configuration with confirmation.\n\n#### 5. Toggle Debug Mode\n\nEnable or disable debug logging for the extension.\n\n#### 6. Export Configuration\n\nSave current configuration to a JSON file for backup or sharing.\n\n#### 7. Import Configuration\n\nLoad configuration from a JSON file with merge or replace options.\n\n#### 8. Apply Label Preset\n\nAdd dynamic labels to buttons for real-time information:\n\n**Git Presets**:\n\n- **Git Branch**: Show current branch (`$(git-branch) main`)\n- **Git Status**: Show repository status (`$(git-commit) Clean`)\n- **Git Remote URL**: Show remote origin URL\n\n**Package Presets**:\n\n- **NPM Package Version**: Monitor package versions from npm registry\n  - Prompts for package name (e.g., `vscode`, `react`)\n  - Updates every 5 minutes\n  - Shows version like `$(package) v1.2.3`\n\n**System Presets**:\n\n- **Current Time**: Display real-time clock\n- **Environment Variable**: Show any environment variable value\n\nExample workflow:\n\n```bash\n# 1. Select \"Apply Label Preset\"\n# 2. Choose settings location (user/workspace)\n# 3. Select button to modify\n# 4. Choose preset (e.g., \"Git Branch\")\n# 5. Label updates automatically in VSCode\n```\n\n#### 9. Configure Performance\n\nOptimize extension performance with these settings:\n\n**Visibility Debounce** (0-5000ms):\n\n- Delay before checking button visibility conditions\n- Lower = more responsive, higher = better performance\n- Recommended: 300ms (balanced)\n\n**Virtualization**:\n\n- Enable for large button lists (10+ buttons)\n- Improves rendering performance\n- Slight delay on initial load\n\n**Result Caching**:\n\n- Cache visibility check results\n- Reduces redundant computations\n- Recommended: enabled\n\n**Performance Presets**:\n\n1. **Balanced** (300ms debounce, caching on)\n   - Best for most users\n   - Good balance of responsiveness and performance\n\n2. **Fast** (100ms debounce, caching on, virtualization on)\n   - For users with many buttons\n   - Maximum responsiveness\n   - Slightly higher CPU usage\n\n3. **Minimal** (0ms debounce, caching off)\n   - For debugging or testing\n   - Instant updates but higher resource usage\n\n#### 10. Reset to Defaults\n\nRemove all buttons and reset settings to defaults (requires confirmation).\n\n#### 11. Help\n\nDisplay comprehensive help and usage information.\n\n### Settings Locations\n\nThe CLI allows managing two types of settings:\n\n**User Settings (Global)**:\n\n- Location: `%APPDATA%\\Code\\User\\settings.json` (Windows)\n- Location: `~/Library/Application Support/Code/User/settings.json` (macOS)\n- Location: `~/.config/Code/User/settings.json` (Linux)\n- Applies to all VSCode workspaces\n\n**Workspace Settings (Project-specific)**:\n\n- Location: `\u003cworkspace\u003e/.vscode/settings.json`\n- Only applies to current project\n- Overrides user settings\n\n### CLI Examples\n\n**Example 1: Quick Setup with Preset**\n\n```bash\n$ bun run dev:cli\n# Choose option 2 (Apply Preset)\n# Select location: 1 (User settings)\n# Select preset: 1 (Node.js Development)\n# Select merge mode: 1 (Replace all)\n✅ Preset \"Node.js Development\" applied to user settings\n```\n\n**Example 2: Add Dynamic Git Branch Label**\n\n```bash\n$ bun run dev:cli\n# Choose option 8 (Apply Label Preset)\n# Select location: 2 (Workspace settings)\n# Select button: 1 (Your existing button)\n# Select preset: 1 (Git Branch)\n✅ Label preset \"Git Branch\" applied to button \"My Button\"\n# Button now shows: $(git-branch) main (updates automatically)\n```\n\n**Example 3: Optimize Performance**\n\n```bash\n$ bun run dev:cli\n# Choose option 9 (Configure Performance)\n# Select location: 1 (User settings)\n# Choose option 4 (Apply Performance Preset)\n# Select preset: 2 (Fast)\n✅ Performance settings updated\n# Debounce: 100ms, Caching: Enabled, Virtualization: Enabled\n```\n\n**Example 4: Add NPM Version Monitor**\n\n```bash\n$ bun run dev:cli\n# Choose option 8 (Apply Label Preset)\n# Select button to modify\n# Select preset: 4 (NPM Package Version)\n# Enter package name: react\n✅ Label preset \"NPM Package Version\" applied\n# Button shows: $(package) v18.2.0 (updates every 5 minutes)\n```\n\n## Configuration Options\n\n### Button Configuration\n\n```json\n{\n  \"id\": \"unique-button-id\",\n  \"text\": \"$(icon) Button Text\",\n  \"tooltip\": \"Tooltip description\",\n  \"command\": {\n    \"type\": \"npm|yarn|pnpm|bun|shell|github|vscode|detect\",\n    \"script\": \"package-script-name\",\n    \"command\": \"shell-command\",\n    \"args\": [\"arg1\", \"arg2\"]\n  },\n  \"enabled\": true,\n  \"alignment\": \"left|right\",\n  \"priority\": 100,\n  \"colors\": {\n    \"foreground\": \"#ffffff\",\n    \"background\": \"#6c757d\"\n  },\n  \"execution\": {\n    \"foreground\": true,\n    \"showProgress\": true,\n    \"timeout\": 300000,\n    \"notifications\": {\n      \"showSuccess\": true,\n      \"showError\": true,\n      \"showOutput\": false\n    }\n  },\n  \"visibility\": {\n    \"conditions\": [\n      {\n        \"type\": \"fileType|fileExists|gitStatus|workspaceFolder\",\n        \"patterns\": [\"*.js\", \"*.ts\"],\n        \"status\": \"clean|dirty|ahead|behind\",\n        \"folders\": [\"src\", \"test\"],\n        \"invert\": false\n      }\n    ]\n  },\n  \"workingDirectory\": \"${workspaceFolder}\",\n  \"environment\": {\n    \"NODE_ENV\": \"development\",\n    \"API_URL\": \"http://localhost:3000\"\n  }\n}\n```\n\n### Theme Configuration\n\n```json\n{\n  \"statusbarQuickActions\": {\n    \"theme\": {\n      \"mode\": \"auto|dark|light|highContrast\",\n      \"dark\": {\n        \"button\": { \"foreground\": \"#ffffff\", \"background\": \"#6c757d\" },\n        \"executing\": { \"foreground\": \"#ffffff\", \"background\": \"#007acc\" },\n        \"error\": { \"foreground\": \"#ffffff\", \"background\": \"#dc3545\" }\n      },\n      \"light\": {\n        /* same structure */\n      },\n      \"highContrast\": {\n        /* same structure */\n      }\n    }\n  }\n}\n```\n\n### Notification Configuration\n\n```json\n{\n  \"statusbarQuickActions\": {\n    \"notifications\": {\n      \"showSuccess\": true,\n      \"showError\": true,\n      \"showProgress\": true,\n      \"position\": \"top-left|top-right|bottom-left|bottom-right\",\n      \"duration\": 5000,\n      \"includeOutput\": false\n    }\n  }\n}\n```\n\n## Command Types\n\n### Package Manager Scripts\n\n```json\n{\n  \"command\": {\n    \"type\": \"npm\",\n    \"script\": \"dev\"\n  }\n}\n```\n\n### Shell Commands\n\n```json\n{\n  \"command\": {\n    \"type\": \"shell\",\n    \"command\": \"echo\",\n    \"args\": [\"Hello\", \"World\"]\n  }\n}\n```\n\n### GitHub CLI\n\n```json\n{\n  \"command\": {\n    \"type\": \"github\",\n    \"command\": \"pr\",\n    \"args\": [\"create\", \"--fill\"]\n  }\n}\n```\n\n### VSCode Commands\n\n```json\n{\n  \"command\": {\n    \"type\": \"vscode\",\n    \"command\": \"editor.action.formatDocument\"\n  }\n}\n```\n\n### Auto-Detection\n\n```json\n{\n  \"command\": {\n    \"type\": \"detect\",\n    \"script\": \"dev\"\n  }\n}\n```\n\n## Visibility Conditions\n\n### File Type Patterns\n\n```json\n{\n  \"conditions\": [\n    {\n      \"type\": \"fileType\",\n      \"patterns\": [\"*.js\", \"*.ts\", \"*.jsx\", \"*.tsx\"]\n    }\n  ]\n}\n```\n\n### Git Repository Status\n\n```json\n{\n  \"conditions\": [\n    {\n      \"type\": \"gitStatus\",\n      \"status\": \"dirty\"\n    }\n  ]\n}\n```\n\n### Workspace Folders\n\n```json\n{\n  \"conditions\": [\n    {\n      \"type\": \"workspaceFolder\",\n      \"folders\": [\"api\", \"frontend\"]\n    }\n  ]\n}\n```\n\n### File Existence\n\n```json\n{\n  \"conditions\": [\n    {\n      \"type\": \"fileExists\",\n      \"path\": \"Dockerfile\"\n    }\n  ]\n}\n```\n\n## Commands\n\nThe extension provides several commands:\n\n- `statusbarQuickActions.editButton`: Edit button configuration\n- `statusbarQuickActions.viewHistory`: View command execution history\n- `statusbarQuickActions.clearHistory`: Clear command history\n\n## Keyboard Shortcuts\n\n- **Alt+1-9**: Execute buttons 1-9 (configurable)\n- **F1**: Show command palette with extension commands\n\n## Development Workflows\n\n### JavaScript/Node.js\n\n```json\n{\n  \"buttons\": [\n    {\n      \"id\": \"npm-install\",\n      \"text\": \"$(cloud-download) Install\",\n      \"command\": { \"type\": \"npm\", \"script\": \"install\" }\n    },\n    {\n      \"id\": \"npm-test\",\n      \"text\": \"$(beaker) Test\",\n      \"command\": { \"type\": \"npm\", \"script\": \"test\" }\n    }\n  ]\n}\n```\n\n### React Development\n\n```json\n{\n  \"buttons\": [\n    {\n      \"id\": \"react-dev\",\n      \"text\": \"$(triangle-right) Start\",\n      \"command\": { \"type\": \"npm\", \"script\": \"dev\" },\n      \"visibility\": {\n        \"conditions\": [{ \"type\": \"fileType\", \"patterns\": [\"*.tsx\", \"*.ts\"] }]\n      }\n    }\n  ]\n}\n```\n\n### Git Workflow\n\n```json\n{\n  \"buttons\": [\n    {\n      \"id\": \"git-status\",\n      \"text\": \"$(git-branch) Status\",\n      \"command\": { \"type\": \"shell\", \"command\": \"git\", \"args\": [\"status\"] }\n    },\n    {\n      \"id\": \"git-commit\",\n      \"text\": \"$(git-commit) Commit\",\n      \"command\": {\n        \"type\": \"shell\",\n        \"command\": \"git\",\n        \"args\": [\"commit\", \"-m\", \"${input:commitMessage}\"]\n      }\n    }\n  ]\n}\n```\n\n## Advanced Features\n\n### Environment Variables\n\n```json\n{\n  \"environment\": {\n    \"NODE_ENV\": \"development\",\n    \"API_URL\": \"http://localhost:3000\",\n    \"DEBUG\": \"app:*\"\n  }\n}\n```\n\n### Working Directory\n\n```json\n{\n  \"workingDirectory\": \"${workspaceFolder}/src\"\n}\n```\n\n### Timeout Configuration\n\n```json\n{\n  \"execution\": {\n    \"timeout\": 300000,\n    \"showProgress\": true\n  }\n}\n```\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Button not showing**\n   - Check visibility conditions\n   - Verify file associations\n   - Enable debug mode in settings\n\n2. **Command not found**\n   - Verify package manager installation\n   - Check PATH environment variable\n   - Ensure script exists in package.json\n\n3. **Permission errors**\n   - Check file permissions\n   - Verify working directory access\n   - Run VS Code as administrator (Windows)\n\n### Debug Mode\n\nEnable debug mode for detailed logging:\n\n```json\n{\n  \"statusbarQuickActions\": {\n    \"settings\": {\n      \"debug\": true\n    }\n  }\n}\n```\n\n### Output Panel\n\nCheck the \"StatusBar Quick Actions\" output channel for:\n\n- Command execution logs\n- Error messages\n- Configuration validation results\n\n## API Integration\n\n### VSCode Tasks Integration\n\nThe extension can integrate with VSCode's task system:\n\n```json\n{\n  \"command\": {\n    \"type\": \"shell\",\n    \"command\": \"code\",\n    \"args\": [\"--task\", \"build\"]\n  }\n}\n```\n\n### Custom Extensions\n\nDevelopers can extend the extension by:\n\n- Adding new command types\n- Implementing custom visibility conditions\n- Creating theme variants\n- Adding notification providers\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests\n5. Submit a pull request\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/vscode-statusbar-quick-actions.git\n\n# Install dependencies\ncd vscode-statusbar-quick-actions\nnpm install\n\n# Build the extension\nnpm run compile\n\n# Run in development mode\nnpm run watch\n```\n\n### Code Style\n\n- Use TypeScript with strict mode\n- Follow ESLint configuration\n- Write comprehensive tests\n- Document public APIs\n\n## License\n\nMIT License - see LICENSE file for details.\n\n## Changelog\n\n### v1.0.0\n\n- Initial release\n- Universal command execution\n- Modern theme system\n- Smart visibility conditions\n- Comprehensive sample configurations\n- Accessibility support\n- Enterprise-grade error handling\n\n## Support\n\n- **Issues**: Report bugs and feature requests on GitHub\n- **Documentation**: Comprehensive guides and samples\n- **Community**: Join discussions and share configurations\n\n---\n\n_Streamline your development workflow with intelligent statusbar actions._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvolvex%2Fvscode-statusbar-quick-actions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finvolvex%2Fvscode-statusbar-quick-actions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvolvex%2Fvscode-statusbar-quick-actions/lists"}