Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>TwinportNew to Visual Studio Code? Get it now.
Twinport

Twinport

focusquest

| (0) | Free
Provisions and weekly-refreshes your ~/.copilot/ folder (agents, skills, instructions, MCP servers) from a GitHub repo of your choice.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Twinport is the successor name for what was briefly published as copilot-config-sync. The package id is now focusquest.twinport and all command and configuration namespaces have moved from copilotConfigSync.* to twinport.*. The old copilotConfigSync.* command ids and globalState keys remain wired as hidden aliases for one release so existing keybindings and tasks keep working; see the migration notes in CHANGELOG.md for the v1.0.0 entry.

Twinport

A VS Code extension that provisions and weekly-refreshes your ~/.copilot/ folder (agents, skills, instructions, MCP servers) from a GitHub repo of your choice.

If you keep your Copilot CLI customizations in a Git repository - agents, skills, path-specific instructions, MCP server definitions - this extension takes care of pulling that repo into ~/.copilot/ automatically and on demand, without ever touching your personal databases, OAuth tokens, or local settings.

What it does

  1. First-run walkthrough. Walks you through pointing the extension at the GitHub repo that owns your Copilot config, then runs the first sync.
  2. Twinport: Sync Now. Pulls origin/<branch> from the configured repo and copies the whitelisted categories into ~/.copilot/.
  3. Weekly auto-sync. Runs once every 7 days in the background. Toggle with twinport.autoSyncWeekly.
  4. MCP translation. Reads mcp-config.json (CLI format) from the source repo and writes mcp.json (VS Code format) into your user profile.
  5. Protected paths. Refuses to write over your personal state - dtwin databases, session state, OAuth tokens, settings.json, permissions-config.json, config.json, and logs.

60-second quick start

  1. Install the extension.
  2. On first run, accept the walkthrough. It asks for your source repository in owner/repo form (no default - you must set this before the first sync).
  3. Click Sync Now. The extension clones the source, copies the agents, skills, instructions, and rules into ~/.copilot/, and translates your MCP config into the VS Code-format mcp.json.
  4. Run Twinport: Open ~/.copilot Folder to confirm the layout.

Configuration reference

Setting Type Default Purpose
twinport.sourceRepo string (none - must be configured) GitHub repo to sync from (owner/repo).
twinport.sourceBranch string main Branch to sync from.
twinport.categories array ["agents","skills","instructions","rules","copilot-instructions"] Subfolders under .github/ in the source repo to copy into ~/.copilot/.
twinport.translateMcpConfig boolean true Translate mcp-config.json (CLI format) into VS Code's mcp.json.
twinport.autoSyncWeekly boolean true Run a sync once every 7 days.
twinport.dryRun boolean false Log what would change without writing files.

Commands

Command Action
Twinport: Sync Now Run a sync immediately.
Twinport: Configure Source Repository Change the source repo / branch.
Twinport: Open ~/.copilot Folder Reveal ~/.copilot/ in your OS file explorer.
Twinport: Show Sync Log Show the extension's output channel.
Twinport: Migrate from copilot-config-sync Re-run the one-shot legacy-namespace migration. Idempotent.

Privacy and data

This extension reads only the GitHub repository you configure and writes only into ~/.copilot/ - minus a strict allow-list of paths it will never touch (PROTECTED_PATHS):

  • Personal databases (dtwin-notes.db, session-store.db, and their WAL/SHM siblings)
  • session-state/** (per-session state)
  • mcp-oauth-config/** (OAuth tokens and credentials)
  • logs/**, pkg/** (logs and runtime artifacts)
  • settings.json, permissions-config.json, config.json (user-owned config)

No telemetry. No network traffic beyond the git fetch of the configured repository. The extension runs entirely on your machine.

Default source repository

twinport.sourceRepo ships with no default. You must point it at your own fork or team repository (in <your-org>/<your-repo> form) before running the first sync. The walkthrough and the Twinport: Configure Source Repository command both prompt for this value.

Publishing (maintainer)

This extension is published using Azure AD federated authentication. No PAT is required.

  1. az login (one-time per machine, refreshed roughly every 90 days)
  2. npm run publish

To bump the patch version and publish in one step, use npm run publish:patch.

If az login is not available, fall back to a Personal Access Token:

npx @vscode/vsce login tosao   # PAT prompt
npx @vscode/vsce publish

See docs/publishing.md for the full release flow (version bump, changelog, smoke test, rollback).

Architecture

See docs/architecture.md for the sync flow, protected-paths model, and MCP translator design. See docs/extending.md to add a new sync category.

License

MIT. See LICENSE.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft