One-IDE is built for developers who work across multiple environments simultaneously. When you open a project in both a JetBrains IDE and VS Code (or its forks), your editors stay perfectly in sync—providing a seamless transition as you switch between tools.
Beyond file tracking, the extension automatically detects and adapts AI project rules between platforms. For example, if you update project rules in Cursor, Trae will instantly detect the changes, convert them to its native format, and apply them to the correct location.
- Cross-IDE Synchronization: Syncs active file and cursor position between VS Code and JetBrains IDEs.
- AI Project Rules Synchronization: Automatically detects and syncs AI project rules (e.g.,
.cursorrules,.trae/rules) between different AI coding tools.
The system consists of two plugins that work together to synchronize editor state and AI project rules:
- VS Code Extension: Supports VS Code and its forks (Cursor, Antigravity, etc.)
- JetBrains Plugin: Supports JetBrains IDEs (IntelliJ IDEA, WebStorm, PyCharm, etc.)
Both plugins share the same global configuration. And all connected IDEs will sync their states and rules with each other.
The synchronization system is designed as a distributed cluster where all running IDE instances coordinate via a shared local directory (~/.one-ide).
-
Leader-Follower Model:
- Leader: The currently active IDE instance (where you are typing or navigating). It is responsible for capturing the editor state (open files, cursor position) and publishing it to the cluster.
- Follower: All other inactive IDE instances. They listen for state updates from the Leader and apply them to their local editors.
- Candidate: A temporary role used during leader election when a Follower attempts to become a Leader.
-
Leader Election:
- The system uses a file-based lock mechanism to manage leadership.
- When you switch focus to an IDE or perform an action (e.g., typing), that instance attempts to acquire leadership.
- If successful, it becomes the Leader and starts broadcasting its state. Previous leaders downgrade to Followers.
-
State Exchange:
- State is serialized into JSON format and written to a shared file (
~/.one-ide/cluster/state.json). - Followers watch this file for changes and apply updates in real-time.
- State is serialized into JSON format and written to a shared file (
The plugin monitors project-specific AI rule files. If it detects changes in rules for a supported AI tool (e.g., Cursor, Windsurf) and you are currently running a different tool (e.g., Trae), it will attempt to sync the rules to your current tool's configuration format.
Supported AI Tools:
- Cursor (
.cursorrules,.cursor/rules) - Trae (
.trae/rules) - Windsurf (
.windsurfrules,.windsurf/rules) - GitHub Copilot (
.github/copilot-instructions.md) - Claude (
.claude/rules,.claude.json) - JetBrains AI Assistant (
.aiassistant/rules) - Junie (
.junie) - Qodo (
.codiumai.toml,.codiumai.yaml) - Qoder (
.qoder) - Antigravity (
.antigravity/rules)
- Open Settings/Preferences > Plugins > Marketplace.
- Search for
One-IDE. - Click Install.
Alternatively, you can download it from the JetBrains Marketplace.
- Open the Extensions view (
Ctrl+Shift+XorCmd+Shift+X). - Search for
One-IDE. - Click Install.
Alternatively, you can install it from the VS Code Marketplace.
- Node.js (for VS Code extension build)
- JDK 17+ (for JetBrains plugin build)
cd vscode-extension
npm install
npm run compileYou can then load the extension in VS Code via "Run and Debug" or package it with vsce package.
cd jetbrains-plugin
./gradlew buildPluginThe plugin archive will be generated in jetbrains-plugin/build/distributions. Install it in your JetBrains IDE via "Install Plugin from Disk".