Long-term vision: Keep your development environment running on a personal workstation or in the cloud. Wherever you are, open a browser, pick up where you left off, and start vibe coding.
vibe vscode is built on Code - OSS. It evolves the portable development editor of the pre-Agent era into a long-running workbench that can switch instantly between multiple task contexts. The goal is not to replace VS Code's editing, terminal, or extension capabilities, but to add stable context management so projects, terminals, and Agent sessions remain continuous across context switches and network interruptions.
Status: ✅ Available 🚧 In progress ⬜ Planned
Demos were recorded before the branding refresh.
-
✅ Web-first operation: vibe vscode is designed for the browser first. We recommend hosting the development environment on an always-on machine or in the cloud, with the workbench always a web page away. Projects, terminals, and Agent tasks run on the server, while the browser handles interaction and state projection—no desktop client required.
-
✅ Cached page loading and resumable downloads: Core startup resources are compressed, chunked, verified, and cached in the browser with visible download progress. Refreshing or reopening the browser reuses cached chunks, interrupted downloads resume only missing chunks, and new releases reuse unchanged content to reduce repeated downloads and improve loading on slow or unreliable connections.
-
✅ Sign-in required: Every hosted HTTP request and WebSocket handshake must pass sign-in before it reaches any VS Code route. The first visitor registers the single administrator account, after which registration closes. Sessions survive server restarts, renew while in use, and can be revoked from the Accounts menu or the Command Palette. Authentication is embedded in the remote server with Node's built-in SQLite and enforced by Caddy at the gateway; see the design document.
-
🚧 Non-blocking remote connectivity: Replace modal interruption with status-bar reconnect state, immediate retry after network recovery, and uninterrupted access to the current work. This is not yet included in the current implementation.
-
-
✅ Logical Workspace: Create and select logical workspaces from the status bar or Command Palette without reloading the page. Switching saves and restores the visibility, size, and active view of the primary sidebar, panel, and secondary sidebar.
- Remote authoritative state: The workspace catalog, layouts, and editor working sets are stored in remote SQLite. Other pages read the latest snapshot after refresh or reconnect, while each page keeps its active Workspace selection locally.
- Terminal isolation and persistence: A terminal belongs to the logical workspace in which it was created, with ownership persisted in PTY process metadata. Switching workspaces moves terminals between foreground and background without closing them. A stable logical terminal ID survives local or remote PTYs, persistent-process reconnection, and page restoration.
- ⬜ Chat / Agent session-tab working sets: The session catalog and Agent Sessions list remain global and are not owned by a logical workspace. A future workspace projection will restore only its open session tabs; the same session may appear in multiple workspaces, and closing a tab will not delete the session. PR #1 removes the premature single-owner filtering and does not claim session-tab restoration as implemented.
-
✅ Project Context: Select or add a project folder inside a single multi-root physical Workspace. Explorer and Source Control follow the same state projection: switching Project focuses the Explorer root and shows only Git repositories inside the current Project, while open editors, terminals, and sessions remain intact. Separate status-bar entries distinguish Workspace from Project.
-
⬜ Fullscreen session management panel: Provide a workbench-wide interface for viewing, creating, switching, and managing Agent sessions in one place.
-
⬜ Document-driven development: Select document content in the editor and create a new Agent session from the context menu, using the selection as context so requirements and design documents can directly drive implementation.
-
⬜ Codex Agent-first interaction: Treat Codex Agent as the primary session experience, with priority given to session creation, interaction, status visibility, and restoration.
-
🚧 Agent workflows: Explore Sim for repeatable development workflows with Agent, condition, parallel, and approval steps. Workflow integration and automated triggers are in progress.
Linux x64, no root, no systemd; Node and Caddy are bundled. Install v1.135.0-vibe.1:
curl -fsSL 'https://github.com/ActivePeter/vibe-vscode/releases/download/v1.135.0-vibe.1/install.sh' | bash -s -- --tag 'v1.135.0-vibe.1'The installer verifies the archive and selects it as ~/.vibe-vscode/current; it never starts anything. Custom install root, upgrades and rollback: Install and start.
Use the hostname or IP you will type into the browser:
~/.vibe-vscode/current/bin/vibe-vscode start --origin https://dev.example.com:18080
# Open https://dev.example.com:18080; register the administrator, then add projects in the workbench.Without your own TLS certificate, trust the Caddy root certificate printed at startup. Restrict access until the administrator is registered. Ctrl-C stops everything.
| Option | Default | Use |
|---|---|---|
--origin |
https://<hostname>:<port> |
The exact HTTPS address typed into the browser; repeat it for several entries, no domain needed |
--port |
18080 |
Public HTTPS port |
--state-dir |
~/.vibe-vscode/state |
Accounts, settings, extensions and the workspace; keep it across upgrades |
--tls-cert / --tls-key |
self-signed | Your own certificate and key |
--session-ttl |
43200 |
Session lifetime in seconds |
# LAN, VPN and local entries at once
~/.vibe-vscode/current/bin/vibe-vscode start --origin https://192.168.1.5:18080 --origin https://100.64.0.7:18080 --origin https://localhost:18080
# Your own certificate on port 443
~/.vibe-vscode/current/bin/vibe-vscode start --origin https://dev.example.com --port 443 --tls-cert /path/fullchain.pem --tls-key /path/privkey.pem
# After the first start has created ~/.vibe-vscode/state, persist defaults so later starts need no options
printf 'VIBE_VSCODE_ORIGIN=https://dev.example.com:18080\n' > ~/.vibe-vscode/state/vibe-vscode.env
~/.vibe-vscode/current/bin/vibe-vscode start
# Optional: run as a user service
~/.vibe-vscode/current/bin/vibe-vscode systemd --install
systemctl --user daemon-reload && systemctl --user enable --now vibe-vscodeDetails, health checks, upgrades and rollback: Install and start.
Install dependencies and use two terminals:
# Terminal 1: continuously compile changes
npm run watch
# Terminal 2: start the web workbench at http://localhost:8080
./scripts/code-web.sh .- Electron desktop product: vibe vscode product development, regression coverage, and releases target only Remote Web (browser Workbench + Remote Server). The repository retains the upstream Code - OSS Electron source to ease future synchronization, but does not publish, test, maintain, or promise compatibility for the desktop Electron product; Electron-specific regressions are not PR gates.
This repository ("Code - OSS") is where we (Microsoft) develop the Visual Studio Code product together with the community. Not only do we work on code and issues here, but we also publish our roadmap, monthly iteration plans, and our endgame plans. This source code is available to everyone under the standard MIT license.
Visual Studio Code is a distribution of the Code - OSS repository with Microsoft-specific customizations released under a traditional Microsoft product license.
Visual Studio Code combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. It provides comprehensive code editing, navigation, and understanding support along with lightweight debugging, a rich extensibility model, and lightweight integration with existing tools.
Visual Studio Code is updated monthly with new features and bug fixes. You can download it for Windows, macOS, and Linux on the Visual Studio Code website. To get the latest releases every day, install the Insiders build.
There are many ways in which you can participate in this project, for example:
- Submit bugs and feature requests, and help us verify them as they are checked in
- Review source code changes
- Review the documentation and make pull requests for anything from typos to new content.
If you are interested in fixing issues and contributing directly to the codebase, please see the document How to Contribute, which covers the following:
- How to build and run from source
- The development workflow, including debugging and running tests
- Coding guidelines
- Submitting pull requests
- Finding an issue to work on
- Contributing to translations
- Ask a question on Stack Overflow
- Request a new feature
- Upvote popular feature requests
- File an issue
- Connect with the extension author community on GitHub Discussions or Slack
- Follow @code and let us know what you think!
See our wiki for a description of each of these channels and information on some other available community-driven channels.
Many of the core components and extensions to VS Code live in their own repositories on GitHub. For example, the node debug adapter and the mono debug adapter repositories are separate from each other. For a complete list, please visit the Related Projects page on our wiki.
VS Code includes a set of built-in extensions located in the extensions folder, including grammars and snippets for many languages. Extensions that provide rich language support (inline suggestions, Go to Definition) for a language have the suffix language-features. For example, the json extension provides coloring for JSON and the json-language-features extension provides rich language support for JSON.
This repository includes a Visual Studio Code Dev Containers / GitHub Codespaces development container.
-
For Dev Containers, use the Dev Containers: Clone Repository in Container Volume... command, which creates a Docker volume for better disk I/O on macOS and Windows.
- If you already have VS Code and Docker installed, you can also click here to get started. This will cause VS Code to automatically install the Dev Containers extension if needed, clone the source code into a container volume, and spin up a dev container for use.
-
For Codespaces, install the GitHub Codespaces extension in VS Code, and use the Codespaces: Create New Codespace command.
Docker / the Codespace should have at least 4 cores and 6 GB of RAM (8 GB recommended) to run a full build. See the development container README for more information.
This project has adopted the Microsoft Open Source Code of Conduct. For more information, see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT license.




