Skip to content

Repository files navigation

Virtual Repos

preview

Visual Studio Marketplace VersionVisual Studio Marketplace InstallsVisual Studio Marketplace DownloadsVisual Studio Marketplace RatingGitHub issuesGitHub licenseTwitter

Download for VS Code

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically.

The extension is still missing lots of features I want to add (as time permits) and you can expect bugs (but hopefully nothing destructive), anyway this is a preview extension and you can expect bugs here and there. Please report bugs or issues and ask for features you would like to see. Check Changelog for the latest status, what's planned and what has already been released.

Getting started

Install the extension from the VSCode Marketplace.

Repository management

Open a repo

Use the Open repository command to open an existing repo from GitHub, you can choose from three options:

  1. Open repository: open any repository you have access to, enter the name as owner/repoName

    Note: If you just enter the repo name, the extension assumes you own it, this is the same as using Open my repository

  2. Open my repository: open a repository from a list of repos you own

  3. Open starred repository: open one of your Starred repos

The repository will load automatically (of course, make sure you are connected to the Internet), you can then browse it, open, edit, add, delete files as if they where on your local file system even without cloning the repo.

open repository

open repository

open my repository

open my repository

Sync repositories across devices

You can sync your open repositories across multiple devices by enabling Settings Sync in Visual Studio Code.

Node: you may need to Refresh the Virtual Repos view to see the latest repos added or removed from another machine.

Create new repo

You can create a new repository (public or private).

create private repo

Fork repository

If you opened a repository you do not own, you can now fork it from the context menu. Once forked, the repository is automatically added to the Virtual Repositories list.

Star/Unstar repository

If you opened a repository you do not own, you can now star or unstar it. The list of starred repositories is automatically refreshed from GitHub every hour.

Follow/Unfollow a user

If you opened a repository you do not own, you can follow or unfollow its owner. The list of followed users is automatically refreshed from GitHub every hour.

Automatic commits

Changes are committed automatically after the file is saved. The commit message is VirtualRepos: update file <filePath>.

Easily identify forked and private repositories

Public repositories are represented with a $(repo) icon from from your IconTheme or the built-in codicon, while private repositories use a $(lock) icon. Forked repos use a $(repo-forked) icon instead, to clearly identity an open repository as a fork. This also helps distinguish between the upstream repository (represented with the repo icon) and my fork (represented with the repo-fork icon):

image

Get repository info

You can get basic details about a repository by hovering the mouse on it:

image

Repo owner's avatar

You can identity repositories using their GitHub owner's avatar, just switch VirtualRepos.UseRepoOwnerAvatar to true (default is false) to replace the standard repo icon with the repo owner's GitHub avatar:

UserRepoOwnerAvatar

Tracing

The extension uses the built-in Output Channel to enable local tracing to a channel called "Virtual Repositories". This data is local only, it does not leave your machine.

image

You can control the tracing level or disable, for all Output Channels or for specific extensions, using the built-in command Developer: Set Log Level...:

image

GitHub authentication scopes

The extension uses the following GitHub authentication scopes

  • user:email: needed to authenticate to GitHub
  • user:follow: needed to follow/unfollow a user on GitHub
  • repo: needed to create and update repositories (and their content) for the authenticated user
  • delete_repo: needed to delete repositories

My other extensions

  • Virtual Gists: Virtual Gists is a Visual Studio Code extension that allows to open and edit a remote gist (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically
  • Virtual Git: VSCode extension path with my extensions to work with virtual repositories and gists based on a virtual file system
  • Text Toolbox: Collection of tools for text manipulation, filtering, sorting etc...
  • File System Toolbox: VSCode extension to work with the file system, path auto-complete on any file type
  • Changelog Manager: VSCode extension, helps to build a changelog for your project, either in markdown or plain text files. The changelog format follows Keep a changelog
  • Hogwarts colors for Visual Studio Code: Visual Studio theme colors inspired by Harry Potter, Hogwarts and Hogwarts Houses colors and banners

Acknowledgements

Virtual Repositories is freely inspired by these fine extensions:

About

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - carlocardella/vscode-VirtualRepos: Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically · GitHub
Skip to content

Repository files navigation

Virtual Repos

preview

Visual Studio Marketplace VersionVisual Studio Marketplace InstallsVisual Studio Marketplace DownloadsVisual Studio Marketplace RatingGitHub issuesGitHub licenseTwitter

Download for VS Code

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically.

The extension is still missing lots of features I want to add (as time permits) and you can expect bugs (but hopefully nothing destructive), anyway this is a preview extension and you can expect bugs here and there. Please report bugs or issues and ask for features you would like to see. Check Changelog for the latest status, what's planned and what has already been released.

Getting started

Install the extension from the VSCode Marketplace.

Repository management

Open a repo

Use the Open repository command to open an existing repo from GitHub, you can choose from three options:

  1. Open repository: open any repository you have access to, enter the name as owner/repoName

    Note: If you just enter the repo name, the extension assumes you own it, this is the same as using Open my repository

  2. Open my repository: open a repository from a list of repos you own

  3. Open starred repository: open one of your Starred repos

The repository will load automatically (of course, make sure you are connected to the Internet), you can then browse it, open, edit, add, delete files as if they where on your local file system even without cloning the repo.

open repository

open repository

open my repository

open my repository

Sync repositories across devices

You can sync your open repositories across multiple devices by enabling Settings Sync in Visual Studio Code.

Node: you may need to Refresh the Virtual Repos view to see the latest repos added or removed from another machine.

Create new repo

You can create a new repository (public or private).

create private repo

Fork repository

If you opened a repository you do not own, you can now fork it from the context menu. Once forked, the repository is automatically added to the Virtual Repositories list.

Star/Unstar repository

If you opened a repository you do not own, you can now star or unstar it. The list of starred repositories is automatically refreshed from GitHub every hour.

Follow/Unfollow a user

If you opened a repository you do not own, you can follow or unfollow its owner. The list of followed users is automatically refreshed from GitHub every hour.

Automatic commits

Changes are committed automatically after the file is saved. The commit message is VirtualRepos: update file <filePath>.

Easily identify forked and private repositories

Public repositories are represented with a $(repo) icon from from your IconTheme or the built-in codicon, while private repositories use a $(lock) icon. Forked repos use a $(repo-forked) icon instead, to clearly identity an open repository as a fork. This also helps distinguish between the upstream repository (represented with the repo icon) and my fork (represented with the repo-fork icon):

image

Get repository info

You can get basic details about a repository by hovering the mouse on it:

image

Repo owner's avatar

You can identity repositories using their GitHub owner's avatar, just switch VirtualRepos.UseRepoOwnerAvatar to true (default is false) to replace the standard repo icon with the repo owner's GitHub avatar:

UserRepoOwnerAvatar

Tracing

The extension uses the built-in Output Channel to enable local tracing to a channel called "Virtual Repositories". This data is local only, it does not leave your machine.

image

You can control the tracing level or disable, for all Output Channels or for specific extensions, using the built-in command Developer: Set Log Level...:

image

GitHub authentication scopes

The extension uses the following GitHub authentication scopes

  • user:email: needed to authenticate to GitHub
  • user:follow: needed to follow/unfollow a user on GitHub
  • repo: needed to create and update repositories (and their content) for the authenticated user
  • delete_repo: needed to delete repositories

My other extensions

  • Virtual Gists: Virtual Gists is a Visual Studio Code extension that allows to open and edit a remote gist (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically
  • Virtual Git: VSCode extension path with my extensions to work with virtual repositories and gists based on a virtual file system
  • Text Toolbox: Collection of tools for text manipulation, filtering, sorting etc...
  • File System Toolbox: VSCode extension to work with the file system, path auto-complete on any file type
  • Changelog Manager: VSCode extension, helps to build a changelog for your project, either in markdown or plain text files. The changelog format follows Keep a changelog
  • Hogwarts colors for Visual Studio Code: Visual Studio theme colors inspired by Harry Potter, Hogwarts and Hogwarts Houses colors and banners

Acknowledgements

Virtual Repositories is freely inspired by these fine extensions:

About

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - carlocardella/vscode-VirtualRepos: Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically · GitHub
Skip to content

Repository files navigation

Virtual Repos

preview

Visual Studio Marketplace VersionVisual Studio Marketplace InstallsVisual Studio Marketplace DownloadsVisual Studio Marketplace RatingGitHub issuesGitHub licenseTwitter

Download for VS Code

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically.

The extension is still missing lots of features I want to add (as time permits) and you can expect bugs (but hopefully nothing destructive), anyway this is a preview extension and you can expect bugs here and there. Please report bugs or issues and ask for features you would like to see. Check Changelog for the latest status, what's planned and what has already been released.

Getting started

Install the extension from the VSCode Marketplace.

Repository management

Open a repo

Use the Open repository command to open an existing repo from GitHub, you can choose from three options:

  1. Open repository: open any repository you have access to, enter the name as owner/repoName

    Note: If you just enter the repo name, the extension assumes you own it, this is the same as using Open my repository

  2. Open my repository: open a repository from a list of repos you own

  3. Open starred repository: open one of your Starred repos

The repository will load automatically (of course, make sure you are connected to the Internet), you can then browse it, open, edit, add, delete files as if they where on your local file system even without cloning the repo.

open repository

open repository

open my repository

open my repository

Sync repositories across devices

You can sync your open repositories across multiple devices by enabling Settings Sync in Visual Studio Code.

Node: you may need to Refresh the Virtual Repos view to see the latest repos added or removed from another machine.

Create new repo

You can create a new repository (public or private).

create private repo

Fork repository

If you opened a repository you do not own, you can now fork it from the context menu. Once forked, the repository is automatically added to the Virtual Repositories list.

Star/Unstar repository

If you opened a repository you do not own, you can now star or unstar it. The list of starred repositories is automatically refreshed from GitHub every hour.

Follow/Unfollow a user

If you opened a repository you do not own, you can follow or unfollow its owner. The list of followed users is automatically refreshed from GitHub every hour.

Automatic commits

Changes are committed automatically after the file is saved. The commit message is VirtualRepos: update file <filePath>.

Easily identify forked and private repositories

Public repositories are represented with a $(repo) icon from from your IconTheme or the built-in codicon, while private repositories use a $(lock) icon. Forked repos use a $(repo-forked) icon instead, to clearly identity an open repository as a fork. This also helps distinguish between the upstream repository (represented with the repo icon) and my fork (represented with the repo-fork icon):

image

Get repository info

You can get basic details about a repository by hovering the mouse on it:

image

Repo owner's avatar

You can identity repositories using their GitHub owner's avatar, just switch VirtualRepos.UseRepoOwnerAvatar to true (default is false) to replace the standard repo icon with the repo owner's GitHub avatar:

UserRepoOwnerAvatar

Tracing

The extension uses the built-in Output Channel to enable local tracing to a channel called "Virtual Repositories". This data is local only, it does not leave your machine.

image

You can control the tracing level or disable, for all Output Channels or for specific extensions, using the built-in command Developer: Set Log Level...:

image

GitHub authentication scopes

The extension uses the following GitHub authentication scopes

  • user:email: needed to authenticate to GitHub
  • user:follow: needed to follow/unfollow a user on GitHub
  • repo: needed to create and update repositories (and their content) for the authenticated user
  • delete_repo: needed to delete repositories

My other extensions

  • Virtual Gists: Virtual Gists is a Visual Studio Code extension that allows to open and edit a remote gist (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically
  • Virtual Git: VSCode extension path with my extensions to work with virtual repositories and gists based on a virtual file system
  • Text Toolbox: Collection of tools for text manipulation, filtering, sorting etc...
  • File System Toolbox: VSCode extension to work with the file system, path auto-complete on any file type
  • Changelog Manager: VSCode extension, helps to build a changelog for your project, either in markdown or plain text files. The changelog format follows Keep a changelog
  • Hogwarts colors for Visual Studio Code: Visual Studio theme colors inspired by Harry Potter, Hogwarts and Hogwarts Houses colors and banners

Acknowledgements

Virtual Repositories is freely inspired by these fine extensions:

About

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - carlocardella/vscode-VirtualRepos: Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically · GitHub
Skip to content

Repository files navigation

Virtual Repos

preview

Visual Studio Marketplace VersionVisual Studio Marketplace InstallsVisual Studio Marketplace DownloadsVisual Studio Marketplace RatingGitHub issuesGitHub licenseTwitter

Download for VS Code

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically.

The extension is still missing lots of features I want to add (as time permits) and you can expect bugs (but hopefully nothing destructive), anyway this is a preview extension and you can expect bugs here and there. Please report bugs or issues and ask for features you would like to see. Check Changelog for the latest status, what's planned and what has already been released.

Getting started

Install the extension from the VSCode Marketplace.

Repository management

Open a repo

Use the Open repository command to open an existing repo from GitHub, you can choose from three options:

  1. Open repository: open any repository you have access to, enter the name as owner/repoName

    Note: If you just enter the repo name, the extension assumes you own it, this is the same as using Open my repository

  2. Open my repository: open a repository from a list of repos you own

  3. Open starred repository: open one of your Starred repos

The repository will load automatically (of course, make sure you are connected to the Internet), you can then browse it, open, edit, add, delete files as if they where on your local file system even without cloning the repo.

open repository

open repository

open my repository

open my repository

Sync repositories across devices

You can sync your open repositories across multiple devices by enabling Settings Sync in Visual Studio Code.

Node: you may need to Refresh the Virtual Repos view to see the latest repos added or removed from another machine.

Create new repo

You can create a new repository (public or private).

create private repo

Fork repository

If you opened a repository you do not own, you can now fork it from the context menu. Once forked, the repository is automatically added to the Virtual Repositories list.

Star/Unstar repository

If you opened a repository you do not own, you can now star or unstar it. The list of starred repositories is automatically refreshed from GitHub every hour.

Follow/Unfollow a user

If you opened a repository you do not own, you can follow or unfollow its owner. The list of followed users is automatically refreshed from GitHub every hour.

Automatic commits

Changes are committed automatically after the file is saved. The commit message is VirtualRepos: update file <filePath>.

Easily identify forked and private repositories

Public repositories are represented with a $(repo) icon from from your IconTheme or the built-in codicon, while private repositories use a $(lock) icon. Forked repos use a $(repo-forked) icon instead, to clearly identity an open repository as a fork. This also helps distinguish between the upstream repository (represented with the repo icon) and my fork (represented with the repo-fork icon):

image

Get repository info

You can get basic details about a repository by hovering the mouse on it:

image

Repo owner's avatar

You can identity repositories using their GitHub owner's avatar, just switch VirtualRepos.UseRepoOwnerAvatar to true (default is false) to replace the standard repo icon with the repo owner's GitHub avatar:

UserRepoOwnerAvatar

Tracing

The extension uses the built-in Output Channel to enable local tracing to a channel called "Virtual Repositories". This data is local only, it does not leave your machine.

image

You can control the tracing level or disable, for all Output Channels or for specific extensions, using the built-in command Developer: Set Log Level...:

image

GitHub authentication scopes

The extension uses the following GitHub authentication scopes

  • user:email: needed to authenticate to GitHub
  • user:follow: needed to follow/unfollow a user on GitHub
  • repo: needed to create and update repositories (and their content) for the authenticated user
  • delete_repo: needed to delete repositories

My other extensions

  • Virtual Gists: Virtual Gists is a Visual Studio Code extension that allows to open and edit a remote gist (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically
  • Virtual Git: VSCode extension path with my extensions to work with virtual repositories and gists based on a virtual file system
  • Text Toolbox: Collection of tools for text manipulation, filtering, sorting etc...
  • File System Toolbox: VSCode extension to work with the file system, path auto-complete on any file type
  • Changelog Manager: VSCode extension, helps to build a changelog for your project, either in markdown or plain text files. The changelog format follows Keep a changelog
  • Hogwarts colors for Visual Studio Code: Visual Studio theme colors inspired by Harry Potter, Hogwarts and Hogwarts Houses colors and banners

Acknowledgements

Virtual Repositories is freely inspired by these fine extensions:

About

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - carlocardella/vscode-VirtualRepos: Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically · GitHub
Skip to content

Repository files navigation

Virtual Repos

preview

Visual Studio Marketplace VersionVisual Studio Marketplace InstallsVisual Studio Marketplace DownloadsVisual Studio Marketplace RatingGitHub issuesGitHub licenseTwitter

Download for VS Code

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically.

The extension is still missing lots of features I want to add (as time permits) and you can expect bugs (but hopefully nothing destructive), anyway this is a preview extension and you can expect bugs here and there. Please report bugs or issues and ask for features you would like to see. Check Changelog for the latest status, what's planned and what has already been released.

Getting started

Install the extension from the VSCode Marketplace.

Repository management

Open a repo

Use the Open repository command to open an existing repo from GitHub, you can choose from three options:

  1. Open repository: open any repository you have access to, enter the name as owner/repoName

    Note: If you just enter the repo name, the extension assumes you own it, this is the same as using Open my repository

  2. Open my repository: open a repository from a list of repos you own

  3. Open starred repository: open one of your Starred repos

The repository will load automatically (of course, make sure you are connected to the Internet), you can then browse it, open, edit, add, delete files as if they where on your local file system even without cloning the repo.

open repository

open repository

open my repository

open my repository

Sync repositories across devices

You can sync your open repositories across multiple devices by enabling Settings Sync in Visual Studio Code.

Node: you may need to Refresh the Virtual Repos view to see the latest repos added or removed from another machine.

Create new repo

You can create a new repository (public or private).

create private repo

Fork repository

If you opened a repository you do not own, you can now fork it from the context menu. Once forked, the repository is automatically added to the Virtual Repositories list.

Star/Unstar repository

If you opened a repository you do not own, you can now star or unstar it. The list of starred repositories is automatically refreshed from GitHub every hour.

Follow/Unfollow a user

If you opened a repository you do not own, you can follow or unfollow its owner. The list of followed users is automatically refreshed from GitHub every hour.

Automatic commits

Changes are committed automatically after the file is saved. The commit message is VirtualRepos: update file <filePath>.

Easily identify forked and private repositories

Public repositories are represented with a $(repo) icon from from your IconTheme or the built-in codicon, while private repositories use a $(lock) icon. Forked repos use a $(repo-forked) icon instead, to clearly identity an open repository as a fork. This also helps distinguish between the upstream repository (represented with the repo icon) and my fork (represented with the repo-fork icon):

image

Get repository info

You can get basic details about a repository by hovering the mouse on it:

image

Repo owner's avatar

You can identity repositories using their GitHub owner's avatar, just switch VirtualRepos.UseRepoOwnerAvatar to true (default is false) to replace the standard repo icon with the repo owner's GitHub avatar:

UserRepoOwnerAvatar

Tracing

The extension uses the built-in Output Channel to enable local tracing to a channel called "Virtual Repositories". This data is local only, it does not leave your machine.

image

You can control the tracing level or disable, for all Output Channels or for specific extensions, using the built-in command Developer: Set Log Level...:

image

GitHub authentication scopes

The extension uses the following GitHub authentication scopes

  • user:email: needed to authenticate to GitHub
  • user:follow: needed to follow/unfollow a user on GitHub
  • repo: needed to create and update repositories (and their content) for the authenticated user
  • delete_repo: needed to delete repositories

My other extensions

  • Virtual Gists: Virtual Gists is a Visual Studio Code extension that allows to open and edit a remote gist (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically
  • Virtual Git: VSCode extension path with my extensions to work with virtual repositories and gists based on a virtual file system
  • Text Toolbox: Collection of tools for text manipulation, filtering, sorting etc...
  • File System Toolbox: VSCode extension to work with the file system, path auto-complete on any file type
  • Changelog Manager: VSCode extension, helps to build a changelog for your project, either in markdown or plain text files. The changelog format follows Keep a changelog
  • Hogwarts colors for Visual Studio Code: Visual Studio theme colors inspired by Harry Potter, Hogwarts and Hogwarts Houses colors and banners

Acknowledgements

Virtual Repositories is freely inspired by these fine extensions:

About

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - carlocardella/vscode-VirtualRepos: Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically · GitHub
Skip to content

Repository files navigation

Virtual Repos

preview

Visual Studio Marketplace VersionVisual Studio Marketplace InstallsVisual Studio Marketplace DownloadsVisual Studio Marketplace RatingGitHub issuesGitHub licenseTwitter

Download for VS Code

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically.

The extension is still missing lots of features I want to add (as time permits) and you can expect bugs (but hopefully nothing destructive), anyway this is a preview extension and you can expect bugs here and there. Please report bugs or issues and ask for features you would like to see. Check Changelog for the latest status, what's planned and what has already been released.

Getting started

Install the extension from the VSCode Marketplace.

Repository management

Open a repo

Use the Open repository command to open an existing repo from GitHub, you can choose from three options:

  1. Open repository: open any repository you have access to, enter the name as owner/repoName

    Note: If you just enter the repo name, the extension assumes you own it, this is the same as using Open my repository

  2. Open my repository: open a repository from a list of repos you own

  3. Open starred repository: open one of your Starred repos

The repository will load automatically (of course, make sure you are connected to the Internet), you can then browse it, open, edit, add, delete files as if they where on your local file system even without cloning the repo.

open repository

open repository

open my repository

open my repository

Sync repositories across devices

You can sync your open repositories across multiple devices by enabling Settings Sync in Visual Studio Code.

Node: you may need to Refresh the Virtual Repos view to see the latest repos added or removed from another machine.

Create new repo

You can create a new repository (public or private).

create private repo

Fork repository

If you opened a repository you do not own, you can now fork it from the context menu. Once forked, the repository is automatically added to the Virtual Repositories list.

Star/Unstar repository

If you opened a repository you do not own, you can now star or unstar it. The list of starred repositories is automatically refreshed from GitHub every hour.

Follow/Unfollow a user

If you opened a repository you do not own, you can follow or unfollow its owner. The list of followed users is automatically refreshed from GitHub every hour.

Automatic commits

Changes are committed automatically after the file is saved. The commit message is VirtualRepos: update file <filePath>.

Easily identify forked and private repositories

Public repositories are represented with a $(repo) icon from from your IconTheme or the built-in codicon, while private repositories use a $(lock) icon. Forked repos use a $(repo-forked) icon instead, to clearly identity an open repository as a fork. This also helps distinguish between the upstream repository (represented with the repo icon) and my fork (represented with the repo-fork icon):

image

Get repository info

You can get basic details about a repository by hovering the mouse on it:

image

Repo owner's avatar

You can identity repositories using their GitHub owner's avatar, just switch VirtualRepos.UseRepoOwnerAvatar to true (default is false) to replace the standard repo icon with the repo owner's GitHub avatar:

UserRepoOwnerAvatar

Tracing

The extension uses the built-in Output Channel to enable local tracing to a channel called "Virtual Repositories". This data is local only, it does not leave your machine.

image

You can control the tracing level or disable, for all Output Channels or for specific extensions, using the built-in command Developer: Set Log Level...:

image

GitHub authentication scopes

The extension uses the following GitHub authentication scopes

  • user:email: needed to authenticate to GitHub
  • user:follow: needed to follow/unfollow a user on GitHub
  • repo: needed to create and update repositories (and their content) for the authenticated user
  • delete_repo: needed to delete repositories

My other extensions

  • Virtual Gists: Virtual Gists is a Visual Studio Code extension that allows to open and edit a remote gist (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically
  • Virtual Git: VSCode extension path with my extensions to work with virtual repositories and gists based on a virtual file system
  • Text Toolbox: Collection of tools for text manipulation, filtering, sorting etc...
  • File System Toolbox: VSCode extension to work with the file system, path auto-complete on any file type
  • Changelog Manager: VSCode extension, helps to build a changelog for your project, either in markdown or plain text files. The changelog format follows Keep a changelog
  • Hogwarts colors for Visual Studio Code: Visual Studio theme colors inspired by Harry Potter, Hogwarts and Hogwarts Houses colors and banners

Acknowledgements

Virtual Repositories is freely inspired by these fine extensions:

About

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - carlocardella/vscode-VirtualRepos: Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically · GitHub
Skip to content

Repository files navigation

Virtual Repos

preview

Visual Studio Marketplace VersionVisual Studio Marketplace InstallsVisual Studio Marketplace DownloadsVisual Studio Marketplace RatingGitHub issuesGitHub licenseTwitter

Download for VS Code

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically.

The extension is still missing lots of features I want to add (as time permits) and you can expect bugs (but hopefully nothing destructive), anyway this is a preview extension and you can expect bugs here and there. Please report bugs or issues and ask for features you would like to see. Check Changelog for the latest status, what's planned and what has already been released.

Getting started

Install the extension from the VSCode Marketplace.

Repository management

Open a repo

Use the Open repository command to open an existing repo from GitHub, you can choose from three options:

  1. Open repository: open any repository you have access to, enter the name as owner/repoName

    Note: If you just enter the repo name, the extension assumes you own it, this is the same as using Open my repository

  2. Open my repository: open a repository from a list of repos you own

  3. Open starred repository: open one of your Starred repos

The repository will load automatically (of course, make sure you are connected to the Internet), you can then browse it, open, edit, add, delete files as if they where on your local file system even without cloning the repo.

open repository

open repository

open my repository

open my repository

Sync repositories across devices

You can sync your open repositories across multiple devices by enabling Settings Sync in Visual Studio Code.

Node: you may need to Refresh the Virtual Repos view to see the latest repos added or removed from another machine.

Create new repo

You can create a new repository (public or private).

create private repo

Fork repository

If you opened a repository you do not own, you can now fork it from the context menu. Once forked, the repository is automatically added to the Virtual Repositories list.

Star/Unstar repository

If you opened a repository you do not own, you can now star or unstar it. The list of starred repositories is automatically refreshed from GitHub every hour.

Follow/Unfollow a user

If you opened a repository you do not own, you can follow or unfollow its owner. The list of followed users is automatically refreshed from GitHub every hour.

Automatic commits

Changes are committed automatically after the file is saved. The commit message is VirtualRepos: update file <filePath>.

Easily identify forked and private repositories

Public repositories are represented with a $(repo) icon from from your IconTheme or the built-in codicon, while private repositories use a $(lock) icon. Forked repos use a $(repo-forked) icon instead, to clearly identity an open repository as a fork. This also helps distinguish between the upstream repository (represented with the repo icon) and my fork (represented with the repo-fork icon):

image

Get repository info

You can get basic details about a repository by hovering the mouse on it:

image

Repo owner's avatar

You can identity repositories using their GitHub owner's avatar, just switch VirtualRepos.UseRepoOwnerAvatar to true (default is false) to replace the standard repo icon with the repo owner's GitHub avatar:

UserRepoOwnerAvatar

Tracing

The extension uses the built-in Output Channel to enable local tracing to a channel called "Virtual Repositories". This data is local only, it does not leave your machine.

image

You can control the tracing level or disable, for all Output Channels or for specific extensions, using the built-in command Developer: Set Log Level...:

image

GitHub authentication scopes

The extension uses the following GitHub authentication scopes

  • user:email: needed to authenticate to GitHub
  • user:follow: needed to follow/unfollow a user on GitHub
  • repo: needed to create and update repositories (and their content) for the authenticated user
  • delete_repo: needed to delete repositories

My other extensions

  • Virtual Gists: Virtual Gists is a Visual Studio Code extension that allows to open and edit a remote gist (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically
  • Virtual Git: VSCode extension path with my extensions to work with virtual repositories and gists based on a virtual file system
  • Text Toolbox: Collection of tools for text manipulation, filtering, sorting etc...
  • File System Toolbox: VSCode extension to work with the file system, path auto-complete on any file type
  • Changelog Manager: VSCode extension, helps to build a changelog for your project, either in markdown or plain text files. The changelog format follows Keep a changelog
  • Hogwarts colors for Visual Studio Code: Visual Studio theme colors inspired by Harry Potter, Hogwarts and Hogwarts Houses colors and banners

Acknowledgements

Virtual Repositories is freely inspired by these fine extensions:

About

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - carlocardella/vscode-VirtualRepos: Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically · GitHub
Skip to content

Repository files navigation

Virtual Repos

preview

Visual Studio Marketplace VersionVisual Studio Marketplace InstallsVisual Studio Marketplace DownloadsVisual Studio Marketplace RatingGitHub issuesGitHub licenseTwitter

Download for VS Code

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically.

The extension is still missing lots of features I want to add (as time permits) and you can expect bugs (but hopefully nothing destructive), anyway this is a preview extension and you can expect bugs here and there. Please report bugs or issues and ask for features you would like to see. Check Changelog for the latest status, what's planned and what has already been released.

Getting started

Install the extension from the VSCode Marketplace.

Repository management

Open a repo

Use the Open repository command to open an existing repo from GitHub, you can choose from three options:

  1. Open repository: open any repository you have access to, enter the name as owner/repoName

    Note: If you just enter the repo name, the extension assumes you own it, this is the same as using Open my repository

  2. Open my repository: open a repository from a list of repos you own

  3. Open starred repository: open one of your Starred repos

The repository will load automatically (of course, make sure you are connected to the Internet), you can then browse it, open, edit, add, delete files as if they where on your local file system even without cloning the repo.

open repository

open repository

open my repository

open my repository

Sync repositories across devices

You can sync your open repositories across multiple devices by enabling Settings Sync in Visual Studio Code.

Node: you may need to Refresh the Virtual Repos view to see the latest repos added or removed from another machine.

Create new repo

You can create a new repository (public or private).

create private repo

Fork repository

If you opened a repository you do not own, you can now fork it from the context menu. Once forked, the repository is automatically added to the Virtual Repositories list.

Star/Unstar repository

If you opened a repository you do not own, you can now star or unstar it. The list of starred repositories is automatically refreshed from GitHub every hour.

Follow/Unfollow a user

If you opened a repository you do not own, you can follow or unfollow its owner. The list of followed users is automatically refreshed from GitHub every hour.

Automatic commits

Changes are committed automatically after the file is saved. The commit message is VirtualRepos: update file <filePath>.

Easily identify forked and private repositories

Public repositories are represented with a $(repo) icon from from your IconTheme or the built-in codicon, while private repositories use a $(lock) icon. Forked repos use a $(repo-forked) icon instead, to clearly identity an open repository as a fork. This also helps distinguish between the upstream repository (represented with the repo icon) and my fork (represented with the repo-fork icon):

image

Get repository info

You can get basic details about a repository by hovering the mouse on it:

image

Repo owner's avatar

You can identity repositories using their GitHub owner's avatar, just switch VirtualRepos.UseRepoOwnerAvatar to true (default is false) to replace the standard repo icon with the repo owner's GitHub avatar:

UserRepoOwnerAvatar

Tracing

The extension uses the built-in Output Channel to enable local tracing to a channel called "Virtual Repositories". This data is local only, it does not leave your machine.

image

You can control the tracing level or disable, for all Output Channels or for specific extensions, using the built-in command Developer: Set Log Level...:

image

GitHub authentication scopes

The extension uses the following GitHub authentication scopes

  • user:email: needed to authenticate to GitHub
  • user:follow: needed to follow/unfollow a user on GitHub
  • repo: needed to create and update repositories (and their content) for the authenticated user
  • delete_repo: needed to delete repositories

My other extensions

  • Virtual Gists: Virtual Gists is a Visual Studio Code extension that allows to open and edit a remote gist (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically
  • Virtual Git: VSCode extension path with my extensions to work with virtual repositories and gists based on a virtual file system
  • Text Toolbox: Collection of tools for text manipulation, filtering, sorting etc...
  • File System Toolbox: VSCode extension to work with the file system, path auto-complete on any file type
  • Changelog Manager: VSCode extension, helps to build a changelog for your project, either in markdown or plain text files. The changelog format follows Keep a changelog
  • Hogwarts colors for Visual Studio Code: Visual Studio theme colors inspired by Harry Potter, Hogwarts and Hogwarts Houses colors and banners

Acknowledgements

Virtual Repositories is freely inspired by these fine extensions:

About

Virtual Repos is a Visual Studio Code extension that allows to open and edit a remote repository (e.g. on GitHub) without cloning, committing or pushing your changes. It all happens automatically

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages