Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Copilot Vault SyncNew to Visual Studio Code? Get it now.
Copilot Vault Sync

Copilot Vault Sync

oNiwa

|
16 installs
| (1) | Free
Synchronize Copilot skills, hooks, agents and instructions between GitLab and your local workspace with protected credential storage
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Skills Sync — VS Code Extension

Synchronize GitHub Copilot skills, hooks, agents, and instructions between a GitLab repository and your local workspace — using only your local git installation. No API tokens or OAuth setup required.


Features

Remote Panel (GitLab)

  • Displays all four item types from the configured GitLab repository, grouped by type: Agents, Hooks, Instructions, Skills.
  • Each section loads independently and in parallel — one section failing does not block the others.
  • Section headers show a live count / loading spinner / error badge while fetching.
  • Fetch (⬇) — download a remote item to your local workspace. Prompts for:
    1. Scope — Current Workspace (.github/) or User Profile (~/.github/)
    2. Version — Latest (HEAD) or a specific commit from the item's history
  • Preview (👁) — open a rich Markdown preview of the item's main file without downloading.
  • Push — upload local item files to GitLab as a Merge Request (from the Local panel).
  • Refresh (↺) — manually reload all sections.

Local Panel (workspace)

  • Shows two scope roots:
    • Current Workspace — items under <workspace>/.github/
    • User Profile — items under ~/.github/ (configurable via copilotVaultSync.global.basePath)
  • Each scope expands to type groups (Agents, Hooks, Instructions, Skills), then individual items.
  • Push (⬆) — upload a local item to the GitLab repository as a Merge Request.
  • Open — open the item's main file in the editor.
  • Delete (🗑) — remove the item from the local filesystem (with confirmation).
  • Compare — diff a local item against its remote counterpart in the VS Code diff editor.
  • Auto-refresh — panel updates automatically when workspace files change.

Item Types & File Conventions

Type Local path Remote repo path Main file
Skill .github/skills/<name>/ skills/<name>/ SKILL.md
Hook .github/hooks/<name>/ hooks/<name>/ README.md
Agent .github/agents/ agents/ <name>.agent.md (flat file)
Instruction .github/instructions/ instructions/ <name>.instructions.md (flat file)

Local items live under .github/ (or your configured copilotVaultSync.local.basePath).
Remote items in the GitLab repository are stored flat at the repo root — no .github/ prefix.
Skills and Hooks are directory-based; Agents and Instructions are single flat files.

Main files use YAML front-matter for the description shown in the UI:

---
description: 'A brief description shown in the UI'
---

# My Item
...

Authentication

The extension is git-only — it uses your local git installation and the associated credential manager, SSH agent, or .netrc file. No API tokens, OAuth flow, or secret storage is involved. If your git can clone and push to the repository, the extension works. Auth state is re-probed on each VS Code activation; nothing is persisted between sessions.


Setup

  1. Install the extension and click the Skills Sync icon in the Activity Bar.
  2. Click ⚙ Open Settings on the Remote panel and configure:
Setting Description
copilotVaultSync.gitlab.repositoryEndpoint Full URL of the GitLab repository, e.g. https://gitlab.example.com/group/project or git@gitlab.example.com:group/project. Transport (HTTPS/SSH) is auto-detected from the URL format.
copilotVaultSync.gitlab.skillsBranch Branch to read/write from (default: main)
copilotVaultSync.gitlab.allowInsecure Allow self-signed SSL certificates (local dev only)
copilotVaultSync.local.basePath Workspace-relative parent of the type directories. Leave blank to use the default .github.
copilotVaultSync.global.basePath Absolute path for the User Profile scope (default: ~/.github)
  1. Click Sign In — the extension verifies that git is installed and can reach the repository.
  2. The Remote panel populates with all four item type sections.

Local Development

npm install
npm run watch   # incremental compile
# Press F5 in VS Code to launch Extension Development Host

Security Notes

  • All repository access goes through the local git process — credentials never pass through the extension.
  • GIT_TERMINAL_PROMPT=0 prevents git from opening interactive prompts in the extension host.
  • Insecure TLS (allowInsecure) is opt-in and intended for local dev instances only.
  • Temporary clone directories are created in os.tmpdir() and deleted immediately after use.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft