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

Twinport

focusquest

|
4 installs
| (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

Compatibility release: Twinport 1.0.2 is the migration bridge to focusquest.focusquest 1.9.0 or newer. When that extension is installed, Twinport exports its explicit configuration and non-secret state, delegates commands to FocusQuest Copilot Sync, and suppresses its own walkthrough and weekly background sync. Without a compatible FocusQuest installation, Twinport continues to work standalone.

Twinport keeps your Copilot configuration consistent across machines by provisioning and weekly-refreshing your ~/.copilot/ folder (agents, skills, instructions, MCP servers) from a GitHub repo of your choice. It is the Copilot configuration-sync tool and one of this publisher's independent developer tools.

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.

Migration from copilot-config-sync

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 v1.0.0 migration notes in the Changelog tab for details.

Migration to FocusQuest

FocusQuest 1.9.0 is the minimum release that owns the canonical focusquest.copilotSync.* commands and accepts Twinport's typed focusquest-extension-migration.v1 export. The export contains only explicitly configured twinport.* settings and non-secret globalState: the last successful sync time, walkthrough completion, and the prior namespace-migration marker. Twinport has no stored secrets, and the export never contains filesystem content or repository credentials.

With FocusQuest 1.9.0 or newer installed, both twinport.* commands and hidden twinport.legacy.* aliases delegate to the matching canonical commands. Twinport does not start its first-run walkthrough, weekly scheduler, status surface, or other background sync work. Run Twinport: Retry Migration to FocusQuest (twinport.migrateToFocusQuest) to request another idempotent import. The existing Migrate from copilot-config-sync command remains available for older local installs and profiles.

Keep Twinport installed until FocusQuest confirms the import and your existing automation has been exercised. A later release may deprecate the Marketplace listing after a separately announced compatibility window; this release does not publish, unpublish, or change Marketplace status.

The sync-health status and safe starter-repository work proposed in Twinport PR #7 moved to FocusQuest's unified Copilot Sync implementation. It is not duplicated in this compatibility release, avoiding a second status worker or competing setup flow.

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.
Twinport: Retry Migration to FocusQuest Ask FocusQuest 1.9.0+ to import Twinport's migration payload again.

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.

Architecture

Twinport fetches the configured repository into a temporary worktree, copies enabled categories while preserving protected paths, translates MCP paths for the local machine, and atomically replaces managed files.

License

MIT.

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