VS Code Integration
repos provides two commands for IDE integration — generating a multi-root workspace file and configuring GitHub Codespaces authentication.
repos workspace works with VS Code and any other IDE that supports the VS Code workspace format (such as Positron). repos codespace is specific to GitHub Codespaces and VS Code.
repos workspace
Generate (or refresh) the entire-project.code-workspace file in your project directory. Open it to load all cloned repositories as a multi-root workspace:
repos workspaceOnce the file is written, open it in your IDE:
code entire-project.code-workspace # VS Code
positron entire-project.code-workspace # PositronOptions
| Flag | Description |
|---|---|
-f <file> |
Use a different list file (default: repos.list) |
--debug |
Enable debug output to stderr |
--debug-file [file] |
Enable debug output to file (auto-generate temp if no path given) |
# Use a custom list file
repos workspace -f my-repos.listRepository Layout
The workspace file reflects the repository layout in the parent directory:
workspace/
├── my-project/ # your project (contains repos.list)
├── backend/ # cloned from myorg/backend
├── frontend-develop/ # cloned from myorg/frontend@develop
└── docs/ # cloned from myorg/docs
repos codespace
Update matching devcontainer.json files by writing repository permission entries under customizations.codespaces.repositories.
repos codespaceOptions
| Flag | Description |
|---|---|
-f <file> |
Use a different list file (default: repos.list) |
-d <path> |
Path relative to .devcontainer/ (repeatable) |
--all |
Update all devcontainer.json files found under .devcontainer/ |
--permissions <level> |
Codespaces permission level (default, all, or contents) |
--dry-run |
Preview file updates without writing changes |
--debug |
Enable debug output to stderr |
--debug-file [file] |
Enable debug output to file (auto-generate temp if no path given) |
Permission levels:
default: actions/contents write, packages read, workflows writeall: write-allcontents: contents write only
# Use a custom list file
repos codespace -f my-repos.list
# Specify a devcontainer path relative to .devcontainer/
repos codespace -d devcontainer.json
# Multiple devcontainer paths
repos codespace -d path1/devcontainer.json -d path2/devcontainer.json
# Update all devcontainer files under .devcontainer/
repos codespace --all
# Preview without changing files
repos codespace --dry-runR and Python APIs
For the R or Python API, see the language-specific wrapper pages: