🚀 GitHub Actions Runner for VS Code

Run and monitor GitHub Actions workflows directly from VS Code — no browser needed.
Dispatch workflows with dynamic inputs, monitor runs in real-time, save presets, and view logs/artifacts without leaving your editor.
🎬 See It in Action

Watch the extension in action: Dispatch workflows, visualize job dependencies, fill dynamic inputs, monitor runs in real-time — all without leaving VS Code.
💡 Why Use GitHub Actions Runner?
⚡ Stay in Your Flow
Stop switching between VS Code and GitHub's web UI. Dispatch workflows, monitor runs, and view logs without breaking your development flow.
🎯 Smart & Dynamic
- Auto-generated forms from your workflow YAML — no manual configuration
- Intelligent input recovery — rerun workflows with prefilled inputs from previous runs
- Branch auto-detection — automatically uses your current Git branch
- Smart File Input — enhanced input fields with file path autocomplete, content extraction, and favorites
Enhanced input fields that make working with file-based values effortless:
- Three Input Modes: Switch between Text, Path, and Content modes using the mode selector
- Path Mode: Browse and insert file paths from your workspace
- Content Extraction: Load values from JSON, YAML, CSV, ENV, and text files with multi-select
- File Favorites: Save frequently used files with custom nicknames
- Recent Files: Automatically tracks your recently used files per input
- Preview/Edit Modal: View and edit multi-value inputs in a list format
💾 Reusable Presets
Save workflow configurations as named presets (e.g., "Staging Deploy", "Production Release") and dispatch them with one click. Export/import presets to share with your team.
⭐ Favorites & Quick Access
Mark frequently used workflows as favorites for instant access. Pin workflows to filter runs and find what matters most.
📊 Real-Time Monitoring
- Live status updates with color-coded indicators
- Interactive job dependencies graph with execution stages
- Step-level log viewing — view logs for individual steps directly from the Job Steps Modal (New in v1.5.0)
- Interactive log viewer from job graph — click jobs in the dependency graph to view logs (New in v1.5.0)
- Adaptive auto-refresh — speeds up polling when workflows are running (New in v1.4.0)
- Cancel confirmation modal — prevents accidental cancellation with detailed verification (New in v1.4.0)
- Real-time API rate limit monitoring — track GitHub API usage with visual progress bar (New in v1.4.0)
- Rate limit protection — automatic throttling to prevent hitting API limits (New in v1.4.0)
- Filter by workflow, branch, PR, or marked workflows
- View logs directly in VS Code editor
- Download artifacts with one click
- Rerun failed jobs or entire workflows
- Click jobs to view step details
🔐 Secure & Flexible
- GitHub OAuth or Personal Access Token (PAT) authentication
- Secure token storage using VS Code SecretStorage
- Works with any GitHub repository
🚀 Quick Start
1️⃣ Install the Extension
Install from the VS Code Marketplace or search for "GitHub Actions Runner" in VS Code.
2️⃣ Authenticate with GitHub
- Click the GitHub Actions Runner icon in the sidebar
- Click "Sign in with GitHub" or "Use Personal Access Token"
- If using PAT, create one with
workflow scope at github.com/settings/tokens
3️⃣ Dispatch Your First Workflow
- Open a repository with GitHub Actions workflows
- Select a workflow from the dropdown (only
workflow_dispatch workflows are shown)
- Fill in any required inputs
- Select a branch (defaults to your current branch)
- Click "Dispatch Workflow" 🚀
4️⃣ Monitor Workflow Runs
- Click "Open Workflow Runs" to view all runs
- Click on a run to see the job dependencies graph
- Filter by workflow, branch, PR, or marked workflows
- Click on a job in the graph to view step details
- Click "View Logs" to see job logs in VS Code
- Click "Download Artifacts" to download build artifacts
- Click "Rerun" to rerun workflows with smart input recovery
5️⃣ Save Presets for Quick Access
- Fill in workflow inputs
- Click the "Presets" button to expand the presets panel
- Click "Save preset" and give it a name (e.g., "Production Deploy")
- Load presets anytime from the dropdown selector
- Use Rename, Export, Delete, or Import from File to manage your presets
- Click "Storage Info" to see where presets are stored
Pro Tip: Use Export/Import to share presets with your team!
📸 Screenshots
Workflow Dispatch

Select workflows, fill inputs, and dispatch with one click
Workflow Runs

Monitor runs in real-time with powerful filters
Watched Runs

Mark important runs as "watched" to track them across sessions regardless of filters
Preset Management

Save and load workflow configurations as reusable presets — share configurations with your team via export/import
Favorites

Quick access to frequently used workflows
The Smart File Input feature provides three modes for entering workflow input values, making it easy to work with file-based configurations, test tags, and multi-value inputs.
Mode Selector — Switch between Text (direct input), Path (insert file path), and Content (extract from file) modes
Content Mode Dropdown — Access favorite files and recently used files for quick content extraction
File Content Modal — Extract values from JSON, YAML, CSV, ENV, and text files with multi-select and configurable delimiters
Preview/Edit Modal — View and edit multi-value inputs in list format with favorites support
Logs View

View workflow logs directly in VS Code editor
Job Dependencies Graph

Visualize job dependencies with an interactive graph showing execution stages, matrix jobs, and real-time status updates. Click jobs to view step details.
Job Step Details

Click any job to view step-by-step execution details with status indicators and timing information
Step-Level Logs

View logs for individual steps directly from the Job Steps Modal
Workflow Summary

View GitHub step summaries with security scan results, build metadata, and error details — rendered directly from workflow step annotations
Settings Panel
The Settings Panel provides three tabs for configuring different aspects of the extension:
General Tab — Configure workflow runs per page, run limits, and date filters
Notifications Tab — Control toast notifications and progress indicators for workflow events
API Usage Tab — Configure auto-refresh intervals with adaptive refresh (speeds up polling when workflows are running), monitor GitHub API rate limits in real-time with color-coded progress bar, and configure automatic rate limit protection (threshold 50-90%)
✨ Features
🔧 Workflow Runs Panel
| Feature |
Description |
| Job Dependencies Graph |
Visualize job dependencies with an interactive graph showing execution stages |
| Matrix Job Groups |
Matrix jobs are intelligently grouped with collapsible views for each variant |
| Job Steps Details |
Click on any job to view step-by-step breakdown with status and duration |
| Step-Level Log Viewing |
View logs for individual steps directly from the Job Steps Modal (New in v1.5.0) |
| Workflow Summary |
View GitHub step summaries with build metadata and error details |
| View Logs |
Open workflow run logs directly in VS Code editor |
| View Jobs & Steps |
Expand any run to see individual jobs with status, duration, and step details |
| Download Artifacts |
Download workflow artifacts as ZIP files |
| Rerun Workflows |
Rerun all jobs or only failed jobs |
| Cancel Runs |
Cancel in-progress workflows with detailed confirmation modal (name, branch, author) |
🔍 Advanced Filtering & Auto-Refresh
| Feature |
Description |
| Filter by Status |
Success, Failure, In Progress, Queued, Cancelled |
| Filter by Actor |
"My Runs" or "All Users" |
| Filter by Date Range |
Predefined (Today, Last 7/30 Days) or custom date ranges |
| Filter by Workflow |
Focus on runs from a specific workflow |
| Search by Text |
Search runs by branch name, commit, or PR number |
| Show Bot Runs |
Include or exclude runs triggered by bot accounts |
| Favorites Only |
Show only runs from workflows marked as favorite |
| Pagination |
Configure runs per page (10/20/30/50/100) |
| Progressive Loading |
Fetches up to 10,000 runs with smart caching |
| Auto-Refresh |
Configurable interval (15s–3m) with smart pause |
| Adaptive Refresh |
Automatically speeds up polling (5-10s) when workflows are running |
👁️ Watched Runs
- Watch Important Runs — Mark any run as "watched" to track it regardless of filters
- Persistent Tracking — Watched runs persist across sessions (up to 20 per repository)
- Dedicated Filter — Toggle "Watched Runs Only" to see all your tracked runs
💾 Presets & Templates
- Save Presets — Save workflow configurations with custom names (e.g., "Staging Deploy")
- Quick Load — Select presets from dropdown to populate inputs instantly
- Export/Import — Share presets with your team via JSON export
- Workflow History — Track your dispatched workflows and rerun with one click
⭐ Favorites System
- Mark Favorites — Star frequently used workflows for instant access
- Pre-filled Inputs — Automatically populate workflow inputs from favorites
- Workspace/Global Scope — Choose between workspace-specific or global storage
- Visual Cards — Browse favorites with workflow name, repository, and branch info
📁 File Path Detection
- Auto-Detection — Detects file path parameters based on configurable keywords
- Native File Picker — Browse and select files using VS Code's file picker
- Smart Paths — Uses workspace-relative paths when possible
- Size Warnings — Warnings for large files (configurable threshold)
🔐 Authentication
- OAuth Support — Use VS Code's built-in GitHub authentication (recommended)
- PAT Support — Personal Access Token with
workflow scope
- Secure Storage — Tokens stored in VS Code SecretStorage (encrypted)
- User Display — Shows authenticated GitHub username with profile icon
🔔 Notifications
- Desktop Notifications — Get notified when workflows complete
- Configurable Alerts — Choose when to receive notifications (success/failure)
- Non-Intrusive — Stay informed without switching contexts
- Workflow Toast Notifications — Toast messages in the top-right corner for workflow start/complete/fail events
- Progress Indicators — Inline job progress display (e.g., "2/5 jobs completed")
⚡ Adaptive Auto-Refresh (New in v1.4.0)
- Smart Polling — Automatically increases refresh frequency when in-progress or queued runs are detected
- Configurable Fast Interval — Set your preferred fast refresh rate (5-10 seconds) via Settings panel slider
- Visual Indicator — Shows "⚡ Faster refresh active" when adaptive mode is engaged
- API-Friendly — Falls back to normal interval when workflows complete, preserving API quota
- Toggle Control — Enable/disable with a single click in the Settings panel
🧠 Memory Management (New in v1.4.0)
- Automatic Cleanup — Clears per-run state for runs no longer visible in the panel
- Cache Limiting — Prevents memory bloat during long monitoring sessions
- Background Optimization — Cleanup runs during refresh cycles without impacting UX
📊 Rate Limit Monitoring (New in v1.4.0)
- Real-Time Display — See remaining API requests and total limit (e.g., "4,521 / 5,000")
- Visual Progress Bar — Color-coded indicator (green → yellow → red) based on usage
- Reset Time — Shows when your rate limit will reset
- Automatic Protection — Optional throttling when usage exceeds configurable threshold (50-90%)
- Persistent Settings — Rate limit protection preferences are saved across sessions
🏥 Health Monitor (New in v1.4.0)
- Automatic Detection — Identifies stuck loading states and stale timers
- Recovery Actions — Reset State, Refresh Data, and Restart Auto-refresh buttons
- Smart Suppression — Respects user activity to avoid false positive notifications
- Dismissible Banner — Can be dismissed but will return if issues persist
📜 Large Log File Safety (New in v1.5.0)
- Size Warning — Notification when logs exceed 50MB, suggesting "View Raw Logs" for better performance
- Automatic Truncation — Logs exceeding 100MB are truncated to prevent memory issues
- Smart Preservation — Truncation preserves both the beginning (90MB) and end (10MB) of logs
- Crash Prevention — Protects against UI freezing and out-of-memory errors with extremely large logs
⚡ API Efficiency (New in v1.5.0)
- Optimized Fetching — Always fetches 100 runs per API request (GitHub's maximum)
- Reduced API Calls — Up to 5x fewer API calls when filters have low match rates
- Rate Limit Friendly — Helps preserve your GitHub API quota for other operations
⚙️ Configuration
Access settings via File > Preferences > Settings and search for "GitHub Actions Runner". You can also open settings directly from the Sidebar using the ⚙️ Settings button in the Repository Configuration section.
Repository Settings
githubWorkflowRunner.repository.owner: Repository owner/organization (auto-detected)
githubWorkflowRunner.repository.name: Repository name (auto-detected)
githubWorkflowRunner.repository.manualOwner: Manual override for repository owner
githubWorkflowRunner.repository.manualName: Manual override for repository name
githubWorkflowRunner.defaultBranch: Default branch for dispatch
Note: Repository settings can be configured directly in the sidebar UI. Manual overrides take precedence over auto-detection.
Monitoring Settings
githubWorkflowRunner.monitoring.autoRefresh: Enable auto-refresh
githubWorkflowRunner.monitoring.refreshInterval: Refresh interval (seconds)
githubWorkflowRunner.monitoring.maxRuns: Max runs to display
UI Settings
githubWorkflowRunner.ui.confirmBeforeDispatch: Show confirmation dialog
githubWorkflowRunner.ui.rememberLastWorkflow: Remember last workflow
Git Settings
githubWorkflowRunner.git.autoDetectBranch: Auto-detect current branch
Notification Settings
githubWorkflowRunner.notifications.enabled: Enable notifications
githubWorkflowRunner.notifications.onSuccess: Notify on success
githubWorkflowRunner.notifications.onFailure: Notify on failure
githubWorkflowRunner.notifications.showWorkflowToastNotifications: Show toast notifications in the top-right corner when workflows start, complete, or fail. Default: true
githubWorkflowRunner.notifications.showProgressIndicators: Show inline job progress for running workflows. Default: true
Authentication Settings
githubWorkflowRunner.authentication.method: Authentication method to use. Options:
auto (default): Try OAuth first, fall back to PAT
oauth: Use VS Code's built-in GitHub authentication (recommended)
pat: Use Personal Access Token only
Workflow Settings
githubWorkflowRunner.workflows.excludePatterns: Array of glob-like patterns to exclude workflows from the list (e.g., ["**/experimental-*", "**/legacy.yml"]). Default: []
Favorites Settings
githubWorkflowRunner.favorites.scope: Storage scope for favorites, either workspace (per-workspace) or global (across all workspaces). Default: workspace
githubWorkflowRunner.favoriteRepositories: Array of favorite repositories to show in the repository selector. Each item is an object { owner: string, name: string }.
Example:
{
"githubWorkflowRunner.favoriteRepositories": [
{ "owner": "my-org", "name": "service-a" },
{ "owner": "my-org", "name": "service-b" }
]
}
File Path Detection
githubWorkflowRunner.filePathDetection.enabled: Enable automatic file path parameter detection. Default: true
githubWorkflowRunner.filePathDetection.keywords: Keywords used to detect file path-like inputs. Default: ["path", "file", "config", "script", "template", "yaml", "json"]
githubWorkflowRunner.filePathDetection.preferRelativePaths: Prefer workspace-relative paths when possible. Default: true
githubWorkflowRunner.filePathDetection.warnSizeThreshold: File size threshold (bytes) above which a warning is shown when loading file contents. Default: 1048576 (1MB)
githubWorkflowRunner.filePathDetection.maxFileSize: Maximum file size (bytes) allowed when loading a file content into an input. Default: 10485760 (10MB)
Logs
githubWorkflowRunner.logs.debug: Enable verbose debug logging for fetching job logs and artifacts. Default: false
🎮 Commands
| Command |
Description |
GitHub Actions Runner: Show Workflow Runs |
Open monitoring panel |
GitHub Actions Runner: Hide Workflow Runs |
Close monitoring panel |
GitHub Actions Runner: Refresh Workflows |
Reload workflow list |
GitHub Actions Runner: Run Last Workflow |
Rerun last workflow |
🏗️ Architecture
Documentation
For detailed architecture documentation, see:
- string: Text input field
- choice: Dropdown select with options
- boolean: Checkbox
- number: Number input
- environment: Environment selector (if defined)
Workflow Requirements
Workflows must have a workflow_dispatch trigger with optional inputs:
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to deploy'
required: true
type: choice
options:
- dev
- staging
- production
version:
description: 'Version to deploy'
required: true
type: string
dry_run:
description: 'Perform dry run'
required: false
type: boolean
default: false
🔧 Troubleshooting
Authentication Issues
- Verify token has
workflow scope
- Try signing out and back in
Workflow Not Found
- Ensure workflow has
workflow_dispatch trigger
- Check workflow file is in
.github/workflows/
- Verify YAML syntax is valid
Branch Not Detected
- Ensure you're in a Git repository
- Check Git extension is enabled in VS Code
- Verify repository has commits
Git Context Changed Warning
If you see a warning about "Git repository or branch has changed":
- This occurs when you switch branches or repositories while the extension is open
- Click the "Reload" button in the sidebar to refresh the extension state
- This safety feature prevents accidentally dispatching workflows to the wrong branch/repository
📝 License
Apache-2.0 License - see the LICENSE file for details.
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
If you find this extension helpful, please consider sponsoring my work! Your support helps me:
- ⏰ Dedicate more time to development and maintenance
- 🐛 Fix bugs and improve stability faster
- ✨ Build new features requested by the community
- 📚 Create better documentation and tutorials
Every contribution, no matter the size, makes a real difference and is greatly appreciated! 🙏

📞 Support
For issues or questions, please open an issue on GitHub.