Multi-Repo Workspace

Dwight can manage multiple repositories as a single workspace. Features can span repos, agents have cross-repo context, and issues are tracked across the entire workspace.


Setting Up a Workspace

Add Repos Manually

:DwightWorkspaceAdd ../shared-lib
:DwightWorkspaceAdd ../api-server
:DwightWorkspaceAdd ../frontend

Each repo is added by path. Dwight stores the workspace configuration in .dwight/workspace.json in your primary project.

Scan from Monorepo

If your project is a monorepo with sub-directories that are independent packages:

:DwightWorkspaceInit

This scans sub-directories for git repos or package manifests and adds them automatically.

Remove Repos

:DwightWorkspaceRemove

Opens a picker to select which repo to remove from the workspace.


Cross-Repo Features

Features defined with @feature: pragmas work across repo boundaries. If shared-lib and api-server both have files tagged @feature:auth, Dwight treats them as one feature.

:DwightWorkspaceFeatures

Shows all features across the workspace with file counts per repo. This is useful for understanding how domain concepts are distributed across your codebase.

When an agent works on a cross-repo feature, it sees files from all repos that contribute to that feature.


Unified Issue Tracking

View GitHub issues across all workspace repos in a single view:

:DwightWorkspaceIssues
:DwightWorkspaceIssues --label bug
:DwightWorkspaceIssues --assignee @me
:DwightWorkspaceIssues --milestone v2.0

Issues are fetched from all repos in parallel and displayed in a Telescope picker (or fallback list) with the repo name, issue number, title, and labels. Selecting an issue opens it for work with :DwightIssue.

Requires GitHub CLI (gh) to be installed and authenticated for each repo.


Workspace Status

:DwightWorkspace

Shows a status overview of the workspace: each repo with its path, branch, feature count, and whether it has been initialized with Dwight.


Commands

CommandArgsDescription
:DwightWorkspaceShow workspace status
:DwightWorkspaceAdd[path]Add a repo by path
:DwightWorkspaceRemove[name]Remove a repo
:DwightWorkspaceInitAuto-scan monorepo sub-directories
:DwightWorkspaceFeaturesList features across all repos
:DwightWorkspaceIssues[--label|--assignee|--milestone]Unified issue view