Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Synk DevspaceNew to Visual Studio Code? Get it now.
Synk Devspace

Synk Devspace

synk.devspace

|
2 installs
| (0) | Free
Zero-friction environment setup for Node.js and Python projects — detects, installs, and records everything automatically.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Synk Devspace

Zero-friction environment setup for VS Code. Open a project, click one button — Synk Devspace installs the runtime, the dependencies, and gets you coding in seconds.

Version VS Code License: MIT


What is Synk Devspace?

Synk Devspace is a VS Code extension that eliminates the "it works on my machine" problem by automatically detecting what a project needs to run, installing the correct runtime and dependencies, and recording every decision in a .zerosetup.json manifest so the whole team is always in sync.

Supported ecosystems (v0.1)

Ecosystem Detected via Setup actions
Node.js package.json Installs correct Node version; runs npm install
Python requirements.txt, pyproject.toml, Pipfile, setup.py Creates virtualenv; runs pip install

v0.1 Features

  • 🔍 Auto-detect — Synk scans your workspace for well-known manifest files and determines the project type automatically.
  • ⚡ One-click setup — A single command (Synk: Set Up Environment) installs everything. No terminal, no manual steps.
  • 📋 View Plan — Preview exactly what Synk will do before it does it.
  • 💾 .zerosetup.json manifest — A machine-readable record of the detected environment and installed versions, committed alongside your code.
  • 🖥️ Synk Terminal — Opens a pre-configured integrated terminal with the correct runtime already on PATH.
  • ▶️ Run Dev Script — Launches your project's start command (npm run dev, python main.py, etc.) from the sidebar.
  • 🔐 Authentication — Sign in to your account to sync settings and unlock team features.
  • 🗂️ Activity-bar panel — The Synk sidebar gives you at-a-glance project status and quick-action buttons.

Installation

  1. Open VS Code.
  2. Press Ctrl+P (or ⌘P on macOS) and type:
    ext install synkdevspace.synkdevspace
    
  3. Reload VS Code when prompted.

Synk activates automatically when you open a folder containing package.json, requirements.txt, pyproject.toml, Pipfile, setup.py, or .zerosetup.json.


Usage

Automatic setup (recommended)

When synk.autoDetect is enabled (the default), Synk detects your project type on workspace open and shows a notification:

Synk detected a Node.js project. Set up the environment now?   [Set Up]  [View Plan]  [Later]

Click Set Up and Synk handles the rest.

Manual commands

Access all commands via the Command Palette (Ctrl+Shift+P / ⌘⇧P):

Command Description
Synk: Set Up Environment Detect and install everything for the current workspace
Synk: View Setup Plan Preview the steps Synk will take, without executing them
Synk: Run Dev Script Run the project's primary dev/start script
Synk: Open Terminal Open an integrated terminal with the correct runtime on PATH
Synk: Sign In Sign in to your account
Synk: Sign Out Sign out of your account

Configuration

Open Settings (Ctrl+,) and search for Synk to find:

Setting Type Default Description
synk.autoDetect boolean true Auto-detect project type and prompt on workspace open
synk.showWelcomeOnStartup boolean true Show the Synk welcome panel on first open

Authentication

Synk v0.1 includes authentication built on standard VS Code security APIs:

  • GitHub Authentication: Uses the native vscode.authentication.getSession('github', ['read:user', 'user:email']) API. Interactive sign-in only prompts when the user requests it.
  • Secure Token Storage: Tokens are stored strictly in context.secrets (synk.github.token). Tokens and sessions are never logged, never saved in workspace settings, and never exposed to git.
  • Local Autonomy: Scanning, runtime installation, and environment management work 100% offline without signing in. Sign-in exists to unlock future environment sync and cloud capabilities.
  • Commands:
    • Synk: Sign In (synk.signIn)
    • Synk: Sign Out (synk.signOut)

Backend Requirements for Google Authentication

In v0.1, Google Sign-In is exposed behind the AuthProvider interface as a stub. When implementing the cloud backend for Google Auth, the backend service must provide:

  1. OAuth 2.0 PKCE Authorization Endpoint:
    • RFC 7636 Authorization Code with Proof Key for Code Exchange (PKCE) flow.
    • Redirect URI support for the VS Code loopback handler (http://127.0.0.1:<port>/callback) or custom URI scheme (vscode://synkdevspace.synkdevspace/auth).
  2. Token Exchange & Refresh Service:
    • POST /api/v1/auth/google/token accepting authorization code + code verifier.
    • Returns short-lived access token, refresh token, and user profile (id, email, name).
    • Secure refresh endpoint: POST /api/v1/auth/google/refresh.
  3. Session Revocation Endpoint:
    • POST /api/v1/auth/google/revoke to invalidate tokens on sign-out.
  4. Security & Zero Secrets in Client:
    • OAuth Client Secret must reside exclusively on the backend server.
    • All client-side requests must validate state tokens to prevent CSRF.

The .zerosetup.json Manifest

After a successful setup, Synk writes or updates a .zerosetup.json file in the workspace root. Commit this file to source control so every contributor and CI runner reproduces the identical environment.

Node.js Example

{
  "version": "1",
  "createdAt": "2026-11-13T18:00:00.000Z",
  "updatedAt": "2026-11-13T18:00:00.000Z",
  "projects": [
    {
      "kind": "node",
      "rootPath": ".",
      "runtime": {
        "name": "node",
        "version": "20.11.0"
      },
      "packageManager": "npm",
      "installCommand": "npm ci",
      "scripts": [
        { "name": "dev", "command": "vite" },
        { "name": "build", "command": "tsc && vite build" },
        { "name": "test", "command": "vitest" }
      ]
    }
  ]
}

Python Example

{
  "version": "1",
  "createdAt": "2026-11-13T18:00:00.000Z",
  "updatedAt": "2026-11-13T18:00:00.000Z",
  "projects": [
    {
      "kind": "python",
      "rootPath": ".",
      "runtime": {
        "name": "python",
        "version": "3.11.9"
      },
      "venvPath": ".venv",
      "installCommand": "pip install -r requirements.txt"
    }
  ]
}

Monorepo / Multi-Project Example

{
  "version": "1",
  "createdAt": "2026-11-13T18:00:00.000Z",
  "updatedAt": "2026-11-13T18:00:00.000Z",
  "projects": [
    {
      "kind": "node",
      "rootPath": "frontend",
      "runtime": {
        "name": "node",
        "version": "20.11.0"
      },
      "packageManager": "pnpm",
      "installCommand": "pnpm install --frozen-lockfile",
      "scripts": [
        { "name": "dev", "command": "next dev" }
      ]
    },
    {
      "kind": "python",
      "rootPath": "backend",
      "runtime": {
        "name": "python",
        "version": "3.12.4"
      },
      "venvPath": "backend/.venv",
      "installCommand": "pip install -r requirements.txt"
    }
  ]
}

Schema Fields

Field Type Description
version string Manifest schema version (currently "1")
createdAt string ISO 8601 timestamp of original creation
updatedAt string ISO 8601 timestamp of last update
projects array Array of configured subprojects
projects[].kind "node" | "python" Runtime kind
projects[].rootPath string Path to project relative to workspace root
projects[].runtime.name string Runtime identifier (node or python)
projects[].runtime.version string Exact pinned runtime version
projects[].packageManager string? Package manager for Node (npm, pnpm, yarn)
projects[].installCommand string Command executed to install dependencies
projects[].scripts array? Detected lifecycle scripts (name and command)
projects[].venvPath string? Virtualenv location for Python projects

Contributing

Contributions are welcome! Here is how to get started:

Prerequisites

  • Node.js 20+
  • npm 10+
  • VS Code 1.85+

Local development

# 1. Clone the repo
git clone https://github.com/void-dev/void.git
cd void

# 2. Install dev dependencies
npm install

# 3. Compile (watches for changes)
npm run watch

# 4. Launch in VS Code
#    Press F5 — this opens the Extension Development Host

Project structure

void/
├── src/
│   └── extension.ts      # Extension entry-point
├── dist/                 # Bundled output (git-ignored)
├── out/                  # tsc output for type-checking (git-ignored)
├── esbuild.js            # Build script
├── package.json
├── tsconfig.json
├── ROADMAP.md
└── README.md

Scripts

Script Purpose
npm run compile Production bundle via esbuild
npm run watch Incremental dev build, watches src/
npm run package Create a .vsix for local install
npm run vscode:prepublish Called by vsce before publishing

Pull request checklist

  • [ ] Code passes tsc --noEmit without errors
  • [ ] No new runtime npm dependencies (VS Code API and Node built-ins only)
  • [ ] .zerosetup.json schema changes are reflected in this README
  • [ ] New commands are added to package.json contributes.commands

License

MIT © 2026 Void Dev

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft