Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Oniwa Copilot ToolsNew to Visual Studio Code? Get it now.
Oniwa Copilot Tools

Oniwa Copilot Tools

oNiwa

|
1 install
| (0) | Free
Synchronize Copilot skills, hooks, agents and instructions between GitLab and your local workspace
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.


Features

GitLab Panel (remote)

  • Displays all four item types from the configured common GitLab project and group projects, 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 and all its files into your local workspace.
  • Preview (👁) — open a rich Markdown preview of the item's main file without downloading.
  • Refresh (↺) — manually reload all sections from GitLab.

Local Panel (workspace)

  • Lists all items found in the workspace under .github/{skills,hooks,agents,instructions}/, grouped by type.
  • Item icons match the remote panel and are tinted by sync status (green = up-to-date, orange = modified, etc.).
  • Push (⬆) — upload local item files to the GitLab common project as a Merge Request.
  • Open — open the item's main file in a Markdown side-by-side preview.
  • Delete (🗑) — remove the item from your local workspace (with confirmation).
  • Auto-refresh — panel updates automatically when workspace files change.

Item Types & File Conventions

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

Skills and Hooks are directory-based (may include additional support files alongside the main .md).
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

Method Description
Personal Access Token (PAT) Paste your GitLab PAT in settings. Needs read_api, read_repository, write_repository scopes.
OAuth / SSO (PKCE) Opens a browser to the GitLab OAuth page. A loopback server on 127.0.0.1:54321 captures the callback. Works with any SSO provider (Google, LDAP, GitHub, …) configured in your GitLab instance.
Local Git Uses your local git installation and its credential manager / SSH keys. No API token is needed for clone/push; a PAT is still required for Merge Request creation via the API.

All tokens are stored in VS Code Secret Storage (OS keychain) — never in plain-text settings.


Setup

  1. Install the extension and click the Skills Sync icon in the Activity Bar.
  2. Click ⚙ Open Settings and configure:
Setting Description
skillsSync.gitlab.endpoint GitLab server URL, e.g. https://gitlab.example.com
skillsSync.gitlab.groupId GitLab Group ID or path containing your projects
skillsSync.gitlab.commonProjectId Project ID/path of the common items repo
skillsSync.gitlab.skillsBranch Branch to read/write from (default: main)
skillsSync.local.basePath Workspace-relative parent of the type directories (default: .github)
skillsSync.auth.method pat | oauth | git
skillsSync.gitlab.personalAccessToken Your PAT (PAT auth)
skillsSync.gitlab.oauthClientId OAuth Application Client ID (OAuth auth)
skillsSync.gitlab.gitTransport http or ssh (Git auth)
skillsSync.gitlab.sshPort SSH port (default: 22)
skillsSync.gitlab.allowInsecure Allow self-signed certificates (local dev only)
  1. Click Sign In to GitLab (or skip if using Git auth — credentials are picked up automatically).
  2. The GitLab 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

  • OAuth callback server binds to 127.0.0.1 only and shuts down immediately after the token is received.
  • Tokens are never logged or written to disk in plain text.
  • All GitLab API calls pass credentials via request headers only — never in query strings.
  • Insecure TLS (allowInsecure) is opt-in and intended for local dev instances only.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft