VSCodeSyncFiles
Это не облачное хранилище — это синхронизация через ваше облако.
Данные хранятся в вашем аккаунте: OneDrive, Google Drive, Dropbox или Яндекс Диск.
Никаких посторонних серверов — только ваш провайдер.
Вы выбираете конкретные файлы, объединяете их в логические воркспейсы.
Расширение автоматически передаёт их на другие ваши машины.
Остальные файлы в вашем облаке оно не трогает и не читает.
Как это работает:
Расширение обращается к API облачного провайдера командами.
Вместо того чтобы вручную закидывать и скачивать файлы — оно делает это само.
Работает из коробки:
Для Яндекс Диска и Dropbox уже прописан токен по умолчанию — ничего настраивать не нужно.
Если нужен собственный лимит на API — есть инструкция, как подключить свой токен.
Возможности
- Своё облако — OneDrive · Google Drive · Dropbox · Яндекс Диск
- Выборочная синхронизация — добавляйте только нужные файлы
- Именованные воркспейсы — группируйте файлы, делитесь между машинами
- Разрешение конфликтов — оставить своё / взять чужое / трёхстороннее сравнение + AI-слияние (Copilot или локальный LLM: Ollama / LM Studio)
- Снимки и история — создавайте именованные снимки, восстанавливайте любую версию файла
- Сквозное шифрование — AES-256-GCM на уровне воркспейса, ключи хранятся у вас
- Watch-режим — автосинхронизация при изменении файла с адаптивными интервалами
- Работа офлайн — изменения ставятся в очередь и отправляются при восстановлении соединения
- Быстрая передача — отправьте файл на другую машину без воркспейса, одним действием
- P2P-сессия (experimental) — прямая передача файлов между машинами через WebRTC, минуя облако (когда обе онлайн)
- Passkey / WebAuthn unlock — разлок ключа шифрования через Windows Hello / Touch ID / hardware key
- DuckDB analytics — SQL-запросы по локальной активности и статистике через встроенный DuckDB-WASM
- Templates marketplace — установка готовых пресетов воркспейса из публичного реестра шаблонов
- OAuth Device Code — sign-in без браузера (для headless / SSH / restricted сред)
Что нового в v0.6
- Панель аналитики —
VSCodeSync: Открыть панель аналитики открывает встроенный DuckDB для SQL-запросов по activity.json / stats.json.
- P2P sync (experimental) —
VSCodeSync: Начать P2P-сессию создаёт зашифрованный канал между двумя машинами; manifest всё ещё через облако (authoritative), файлы летят напрямую через WebRTC. Включается через vscodesync.p2p.experimental.
- Passkey / WebAuthn —
Зарегистрировать passkey оборачивает DEK в WebAuthn-производный KEK; Разлок ключа через passkey восстанавливает через биометрию или hardware key. Опциональный fallback — passphrase или recovery codes.
- Локальный LLM для AI-merge — endpoint настраивается через
vscodesync.aiMerge.endpointModel (vscode-lm / ollama / lm-studio / custom URL). Ваши файлы могут не покидать машину.
- SARIF export —
VSCodeSync: Экспортировать конфликты в SARIF выгружает heatmap конфликтов в формате, который поддерживают GitHub Advanced Security, SonarQube, любой SARIF-совместимый инструмент.
- Зашифрованный бандл —
VSCodeSync: Экспортировать зашифрованный бандл создаёт .vscsbundle файл для офлайн-переноса воркспейса (passphrase-protected, AES-256-GCM).
- BLAKE3 миграция — опциональный апгрейд канонического хэша с SHA-256 на BLAKE3 (5–15× быстрее на больших файлах). Dual-hash transition без поломки совместимости.
Полный список — см. CHANGELOG.md.
Поддерживаемые провайдеры
| Провайдер |
Способ авторизации |
| Microsoft OneDrive |
OAuth 2.0 (браузер) или код устройства |
| Google Drive |
OAuth 2.0 (браузер) |
| Dropbox |
OAuth 2.0 (браузер) |
| Яндекс Диск |
OAuth-токен (вручную или через браузер) |
Все файлы хранятся в папке VSCodeSyncFiles/ в корне вашего облака — полностью видимы и переносимы.
Начало работы
- Установите расширение
- Откройте панель VSCodeSync на боковой панели активности
- Запустите мастер настройки (
VSCodeSync: Запустить мастер настройки) и выберите провайдер
- Войдите в свой облачный аккаунт
- Создайте воркспейс и добавьте в него файлы
- На другой машине — установите расширение, войдите в тот же аккаунт, затем Подключитесь к облачному воркспейсу
Ключевые понятия
Воркспейсы
Воркспейс — это именованная группа файлов, которые синхронизируются вместе. Каждый воркспейс получает собственную папку в облаке. Можно создавать несколько воркспейсов на проект, помечать их тегами, привязывать к Git-ветке или архивировать.
Отслеживаемые файлы
Любой файл в редакторе можно добавить в воркспейс. Расширение отслеживает его по пути относительно корня проекта с поддержкой маппинга путей для каждой машины — удобно, когда проект лежит в разных папках на разных компьютерах.
Манифест и версионирование
В облаке хранится канонический манифест (.vscodesync-workspace.json) со счётчиками Лампорта и хэшами файлов. Конфликты обнаруживаются надёжно, даже если две машины синхронизировались в одну секунду.
Основные команды
| Команда |
Описание |
VSCodeSync: Запустить мастер настройки |
Первоначальная настройка |
VSCodeSync: Создать воркспейс |
Создать новый воркспейс |
VSCodeSync: Подключиться к облачному воркспейсу |
Присоединиться к существующему воркспейсу с другой машины |
VSCodeSync: Добавить текущий файл |
Добавить активный файл в воркспейс |
VSCodeSync: Отправить всё |
Загрузить все изменённые файлы в облако |
VSCodeSync: Получить всё |
Скачать все удалённые изменения |
VSCodeSync: Синхронизировать воркспейс |
Двусторонняя синхронизация |
VSCodeSync: Предпросмотр синхронизации |
Холостой запуск — посмотреть, что изменится |
VSCodeSync: Разрешить конфликты |
Открыть интерфейс разрешения конфликтов |
VSCodeSync: Создать снимок |
Сохранить именованный снимок воркспейса |
VSCodeSync: Восстановить снимок |
Откатиться к предыдущему снимку |
VSCodeSync: Показать историю файла |
Просмотр истории версий файла |
VSCodeSync: Отправить файл (разовая передача) |
Отправить файл без воркспейса |
VSCodeSync: Экспорт / Импорт ключа шифрования |
Управление ключами шифрования |
VSCodeSync: Мигрировать на другой провайдер |
Перенести все данные в другое облако |
VSCodeSync: Проверка состояния |
Диагностика синхронизации |
VSCodeSync: Открыть панель аналитики |
DuckDB-панель для SQL-запросов по локальной активности |
VSCodeSync: Начать P2P-сессию / Завершить P2P-сессию |
Прямой канал между машинами (experimental) |
VSCodeSync: Войти через OAuth Device Code |
OAuth без браузера — для headless / SSH окружений |
VSCodeSync: Зарегистрировать passkey / Разлок ключа через passkey / Удалить passkey |
WebAuthn разлок ключа шифрования |
VSCodeSync: Установить шаблон workspace / … из реестра |
Установка пресетов воркспейса |
VSCodeSync: Экспортировать зашифрованный бандл |
.vscsbundle для офлайн-переноса воркспейса |
VSCodeSync: Экспортировать конфликты в SARIF |
Выгрузка heatmap конфликтов в SARIF v2.1.0 |
VSCodeSync: Проверить статус миграции на BLAKE3 / Дозаполнить BLAKE3 |
Миграция канонического хэша SHA-256 → BLAKE3 |
VSCodeSync: Прогреть кэш активного воркспейса |
Прогрев workspace.fs.prefetch для быстрого открытия файлов |
Полный список команд доступен в палитре команд (Ctrl+Shift+P) по запросу VSCodeSync:.
Настройки
Все параметры находятся в пространстве имён vscodesync.*:
| Параметр |
По умолчанию |
Описание |
vscodesync.notificationLevel |
normal |
silent · normal · verbose |
vscodesync.showFileDecorations |
true |
Значки статуса синхронизации в Проводнике |
vscodesync.maxFileSizeMB |
10 |
Пропускать файлы крупнее этого размера |
vscodesync.encryption |
false |
Шифровать блобы воркспейса (AES-256-GCM) |
vscodesync.aiMerge.enabled |
false |
Использовать GitHub Copilot для разрешения конфликтов |
vscodesync.watchMode |
false |
Автосинхронизация при сохранении файла |
vscodesync.watchIntervalSeconds |
30 |
Минимальный интервал опроса в watch-режиме |
vscodesync.deltaSync |
true |
Загружать только изменённые части файла |
vscodesync.compressUploads |
true |
Gzip-сжатие перед загрузкой (отключить при шифровании) |
vscodesync.lineEnding |
preserve |
lf · crlf · preserve |
vscodesync.syncSchedule |
— |
Ограничить синхронизацию определёнными часами/днями |
vscodesync.localBackupEnabled |
true |
Хранить локальные резервные копии перед перезаписью |
vscodesync.snapshotRetentionDays |
30 |
Автоудаление старых снимков |
vscodesync.quickTransferTtlDays |
7 |
Срок хранения файлов быстрой передачи в облаке |
vscodesync.gitBranchAutoSync |
false |
Переключать активный воркспейс при смене Git-ветки |
vscodesync.p2p.experimental |
false |
Включить P2P-сессии (WebRTC прямой канал) |
vscodesync.aiMerge.endpointModel |
vscode-lm |
Endpoint AI-merge: vscode-lm · ollama · lm-studio · custom URL |
vscodesync.ai.sessionSummary.enabled |
false |
Разрешить отправку метаданных для AI-сводки сессии |
vscodesync.ai.suggestWorkspaceTags.enabled |
false |
Разрешить AI-подсказку тегов воркспейса |
vscodesync.ai.pathMapper.enabled |
false |
Разрешить AI-сопоставление путей при миграции |
vscodesync.canonicalHashAlgo |
sha256 |
Канонический хэш: sha256 · blake3 · dual |
vscodesync.passkey.peerRegistrySync |
off |
Синхронизация passkey между машинами: off · p2p · cloud_mirror |
vscodesync.smartConflictPrediction.broadcastCurrentEditing |
full |
Live-presence в _machines.json: full · anonymised · off |
vscodesync.templates.registryUrl |
— |
URL реестра шаблонов воркспейса (по умолчанию — borodatych/vscodesync-templates) |
vscodesync.backup.secondaryProvider |
— |
Зеркалировать manifest + snapshots в дополнительный провайдер |
vscodesync.backup.intervalDays |
7 |
Интервал зеркалирования cross-cloud backup |
Интеграция с задачами VS Code
VSCodeSync регистрирует тип задачи для tasks.json:
{
"type": "vscodesync",
"task": "push-all"
}
Доступные задачи: push, pull, push-all, pull-all, create-snapshot.
Требования
- VS Code 1.80.0 или новее
- Аккаунт у одного из поддерживаемых провайдеров
- Доступ к API провайдера
Конфиденциальность и безопасность
- Ваши файлы хранятся в вашем собственном облачном аккаунте — у VSCodeSync нет серверной части.
- OAuth-токены хранятся в зашифрованном Secret Storage VS Code.
- При включённом
vscodesync.encryption содержимое файлов шифруется на клиенте до загрузки. Ключ шифрования никогда не передаётся.
- При включённом WebAuthn ключ шифрования дополнительно оборачивается через PRF-производный KEK от passkey — даже компрометация Secret Storage не даёт доступа без биометрии или hardware key.
- AI-команды (
sessionSummary / suggestWorkspaceTags / pathMapper) отключены по умолчанию и требуют opt-in для каждой. Передаются только пути файлов, не содержимое.
- При выборе локального LLM (
ollama / lm-studio) данные AI-merge не покидают машину.
- Телеметрия отключена по умолчанию и управляется командой
VSCodeSync: Переключить телеметрию.
Поддержать проект
Если расширение оказалось полезным — буду рад благодарности 🙏
Лицензия
MIT