Dagger for VS Code
The VS Code extension for Dagger. Built for developers who use Dagger and VS Code together. Run Dagger commands, edit workflows, and manage projects - without leaving your editor.

Features
IDE Integration
- 🌲 Functions Explorer: Browse and execute Dagger functions directly in VS Code. View arguments and details in a tree view.
- ⚡ Function Execution: Run Dagger functions with validated arguments. Output is shown in the integrated terminal.
- 🕒 Recent Functions: Recently used functions appear at the top of the list for faster access and improved workflow efficiency.
- 📝 Save as VS Code Tasks: Convert function calls into reusable tasks. Automatically updates
.vscode/tasks.json.
- 🐚 Dagger Shell: Open a terminal with Dagger Shell for interactive command execution.
- 🌐 Expose Services: Automatically expose services from Dagger modules for easy access (with the option to save as a VS Code Task).
- 📤 Export Files and Directories: Save files and directories from Dagger modules to your local workspace (with the option to save as a VS Code Task).
- 🐳 Run Container: Quickly run containers to test commands and workflows in an interactive environment.
- ⚙️ Interactive Mode: Configure VS Code to automatically drop into a terminal when workflows fail for debugging and troubleshooting.
- 💾 Argument Persistence: Argument values are automatically stored and reused across function calls, eliminating the need to re-enter the same values repeatedly.
- 🏗️ Monorepo Support: Set the root module path for your workspace to work with multiple Dagger projects in a single VS Code instance.
- 🧩 Module Installation: Install local or remote Dagger modules with ease. Supports versioning and dependency management.
AI Integration
- 🛠️ MCP Module Management: Interactively add a Dagger Module as an MCP server and register with VS Code.
- 🧠 Dagger Documentation Chat Participant: Ask questions about Dagger documentation and get instant answers using the integrated chat.
Development Workflow
- 🏗️ Project Initialization: Initialize new Dagger projects or work with existing ones. Includes an interactive setup prompt.
- 🛠️ Development Workflow: Use
dagger develop, install modules, and run commands with proper environment setup from the IDE.
- 🌐 GraphQL Server: Automatically start a GraphQL server to explore, allowing you to interact with extending Dagger functionality.
- 🔧 Pre-call Scripts: Execute custom scripts before Dagger function calls for environment setup like AWS SSO authentication or credential management.
⚙️ CLI Management
Install, update, or uninstall the Dagger CLI with one click.
Getting Started
Prerequisites
- VS Code 1.101.0 or higher
- Docker Desktop or a container runtime installed and running (e.g., Podman, nerdctl, or other Docker-like systems)
Installation
- Install the extension from the VS Code Marketplace.
- Open a workspace folder.
- Follow the installation guide if prompted.
Quick Start
- Open the Dagger panel.
- Initialize a project or browse functions.
- Execute functions with one click.
- Save function calls as tasks for reuse.
- Clear cache using the "Dagger: Clear Cache" command when needed.
Commands
Access the following commands from the Command Palette (Ctrl+Shift+P or Cmd+Shift+P):
- Dagger: Initialize Project - Create a new Dagger project
- Dagger: Set Module Path - Set the root module path for the workspace
- Dagger: Develop Local Modules - Start the Dagger development workflow
- Dagger: Call Function - Execute a Dagger function
- Dagger: Clear Cache - Remove cached function data
- Dagger: Export File or Directory - Save files and directories from Dagger modules to your local workspace
- Dagger: Save as Task - Save a function call as a reusable VS Code task
- Dagger: View Functions - Browse available functions
- Dagger: Install CLI - Install the Dagger CLI
- Dagger: Install a Module - Install a Dagger module (local or remote)
- Dagger: Add a Module as MCP server - Register a Dagger Module as an MCP server
- Dagger: Expose Service - Expose a service from a Dagger module
- Dagger: Start GraphQL Server - Start a GraphQL server for exploring Dagger functionality
- Dagger: Run in Terminal - Execute Dagger commands in the integrated terminal
- Dagger: Uninstall Dagger - Uninstall the Dagger CLI
- Dagger: Show Version - Display the current Dagger CLI version
- Dagger: Check for Updates - Update the Dagger CLI to the latest version
- Dagger: Open a Shell - Open a terminal with Dagger Shell
- Dagger: Run Container - Run a container using Dagger
- Dagger: Reload Functions - Refresh the functions list
Contributing
We welcome contributions! See the Contributing Guide.
Development Setup
# Clone the repository
git clone https://github.com/dagger/vscode-dagger
cd vscode-dagger
# Install dependencies
yarn install
# Open in VS Code
code .
# Launch Extension Development Host
Press F5
Changelog
See CHANGELOG.md for release notes.
Local Development
To setup the extension for local development, you can perform the following:
- Install Dagger if you haven't already.
- Fork and clone the repository
- Run
dagger develop
- Install dependencies and export with
dagger call install-deps export --path ./node_modules
- Open with VS Code
- Launch the Extension Development Host using F5
Local Installation
To install the extension locally, you can use the following command:
- Clone the repository
- Install dependencies and export with
dagger call install-deps export --path ./node_modules
- Open with VS Code
- Open the Command Pallet (cmd+shift+p) and
Run Task and select install-extension
- The Dagger extension will be installed and activated
Issues & Feedback
License
Licensed under the MIT License. See LICENSE.
Made with ❤️ for the Dagger community