Initialize a dagster project using the create-dagster cli. Create a dagster project, uv virtual environment, and everything needed for a user to run dg dev or dg check defs successfully. (project)
Pro scans all 21 files and shows the line behind each finding
Scanned 9/8/2026
npx -y skills add mattnigh/skills_collection --skill collection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Collection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mattnigh-collection-4e32dbf6)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: dagster-init
description: Initialize a dagster project using the create-dagster cli. Create a dagster project, uv virtual environment, and everything needed for a user to run dg dev or dg check defs successfully. (project)
license: MIT
---
# Dagster Project Initialization
## Overview
This skill automates the creation of a new Dagster project using the `create-dagster` CLI tool with uv as the package manager. It creates a clean, Components-compatible project structure ready for local development.
## What This Skill Does
When invoked, this skill will:
1. ✅ Create a new Dagster project using `create-dagster@latest`
2. ✅ Set up a uv virtual environment with all dependencies
3. ✅ Initialize project structure with Components architecture
4. ✅ Ensure the project is ready to run `dg dev` or `dg check defs`
5. ✅ Provide clear next steps for development
## Prerequisites
Before running this skill, ensure:
- `uv` is installed (check with `uv --version`)
- You have a project name in mind (or will use the default)
- You're in the directory where you want to create the project
## Skill Workflow
### Step 1: Validate Environment
Check that uv is available:
```bash
uv --version
```
If uv is not installed, provide installation instructions:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
### Step 2: Get Project Name
Ask the user for a project name, or use a sensible default like `my-dagster-project`. Validate that:
- The name starts with a letter
- Contains only alphanumeric characters, hyphens, or underscores
- The directory doesn't already exist (or ask to overwrite)
### Step 3: Create Project with create-dagster
Use `uvx` to run the latest create-dagster CLI. The CLI requires interactive confirmation, so we pass "y" automatically using `printf`:
```bash
printf "y\n" | uvx create-dagster@latest project <project-name>
```
**Important:** The `printf "y\n"` automatically answers "yes" to the interactive prompt that asks for confirmation to proceed with project creation.
This will:
- Scaffold a new Dagster project with Components structure
- Create `pyproject.toml` with project metadata
- Set up package structure with `definitions.py`
- Create `definitions/defs/` directory for components
### Step 4: Install Dependencies
Navigate into the project directory and run uv sync:
```bash
cd <project-name>
uv sync
```
This creates the virtual environment and installs all dependencies specified in `pyproject.toml`.
### Step 5: Verify Installation
Check that the project is properly set up by running:
```bash
uv run dg check defs
```
This validates that:
- All dependencies are installed correctly
- The Dagster definitions are loadable
- The project structure is correct
### Step 6: Display Success Message
Provide the user with a clear summary and next steps:
```
✅ Successfully created Dagster project: <project-name>
📁 Project structure:
• pyproject.toml - Project configuration
• <project-name>/definitions.py - Main definitions module
• <project-name>/definitions/defs/ - Components directory
🚀 Next steps:
1. cd <project-name>
2. uv run dg dev # Start local development server
3. Open http://localhost:3000 to view Dagster UI
💡 Additional commands:
• uv run dg check defs # Validate definitions
• uv run pytest # Run tests (if configured)
• uv add <package> # Add new dependencies
```
## Error Handling
Handle common issues gracefully:
1. **uv not installed**: Provide installation instructions
2. **Directory already exists**: Ask user to choose different name or overwrite
3. **create-dagster fails**: Show error details and suggest troubleshooting
- Note: The CLI requires interactive confirmation - we automatically pass "y" via `printf "y\n"` to avoid hanging
4. **Dependency installation fails**: Check network, suggest clearing cache
5. **dg check defs fails**: Show validation errors and help debug
## Alternative: Using the Python Script
You can also invoke the provided Python script directly:
```bash
python .claude/skills/dagster-init/scripts/create-dagster.py
```
This provides an interactive workflow with the same functionality. The script automatically handles the interactive prompt by passing "y" to stdin, so it won't hang waiting for user input.
## Project Structure
After successful creation, the project will have:
```
<project-name>/
├── pyproject.toml # Project metadata and dependencies
├── <project-name>/
│ ├── __init__.py
│ ├── definitions.py # Main Dagster definitions
│ └── definitions/
│ └── defs/ # Components directory
│ ├── __init__.py
│ └── ... # Your components go here
├── <project-name>_tests/ # Test directory
├── .venv/ # uv virtual environment
└── uv.lock # Locked dependencies
```
## Tips for Success
- Use descriptive project names that reflect the purpose
- Run `dg check defs` regularly during development to catch issues early
- Keep dependencies minimal initially, add as needed
- Follow the Components pattern for scalable project organization
- Use `uv add` to add new dependencies (it updates pyproject.toml automatically)
## Related Skills
- **dg-plus-init**: For setting up Dagster+ Cloud deployments
- Use after creating a project with this skill to deploy to the cloud
## Resources
- [Dagster Documentation](https://docs.dagster.io/)
- [Components Guide](https://docs.dagster.io/guides/build/projects/moving-to-components)
- [uv Documentation](https://docs.astral.sh/uv/)
- [create-dagster CLI](https://github.com/dagster-io/dagster/tree/master/python_modules/dagster/dagster/_cli/create_dagster)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!