Explore and visualize your WDL (Workflow Description Language) workflows
pip install -e .Or using uv:
uv syncRun with Docker:
# Create a directory with your user permissions
mkdir output
# Generate documentation
docker run --user $(id -u):$(id -g) --rm \
-v /path/to/wdl-project:/data \
-v $(pwd)/output:/output \
taniguti/wdlatlas:0.1.1 generate /data -o /output
# Generate graph
docker run --user $(id -u):$(id -g) --rm \
-v /path/to/wdl-project:/data \
-v $(pwd)/output:/output \
taniguti/wdlatlas:0.1.1 graph /data/workflow.wdl -o /output/graph.mdWDL Atlas provides two main commands:
Generate complete HTML documentation for your WDL project:
wdlatlas generate /path/to/wdl-project -o docs/Generate a Mermaid diagram for a specific workflow:
wdlatlas graph workflow.wdl -o workflow_graph.md- 📚 Complete HTML documentation with navigation
- 📊 Interactive workflow diagrams (Mermaid)
- 🐳 Docker image inventory
- 🔗 Cross-references between workflows and tasks
- 📦 External dependency tracking
You cannot simply open index.html directly in your browser (using file:// protocol). Instead, use one of these options:
python serve_docs.py
# or specify a different port
python serve_docs.py 8080This will automatically:
- Start a local HTTP server
- Open your browser at the correct URL
- Serve the documentation from the
docs/directory
cd docs
python -m http.server 8000Then open: http://localhost:8000
Modern browsers enforce strict CORS (Cross-Origin Resource Sharing) policies for ES6 modules. When opening files directly (file:// protocol), the browser blocks module imports for security reasons. A local HTTP server provides the necessary CORS headers to allow module loading.
Run tests:
uv run pytest -v --cov=src tests --cov-report=term
# or 'make test'src/
├── cli/ # Command-line interface
├── domain/ # Domain models
├── application/ # Use cases
└── infrastructure/ # Parsers, renderers, repositories