Workspace Control
Browse, clone, create, star, and organize all your repositories and organizations — without leaving your editor.
|
Recommended Companion Extensions
|
Colorized Theme — A professional, high-contrast theme designed for clarity.
Colorized Manager — Color-code your projects and see them reflected in Workspace Control.
|
Overview
- 🎯 Unified GitHub explorer — Mirrors personal repositories, organizations, and Starred collections inside one VS Code sidebar.
- 🚀 Guided clone, publish & fork-style workflows — Validate destinations, create folders, handle empty repositories, run Clone & Publish to duplicate external repos under your/org account, and push first commits without leaving VS Code.
- 🗂️ Workspaces-first navigation — A dedicated Workspaces hub sits above Cloned, letting you manage and access curated setups with support for multi-repo workflows.
- 💛 Starred & bulk actions — Multi-select to star, clone, hide, or remove repositories while the Starred view updates in real time.
- 🗃️ Archived repository access — Every owner includes a lazy-loaded Archived subsection that keeps long-lived projects handy, supports cloning, hiding, inline reloads, and unarchiving without leaving VS Code.
- 🛡️ Streamer Mode privacy — Obfuscate names and persist hide rules so you can present or record without exposing sensitive projects.
- ⚡ Instant reload controls — Local caching hydrates trees immediately while scoped refreshes—including inline Archived reloads—keep large accounts responsive.
- 🤝 Native GitHub authentication — Rely on VS Code sign-in with full organization permission awareness—no tokens required.
- 🌐 Local & remote parity — Tailored Git credential injection keeps private clones, publish flows, and cache updates working the same way on desktops, servers, and VS Code tunnels.
- 🧠 Model Context Protocol (MCP) tools — Ships a first-class MCP server so AI copilots can invoke Workspace Control workflows (clone, publish, manage workspaces, edit metadata) through a single endpoint. See the UI reflect the changes in real-time as it works!
- 🏢 Manage Organizations view — Browse every organization you belong to (including hidden ones), manage members and teams side by side, adjust permissions inline, and refresh cached directory data without leaving VS Code.
All Features
🧭 Repository Explorer
- Cloned / Not Cloned / Starred groups mirror GitHub inside VS Code so you always know where a repository lives.
- Flexible sorting and status badges surface alphabetical/last-updated options, star markers, dirty indicators, and “Last Updated” relative times.
- Colorized Manager Support — Automatically detects and displays your project-specific variant colors from Colorized Manager in the tree view, keeping your visual organization consistent across VS Code.
- Assign Colorized colors from the tree — Right-click any workspace or repository (multi-select supported), pick a curated variant or the Random option, and Workspace Control writes the correct
colorizedManager.variantId to the workspace file or .vscode/settings.json so the Colorizer extension and tree icons stay perfectly in sync.
- Bulk operations with progress allow multi-select open, copy, star/unstar, hide/unhide, archive, or delete with success/error summaries.
- Drag & drop exports support multi-select: pull repositories into editors, terminals, or other VS Code panes to insert either their local paths or GitHub URLs. When both are available the drop picker lets you choose, making it effortless to document environments or hand off clone commands without manual copying.
- Dedicated Archived sections expand on demand to list archived repositories per organization, cache the results, and expose clone, hide, unarchive, and inline reload commands so they behave just like active entries.
- Granular visibility controls let you hide orgs or repos with per-org overrides and a dedicated Hidden section.
- Rich tooltips and filtered metadata display language, visibility, forks, timestamps, local paths, and automatically reroute archived repositories into their dedicated section.
- Topic management built-in lists GitHub topics alongside each repository and lets you add or remove them from the context menu—single repo or multi-select—while flagging duplicates and the 20-topic limit before you commit changes. Type comma-separated topics to add several in one pass, and the extension summarizes successes, duplicates, and limit hits in a notification.
- Topic filters let you right-click a topic header and hide it from the tree; filtered names live in the
workspaceControl.filteredTopics setting and fine-tune the priority-based disjoint distribution.
- Inline row actions with double-click safety keep clone and open workflows deliberate—use the inline icon for single-click actions or double-click a repository when you’re ready to run the default behavior.
- Workspace Control Finder — Press Ctrl/Cmd+Shift+G, F to launch the Finder command (also available via the Command Palette) and fuzzy-match managed workspaces, cloned repositories, not cloned entries, and repository topics in one quick list with inline open/add/clone buttons.
🚀 Cloning & Workspace Automation
- Managed-directory cloning accepts owner/name or URLs, ensures folders exist, fetches the default branch, and offers workspace actions.
- Flexible destination workflows honor
git.defaultCloneDirectory or let you choose a folder via the Clone to Directory… action (it opens a picker rooted at your managed directory), then refresh the tree instantly.
- Sequential multi-clone workflow lets you select several repositories at once and run Clone to; the extension processes them one after another without waiting on notifications.
- Workspace shortcuts scale with selection so Open in New Window and Add to Workspace apply to every highlighted clone, mirroring the order you picked.
- Configurable repository discovery scans the default clone directory with tunable depth and ignore patterns to register existing clones.
- External repo management links outside projects via lightweight files so they track under Cloned without moving folders (Works with Windows too!)
- Safe removal options warn about dirtiness (*), offers to delete managed clones, or to stop tracking links without touching source files.
🗂️ Managed Workspaces
- Context aware grouping — Files group into You, your organizations, and Other, and hidden rules plus multi-select actions behave just like repository rows.
- One-click saves capture the current window via the repositories toolbar or Workspaces root context menu, storing clean
.code-workspace files under <git.defaultCloneDirectory>/managed-workspaces with no proprietary metadata added.
- Inline controls open a workspace in-place or in a new window, duplicate it, reveal the file on disk, launch every linked GitHub Pages destination, rename single or multiple entries, or remove stale definitions without leaving VS Code.
- Multi-select delete, rename, edit and duplicate — Manage several workspaces at once with bulk actions that reflect your selection.
- Inline power actions — Open in-place or in a new window, duplicate single or multi-selection entries with auto-numbered names, reveal on disk, delete, or open every linked GitHub Pages site directly from the hover menu.
- Fetch Missing Repositories — Right-click any workspace (hidden entries included) to scan its folders for managed paths such as
../owner/repo; anything under <git.defaultCloneDirectory> that no longer exists on disk is cloned back into place automatically so the workspace opens cleanly on every machine.
🏗️ Create & Publish
- Guided repository creation lets you pick owner, name, description, visibility, and optionally clone the result.
- One-click publish flow initializes Git when missing, handles remote setup, renames master to main when needed, and pushes the first commit.
- Automatic registration adds newly published projects to Cloned immediately and offers a shortcut to the GitHub page.
- Context-aware toolbar surfaces Publish and Manage Local buttons only when a workspace folder needs them.
💛 Favorites & Organization
- Instant starring actions toggle favorites (single or multi-select) with clear progress and immediate Starred updates.
- Starred workspace parity keeps favorites synced with Cloned and Others so repos move automatically as you star or unstar.
- Persistent hide state stores cloned and not-cloned visibility choices with per-repo overrides inside hidden orgs.
- Topic filtering mirrors hide controls for repository rows—right-click a topic header to stash noisy themes in
workspaceControl.filteredTopics, instantly removing their folders and keeping disjoint distribution focused on what matters.
- Smart unstar handling returns local clones to the correct organization or Others without manual cleanup.
- Metadata refresh safeguards fetch repository details before starring when local data is missing to keep labels accurate.
🔒 Authentication & Privacy
- Built-in GitHub authentication leverages VS Code’s provider—no personal access tokens required.
- Streamer Mode obfuscation anonymizes users, organizations, repository names, descriptions, and topic labels with consistent friendly aliases.
- Instant cache hydration displays repository lists immediately while background tasks compute dirtiness and metadata.
- Scoped reload commands refresh everything, a single organization, or cloned/not-cloned sections with spinner feedback.
- Tree-state aware updates preserve expansion and respect Streamer Mode toggles without collapsing your view.
- Recurring directory insights remember search roots and ignore patterns so repeat scans stay fast.
🌐 Local + Remote Ready
- Git credential helpers are bypassed in favor of injecting the VS Code session token, so headless hosts and remote tunnels can clone private organization repositories without personal tokens.
- Clone, scratch, and publish flows register repositories immediately after checkout, mirroring the local experience even when file watchers lag in remote environments.
- Optimized cache updates avoid heavyweight reloads, keeping tunnels, Codespaces, and other remote workspaces responsive while changes propagate.
- Security-first handling keeps authentication scoped to each Git invocation and redacts tokens from surfaced diagnostics, so remote logs stay tidy without sacrificing insight.
User Manual
Table of Contents:
Understanding the User Interface

The suite organizes the sidebar into purpose-built areas so GitHub workflows stay close to your current file.
- Actions Menu — Launch guided clone, publish, manage-local, search, and reload commands without digging through nested palettes.
- Repositories — Browse Cloned, Not Cloned, Starred, Hidden, and Others trees with live dirtiness, per-org reload spinners, and bulk actions.
- Account — Review your identity, toggle Streamer Mode, check permission hints, and sign out if you need to re-authenticate with additional scopes.
Back to the Table of Contents
"Cloned" vs "Not Cloned"

Repository groups hydrate from cache instantly and stay in sync as background jobs finish fetching metadata.
- Cloned — Shows repositories with a known local path, dirtiness badge, last updated time, and quick actions to open, hide, or delete without rescanning everything.
- Not Cloned — Lists everything else by owner with inline reload controls so you can refresh a single organization instead of the entire account.
- Starred & Hidden — Dedicated trees surface favorites and privacy filters while avoiding duplicate entries across the other sections.
Back to the Table of Contents
Log In into GitHub

- Use the in-line UI to authenticate your GitHub account.
[!IMPORTANT]
We require special permissions to manage repositories on your behalf; these are requested during sign-in. Displayed in the graphic above.
Authentication relies on VS Code’s built-in GitHub provider, keeping tokens handled by the editor. When you need extra scopes—like delete_repo for remote removal—the Account panel now includes a Sign out of GitHub button so you can re-authenticate with the proper permissions.
Back to the Table of Contents
Setting Up Your Clone Directory

- Use the in-line UI to set the
"git.defaultCloneDirectory" in your VSCode settings.json to the path your cloned repositories are located (or plan to locate them).
[!NOTE]
This path is used by default when cloning new repositories and scanning for existing ones. You can change it at any time.
Renaming Saved Workspaces
Use the Rename Workspace context action—available from both the hover icons and the right-click menu—to keep labels aligned with your collaboration naming scheme.
- Single rename: Edit one workspace at a time; Workspace Control renames the file on disk if necessary and preserves hidden/unhidden tracking automatically.
- Multi-rename: Select several workspaces, invoke Rename once, provide a base name, and the extension appends
-1, -2, -3, and so on to subsequent entries while skipping ones that already match.
- Reflects external edits: Because display names mirror the filename, changes made in Explorer/Finder show up the next time the tree refreshes.
Need a quick copy? Pick Duplicate Workspace to clone the .code-workspace file and let Workspace Control auto-pick an available name (adding Copy, Copy-1, Copy-2, … when needed) so single or multi-selection copies stay collision-free.
Back to the Table of Contents
Back to the Table of Contents
Saving Managed Workspaces
The repositories view now includes a Workspaces hub above Cloned. It lists every .code-workspace saved inside managed-workspaces, a folder that Workspace Control keeps under your git.defaultCloneDirectory.
- Use the Save Workspace toolbar button (or right-click the Workspaces root) to capture the folders currently open in VS Code. The command now calls VS Code's native Save Workspace As... dialog.
- When the dialog appears, browse to
<git.defaultCloneDirectory>/managed-workspaces, name your file, and press Save. VS Code remembers the last directory you used, so after the first visit subsequent saves open directly in the managed folder.
- Once saved, the Workspaces tree refreshes automatically so you can reopen entries in-place, launch new windows, reveal files on disk, launch linked GitHub Pages sites, rename one or many entries, or delete them when the collaboration wraps up.
Saved entries automatically group into You, your organizations, and Other so multi-owner efforts surface where you expect.
[!IMPORTANT]
Reusing the built-in dialog is slightly more manual the first time—navigate to your managed directory once—but it keeps the current VS Code window alive without forcing an extension-host reload. After that initial visit, saving becomes a single click because the dialog reopens in the same folder.
[!TIP]
Workspace files live at <git.defaultCloneDirectory>/managed-workspaces/<name>.code-workspace. Commit them to a coordination repo or share them with teammates to sync multi-project setups quickly, and when you duplicate them on disk the tree shows the new name immediately (for example, Demo - Copy.code-workspace).
Sharing Managed Workspaces
Many teams keep every managed workspace in a dedicated repository—typically named after the org, such as myorg-managed-workspaces. The workflow looks like this:
- Use Create Repository to provision
myorg-managed-workspaces (or your preferred naming convention) under the organization that owns the collaboration.
- Immediately run Clone to Directory... and target
<git.defaultCloneDirectory>/managed-workspaces so the repository itself lives alongside every .code-workspace file.
- Commit each workspace file (they already store folder paths relative to the managed directory), push the repository, and invite collaborators to clone it into their own
managed-workspaces folder.
Because the files sit inside a real Git repository, you get history, pull requests, and ACLs while still benefiting from the Workspaces tree. Every participant ends up with identical folder structures, streamlining onboarding for large orgs.
[!NOTE]
Workspace Control writes shared metadata into each workspace file, including a namespaced setting for hidden entries:
{
"settings": {
"workspaceControl.workspace.hiddenByDefault": true
}
}
The hiddenByDefault flag is scoped under workspaceControl.workspace, defaults to false, and only flips to true when you explicitly run Hide Workspace. Because the flag travels with the file, any teammate who clones myorg-managed-workspaces sees the same Hidden state until the setting is removed (local overrides cannot surface a flagged workspace).
Workspace Topics
Workspace Control lets each managed workspace carry its own topic list—perfect for tagging cross-repo bundles like 0-critical, release-candidates, or design-review. Topics live entirely inside the .code-workspace file, so they sync automatically when you commit the managed workspace repository.
- Use Add Local Topic (available from any workspace entry, including hidden ones) to apply one or more topics. The picker enforces GitHub’s 35-character topic limit and caps each workspace at 20 entries.
- Use Remove Local Topic to multi-select topics and strip them from every highlighted workspace in one pass.
- Topics persist under the
workspaceControl.workspace.topics setting:
{
"settings": {
"workspaceControl.workspace.topics": [
"0-critical",
"release-candidates"
]
}
}
- Toggling Topics, Priority-Based Disjoint Topics, or Zero-topic Priority (0-) in the repositories toolbar now reshapes the Workspaces tree as well. When enabled, the tree groups managed workspaces by their local topics, honoring the same filtering, disjoint-assignment, and
0- priority rules used for repositories.
Fetching Missing Repositories
Shared .code-workspace files often reference clones that teammates have not pulled down yet. The Fetch Missing Repositories... action—available from any workspace context menu, including hidden entries—scans each folder definition for managed paths such as ../owner/repo, verifies whether <git.defaultCloneDirectory>/<owner>/<repo> exists, and automatically reclones anything that has gone missing.
- Multi-select any workspaces that need attention and choose Fetch Missing Repositories...
- The command inspects every folder path. Entries outside
<git.defaultCloneDirectory> or ones that do not match the owner/repo structure are skipped with a summary so you know which folders require manual handling.
- Confirm the preview list to launch the clone pipeline. Each repository is restored into its original folder, registered with Workspace Control, and immediately available to the requesting workspaces.
[!NOTE]
The scan only targets paths that resolve under your managed clone directory using the owner/repo hierarchy (for example, the relative folder ../octocat/hello-world). Custom locations or alternative naming patterns remain untouched—use the regular Clone to Directory... or Clone Managed flows for those entries.
Back to the Table of Contents
Creating a repository: from scratch

By hovering the REPOSITORIES tree view title, a + button appears. Click on it, enter the new repository name, description (optional) and visibility. On success, you may choose to clone the new repository.
If you are a member of at least one organization that allows you to create repositories for it, it will be asked, before the repository name input, to pick the new repository owner: your own account or one of those organizations.
Once the repository is provisioned, the extension refreshes the specific owner in place, updates the cache, and offers to open the new GitHub page—no full reload required.
Back to the Table of Contents
Creating a repository: from current project

You may create a GitHub repository and push your current project within the same flow. If there are multiple folders in your workspace that may be published to GitHub, it will be prompted to pick one.
There are 2 possible cases that allows using that publish functionality:
Your project doesn't have a Git yet. After entering the repository name, description and visibility, the repository will be created, the git will be initialized for the workspace folder, main branch will be created and selected, GitHub remote will be added as origin and your files will then be pushed to it.
Your project has a Git, but it hasn't a remote yet. After filling the repository information, it will be checked if your git HEAD is master. If so, it will ask if you want the branch to be renamed to main. Then the repository will be created, the GitHub remote is added as origin and your code is pushed.
The wizard now snapshots repository cache data so the freshly published project appears under Cloned immediately. If branch tracking settings conflict, you’ll see a clear warning with next steps instead of a failed push.
Back to the Table of Contents
Cloning and Managing a repository using URL

Paste an owner/name pair or full GitHub URL to kick off the guided clone flow. The extension validates the destination folder, ensures the managed directory exists, and hydrates the tree as soon as the checkout finishes.
Scoped reloads synchronize metadata—star status, visibility, and dirtiness—without waiting for an account-wide refresh, and post-clone quick actions help you open the repository or reveal it in VS Code right away.
Back to the Table of Contents
Clone & Publish (Spork) [Fork factory]
Duplicate any GitHub repository under your own account without visiting the website. The Clone & Publish (Spork) command:
- Prompts for a source repository URL or owner/name and validates it with GitHub.
- Walks you through choosing the destination owner (personal or organization), repository name, description, and visibility.
- Clones the source into your managed directory, renaming remotes so
origin points to the brand-new repository and upstream keeps the original source.
- Pushes an initial commit to the new repository using your VS Code GitHub authentication, even if the original repo stays private.
Prefer to drive the workflow from the tree? Right-click any repository under Cloned or Not Cloned (hidden entries included) and choose Clone & Publish (Spork). Multi-selection now prompts once for the destination owner and whether the new repositories should be Private, Public, or inherit the source visibility, then launches every clone/publish in parallel so large batches finish without waiting on per-repo notifications.
Every spork fetches the entire source repository before publishing, mirroring all branches and tags (not just the default branch) to the new owner so the destination stays identical to the original.
Managed clones keep using your configured naming pattern—{owner}-{name} by default—so files stay organized under the destination account instead of the source owner. If GitHub blocks a push (for example, workflow files without the workflow scope), the extension preserves the clone, summarizes the failure, and helps you reopen the folder so you can finish the publish manually after adjusting permissions.
Back to the Table of Contents
Sporking Repositories
Use Clone & Publish (Spork) whenever you need a fork factory—spin up clean copies for audits, experiments, sandboxes, migration, or cross-org collaboration without touching the original repository. Sporks deliberately duplicate code; a first-class transfer workflow exists separately.
- Multi-select anything from Cloned, Not Cloned, Starred, or hidden sections and launch Clone & Publish (Spork).
- Choose the destination owner once (personal account or any org where you can create repos) and decide whether every spork should be Private, Public, or inherit the source visibility.
- Pick the landing folder. Managed-directory destinations still honor your naming pattern and owner-grouping preference; custom paths stay untouched.
- Sit back—Workspace Control clones every source, rewires remotes so
origin points to the new repository while upstream keeps the source, mirrors every branch and tag, pushes everything, and posts a single summary notification. If GitHub rejects a push, the local copy stays put so you can fix and retry manually.
End result: a stack of fresh forks ready for whatever workflow you’re staging, without implying that ownership actually transferred.
Back to the Table of Contents
Transfer Ownership
Move repositories between your personal account and any organization where you have admin rights without touching Git remotes manually.
- Multi-select repositories from Cloned, Not Cloned, Starred, or hidden sections. Local-only entries are skipped automatically and the command only lights up for repositories you administer.
- Right-click and choose Transfer Ownership. Pick the destination owner (personal account or eligible organization) once—the quick pick respects Streamer Mode obfuscation and mirrors whatever orgs let you create repositories.
- Review the modal confirmation list. Every selected repository is listed so you can double-check before GitHub receives the transfer request.
- Confirm to run the workflow. The extension calls GitHub's
POST /repos/{owner}/{repo}/transfer endpoint for each repository and updates the tree immediately so the repository appears under the new owner without a full reload.
Back to the Table of Contents
Renaming Repositories
Rename repositories directly from the tree view without leaving VS Code. The extension handles the GitHub API call, updates your local cache, and refreshes the UI immediately.
Single Rename
Right-click any repository (Cloned or Not Cloned) and choose Rename Repository. Enter the new name, and the extension updates both the remote repository and your local list.
Bulk Rename (Pattern Matching)
Select multiple repositories and choose Rename Repository to open the bulk rename wizard.
- Match Pattern: Enter a Regular Expression to select which repositories to rename (e.g.,
(.*)-old$). The preview updates in real-time to show which items match.
- Replacement Pattern: Enter the new name pattern using capture groups (e.g.,
$1-new).
- Collision Handling: If multiple repositories map to the same name, the extension automatically appends an incrementor (e.g.,
repo1, repo2) to prevent errors.
Example:
- Input Repos:
project-alpha-old, project-beta-old
- Match:
(.*)-old
- Replace:
$1-new
- Result:
project-alpha-new, project-beta-new
Back to the Table of Contents
Updating Repository Descriptions
Right-click any GitHub-backed repository (Cloned, Not Cloned, Starred, or hidden) and choose Set Repository Description.... The quick input pre-fills the existing text, enforces GitHub's 350-character limit, and lets you clear the description by submitting an empty value. The menu only appears when you have permission to edit the remote metadata, and the tree refreshes immediately once GitHub confirms the update.
Multi-select repositories to apply the same description to all of them at once. The command prompts a single time, runs every GitHub update in parallel, skips repositories that already match the requested text, and summarizes any failures so you can retry without redoing the entire batch.
Back to the Table of Contents
Managing Repository Collaborators
Launch collaborator management directly from the Repositories panel so you never leave the tree you already use for cloning, renaming, or publishing.
- Multi-select any GitHub repositories that share the same owner (Cloned, Not Cloned, Starred, hidden, and archived entries all qualify). The command only shows up for repositories you administer, matching GitHub’s permission rules.
- Right-click and choose Manage Collaborators.... The picker opens right inside the Repositories panel, preserving Streamer Mode obfuscation if it is active.
- Pick which workflow you need: Add collaborators, Update permissions, or Remove collaborators. Each action loads collaborators and teams lazily from GitHub so large organizations stay fast.
Adding collaborators or teams
- The quick pick automatically lists every organization member and team that does not already have access to the selected repositories. Manual username entry covers external collaborators who are not in the org directory.
- After choosing people or teams, pick the permission level (READ, TRIAGE, WRITE, MAINTAIN, ADMIN). The command applies the same permission to every selected repository and shows a single progress notification.
- Repository access updates sync back into the Organization Directory cache so Manage Organizations reflects the new state immediately.
Updating permissions
- The existing collaborators list is grouped by users and teams, displaying how many repositories they currently touch. Multi-select anyone who needs a permission bump or downgrade, then choose the new role once.
- The UI skips repositories that already match the requested permission and summarizes any failures so you can retry without guessing where it stopped.
Removing collaborators
- Pick collaborators or teams to remove, review the confirmation dialog, and the command revokes access across every selected repository in a single pass.
- Lazily loaded collaborator data means even large repositories stay responsive, and the Organization Directory cache is updated so your Members and Teams views remain accurate.
Back to the Table of Contents
Managing a repository outside the clone directory

Repositories you publish from outside the managed clone directory are tracked through small JSON link files stored in .workspaceControl-links under your configured git.defaultCloneDirectory, so the original folders stay where they are. The Create Repository for Current Project button is only shown when a workspace folder has no Git or no remote, keeping the toolbar focused on actions you can actually perform.
Use Manage Local Repository when a project already has a remote; it registers the existing folder without re-cloning or pushing, and once everything is registered the toolbar buttons quietly step out of the way.
Registration now records the remote URL, updates the cache entry immediately, and moves the repository into Cloned without waiting for a full reload. If you later unlink it, the item returns to Not Cloned while leaving the files untouched.
Back to the Table of Contents
Managing starred repositories

The Starred organization mirrors your GitHub favorites with real-time updates. Toggle stars from any tree via context menus or multi-select bulk actions; the extension immediately moves repositories between Starred, Cloned, and Not Cloned so you never see duplicates.
- Star/unstar actions synchronize the cache, keeping language, dirtiness, and hidden states accurate even offline.
- Bulk starring provides aggregated confirmations, making it easy to curate long lists.
- Context menus stay selection-aware, always presenting the correct Star or Unstar option for the focused item.
Back to the Table of Contents
Managing user & organization repositories

Inline reload icons and cached hydration keep large accounts responsive. Refresh a single organization to update its cloned and not-cloned sections while the rest of the tree remains interactive.
- Cached repositories display immediately before background tasks refine dirtiness, timestamps, and language metadata.
- Reloads snapshot local paths so managed projects stay visible even as metadata updates.
- Internal locks prevent overlapping reload requests, keeping progress indicators accurate.
Back to the Table of Contents
Manage Organizations view
The Account panel now includes a dedicated Manage Organizations tree that mirrors the GitHub organization directory inside VS Code. Every organization you belong to—including ones you have hidden—appears with live stats, multi-line tooltips, and Streamer Mode obfuscation so you can safely manage permissions during calls or recordings.
- Members & Teams side by side — Expand an organization to see Members and Teams sections with their own child trees. Each node displays rich tooltips (slug, counts, privacy) and inherits the repository tooltip table when listing direct access.
- Full team lifecycle — Create, rename, and delete teams from inline toolbar buttons or context menus. Adjust privacy levels, and keep icons in sync (organization glyph for visible teams, briefcase for secret teams).
- Membership and repository management — Add or remove people from teams, grant direct repository access with READ/WRITE/ADMIN scopes, or assign repositories to multiple teams without leaving VS Code. Picker flows support multi-select and rehydrate GitHub metadata when the directory cache is missing details.
- Organization curation — Hide noisy orgs (they move under the Hidden section) and unhide them later, keeping the tree focused on what you actively manage.
- Directory refresh on demand — Use the Refresh Organization Directory command or the inline refresh button on the Manage Organizations root to invalidate cached membership and permission data after making changes in the browser—updates load instantly without a full account reload.
Streamer Mode automatically obfuscates every label within this view (organizations, members, teams, repositories, tooltips), so you can audit or adjust access live without leaking names.
Back to the Table of Contents
Hiding and Unhiding repositories and organizations

Fine-tune your tree by hiding entire organizations or selective repositories. This is perfect for demos, temporary decluttering, or keeping sensitive work out of sight while Streamer Mode is disabled.
- Per-organization overrides let you expose a short allowlist while the rest of the repos remain hidden.
- Hidden states persist in storage and stay synchronized with cache refreshes so they survive reloads and restarts.
- Bulk hide/unhide actions keep multi-select flows fast when you need to tidy up larger groups.
Back to the Table of Contents
Deleting CLONED Repositories (or just Unlinking them)

Removal prompts differentiate between managed directory clones and external links. Confirm whether you want to unlink the repo (keeping files on disk) or delete the clone entirely, with dirtiness warnings so you never lose uncommitted work.
- Multi-select deletes aggregate results and update the tree immediately once the cleanup finishes.
- External repositories simply drop their link file, returning to Not Cloned without touching your working copy.
- When you trigger GitHub deletions, targeted reloads keep the Not Cloned list accurate without reloading everything else.
Back to the Table of Contents
Archiving and Unarchiving NOT CLONED Repositories
Every owner in the Not Cloned tree now includes a dedicated Archived subsection. Expand it to lazily load archived repositories from GitHub; once fetched, entries stay cached and behave just like active repositories.
- Use the existing archive command on Not Cloned repositories (single or multi-select) to move them into the Archived subsection immediately.
- Open, clone, hide, or multi-select archived repositories—each command works the same way it does on active items, and the tree remembers your hidden overrides.
- Unarchive directly from the context menu. Successful unarchives move the repository back to the active list and update the cache without a manual reload.
When to archive instead of delete:
- Preserve the repository history without crowding everyday lists.
- Keep long-term reference projects available for cloning while signaling that they are read-only.
- Maintain a reversible workflow—archived repositories can be unarchived at any time, unlike deletions.
Note: Archived repositories remain read-only on GitHub until you unarchive them, and the extension mirrors that state in the tree while keeping visibility and cache data in sync.
Back to the Table of Contents
Streamer Mode

Streamer Mode keeps demos and recordings safe by anonymizing every personal detail in the UI without changing your actual repositories.
- Toggle it from the Account panel under your username before you go live.
- All user, organization, and repository names swap to consistent aliases for the entire session, so screenshots stay readable.
- The eye/eye-closed toolbar icon reflects the current state and every tree view refreshes automatically when you flip the switch.
- Your choice persists across VS Code restarts, and the privacy playbook in STREAMER_MODE_PRIVACY_CONSIDERATIONS.md covers advanced tips.
Back to the Table of Contents
Model Context Protocol (MCP) Server
Workspace Control now ships a local MCP server so AI agents (or any MCP-compatible client) can call the same repository, workspace, and administration workflows you run from the tree view.
What it does
- Repository automation — Clone managed/scratch repositories, rename or transfer them, edit descriptions and topics, and mirror cached metadata via dedicated MCP tools.
- Workspace control — Enumerate, create, duplicate, rename, copy, and delete managed
.code-workspace files without touching the VS Code UI.
- Discovery helpers — Expose organization summaries, cloned/not-cloned inventories, and health data so agents can reason about your account before suggesting actions.
Discovering the endpoint
- The MCP server starts automatically when the extension activates and binds to
workspaceControl.mcp.port (default 51367). Set the value to 0 to let VS Code choose any free port.
- Workspace Control automatically ensures your VS Code user
mcp.json (e.g., Code/User/mcp.json) contains a workspace-control server entry that points to the local endpoint. When the endpoint or install path changes, the entry is updated in-place without prompting, and if the file already defines the server nothing is overwritten.
- Use the command palette entry Workspace Control: Copy MCP Endpoint at any time to copy the current URL (
http://127.0.0.1:<port>/mcp) for clients that need a manual URL.
- Changing
workspaceControl.mcp.port or reloading the window restarts the server in place; you do not need to stop it manually.
Cloning workflows
workspace-control-clone-managed-repository — Clone the requested owner/repository into the managed root, optionally overriding the folder name.
workspace-control-clone-repository-to-directory — Target a specific parentPath, with optional directoryName and pattern reuse for consistent naming.
workspace-control-clone-scratch-repository — Clone into the managed scratch area, using an optional scratchFolderName segment to group experiments.
Repository administration
workspace-control-rename-repository — Rename any repository you administer (owner, repository, newName) and optionally move the matching local folder.
workspace-control-transfer-repository — Transfer ownership to another user or org while optionally moving the on-disk clone.
workspace-control-archive-repository — Archive repositories you administer.
workspace-control-delete-repository — Permanently delete repositories (requires confirm: true).
workspace-control-get-repository-metadata — Fetch cached GitHub metadata, including description, topics, permissions, and timestamps.
workspace-control-set-repository-description — Set or clear the remote description by sending a string or null.
workspace-control-set-repository-topics — Replace every topic with the provided topics[] list (empty arrays clear the set).
workspace-control-add-repository-topics — Append new topics without removing existing ones, returning what was added.
workspace-control-remove-repository-topics — Remove only the supplied topics and report what changed.
Discovery & workspace helpers
workspace-control-get-user-context — Snapshot authentication state, repository counts, and sync status.
workspace-control-list-organizations — Enumerate tracked orgs with optional filters for login, source type, and archived counts.
workspace-control-list-cloned-repositories — List managed/unmanaged clones, with optional organization filtering, archived toggle, and limit guardrails.
workspace-control-list-not-cloned-repositories — List remote repositories not yet cloned locally, with optional archived hydration.
workspace-control-add-repositories-to-workspace — Insert local clone paths into the current VS Code window (paths[], optional allowDuplicates, position).
Managed workspace files
workspace-control-list-managed-workspaces — Enumerate every managed .code-workspace entry with folder metadata and participants.
workspace-control-create-managed-workspace — Create a workspace under the managed directory using provided folders plus optional metadata fields.
workspace-control-rename-managed-workspace — Rename an existing workspace by filePath or display name.
workspace-control-duplicate-managed-workspace — Copy an existing workspace, optionally overriding the generated copy name.
workspace-control-delete-managed-workspace — Remove a workspace after supplying confirm: true (moves to trash when possible).
Back to the Table of Contents
Bulk Actions
Bulk Actions allow you to perform operations on multiple repositories at once, streamlining your workflow and saving time.
Available Actions
- Star/Unstar Repositories: Quickly star or unstar multiple repositories.
- Archive Repositories: Archive multiple not-cloned repositories to mark them as read-only on GitHub.
- Delete Repositories: Remove multiple repositories from your account.
- Hide/Unhide Repositories: Manage the visibility of several repositories simultaneously.
How to Use
- Select the repositories you want to manage by holding down the
Ctrl key and clicking on each repository.
- You can also select a range of repositories by clicking the first repository with
Ctrl, and then while additionally holding down the Shift key, click the last repository in the range.
- Right-click on one of the selected repositories to open the context menu.
- Confirm your action.
Recommended Use Cases
- Unstarring multiple repositories that are no longer updated.
- Archiving multiple completed or unmaintained projects to keep them accessible but out of active lists.
- Deleting multiple obsolete repositories in one go.
- Hiding several repositories to declutter your workspace.
Back to the Table of Contents
Roadmap
- ~~Workspaces sync and management strategy~~
- Panel: Commits
- Panel: Branches
- Panel: Remotes
- Panel: Tags
Licensing
- Current source (2025-10-12 and later): Licensed under the Business Source License 1.1 with no automatic changeover date. Commercial licensing is available from Mario Ricalde (licensed by 6o8).
- Additional Use Grant: Internal production use by individuals and companies is permitted, provided you do not resell or host the extension (or derivatives) for third parties.
- Historical releases and pre-transition code: Continue to be available under the original MIT License authored by Henrique Bruno Fantauzzi de Almeida.
| |