In your module's dagger.json, add a 'dependencies' array referencing another published or local Dagger module by its address (e.g., a GitHub URL with a version tag)
Run 'dagger develop' to regenerate the SDK bindings so the dependency module's functions become available as methods on a generated client type
In your module code, call the dependency module's functions via the generated client, passing Dagger objects (containers, directories, secrets) across the module boundary
Use 'dagger call' from the CLI to invoke your function end-to-end, verifying that the dependency module's logic is executed within the same engine session
Pin the dependency to a specific version or commit in dagger.json to ensure reproducibility across CI runs
Known gotchas
Dagger objects (Container, Directory, Secret) can be passed between modules within the same engine session; serialization or re-pulling from a registry is not required
Unpinned module dependencies (no version tag) resolve to the latest available version at install time, which can cause silent behavior changes between CI runs
Circular module dependencies are not supported and will cause 'dagger develop' to fail with a resolution error
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp