opening-in-ide
Opens a file or folder in a supported IDE using the nearest workspace or project context when available.
Skill by David Orolin
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/linksofteu-opening-in-ide
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/opening-in-ide
What's inside
- Skill name
opening-in-ide- Description
- Opens a file or folder in a supported IDE using the nearest workspace or project context when available. Use when the user asks to open code in Rider, WebStorm, VS Code, Cursor, Windsurf, or a generic IDE from the CLI.
- License
- MIT
- Compatibility
- Intended for OpenCode/Codex-style agents on Linux, macOS, or Windows. Requires Bash or PowerShell plus supported IDE CLIs on PATH (`rider`, `webstorm`, `code`, `cursor`, `windsurf` on Unix-like systems; `rider`, `rider.bat`, `rider64.exe`, `webstorm`, `webstorm.bat`, `webstorm64.exe`, `code`, `code.cmd`, `cursor`, `cursor.cmd`, `windsurf`, or `windsurf.cmd` on Windows).
- Metadata
- author: David Orolin · version: 1.0.2
- Instructions
- 93 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (23)
- README.md
- SKILL.md
- evals.json · evals/
- run-harness.py · evals/
- JetBrainsOpen.ps1 · scripts/lib/
- VSCodeFamilyOpen.ps1 · scripts/lib/
- jetbrains-open.sh · scripts/lib/
- vscode-family-open.sh · scripts/lib/
- list-installed-ides.ps1 · scripts/
- list-installed-ides.sh · scripts/
- open-in-code.ps1 · scripts/
- open-in-code.sh · scripts/
- open-in-cursor.ps1 · scripts/
- open-in-cursor.sh · scripts/
- open-in-rider.ps1 · scripts/
- open-in-rider.sh · scripts/
- open-in-webstorm.ps1 · scripts/
- open-in-webstorm.sh · scripts/
- open-in-windsurf.ps1 · scripts/
- open-in-windsurf.sh · scripts/
- README.md · tests/
- run-harness.py · tests/
- scenarios.md · tests/
SKILL.md (first lines)
## Purpose Use this skill when the user wants to open a file or project in a supported IDE from the CLI, while preserving solution, project, or workspace context when possible. ## Behavior 1. Accept a file or directory path (default `.`) and an optional line number. 2. When the user names a specific supported IDE, use the matching launcher only. 3. When the user asks for a generic IDE: - Run the installed-IDE detection script for the current platform. - If no supported IDE is installed, report that none of the supported IDEs are available. - If exactly one supported IDE is installed, use it without asking. - If multiple supported IDEs are installed, ask the user which one to use. - Prefer an interactive multi-choice prompt when the runtime supports it. - Populate the choices from the detected installed IDEs instead of hardcoding a fixed set. - If the runtime does not support interactive choices, ask a single concise text question listing the available installed IDEs. - Do not guess when multiple valid installed IDEs are available and the user did not specify one. 4. If the user explicitly requests an IDE that is not installed, return a clear error and do not fall back to another IDE. 5. Launch the chosen IDE in non-blocking mode (fire-and-forget) so the terminal session is not held open. ## IDE-specific behavior ### Rider 1. Walk upward from the target location to find the nearest directory containing one or more `*.sln` files. 2. If a solution is found, open Rider with the solution and target path. 3. If no solution is found, fall back to the nearest `*.csproj`. 4. If neither is found, open the target directly. 5. When multiple matching files exist in one directory, prefer the file whose basename matches the directory name; otherwise choose alphabetically. ### WebStorm 1. Walk upward from the target location to find the nearest directory containing `.idea`. 2. If `.idea` is found, open WebStorm with that directory as context. 3. If no `.idea` exists, fall back to the nearest JavaScript or TypeScript project root containing one of: `package.json`, `pnpm-workspace.yaml`, `yarn.lock`, `package-lock.json`, `bun.lock`, `bun.lockb`, `tsconfig.json`, or `jsconfig.json`. 4. If no project root is found, open the target directly. 5. When opening a file at a line, use JetBrains `--line` behavior. 6. When opening a file without an explicit line number, still pass `--line 1` intentionally as a WebStorm workaround because some WebStorm builds can fail to open the file otherwise. 6. If WebStorm fails to open a requested file when only project context is provided, retry by anchoring the file open to line `1`. ### VS Code Family 1. Walk upward from the target location to find the nearest directory containing one or more `*.code-workspace` files. 2. If a workspace is found, open the chosen editor with that workspace as context. 3. If no workspace is found, fall back to the nearest `*.sln` and use that file's directory as context. 4. If no solution is found, fall back to the nearest `*.csproj` and use that file's directory as context. 5. If neither is found, open the target directly. 6. When opening a file at a line, use `--goto` behavior. 7. When multiple matching files exist in one directory, prefer the file whose basename matches the directory name; otherwise choose alphabetically. ## Scripts Use: - Linux/macOS IDE detection: `./skills/opening-in-ide/scripts/list-installed-ides.sh` - Windows IDE detection: `./skills/opening-in-ide/scripts/list-installed-ides.ps1` - Linux/macOS Rider launcher: `./skills/opening-in-ide/scripts/open-in-rider.sh <path> [--line <n>]` - Windows Rider launcher: `./skills/opening-in-ide/scripts/open-in-rider.ps1 <path> [--line <n>]` - Linux/macOS WebStorm launcher: `./skills/opening-in-ide/scripts/open-in-webstorm.sh <path> [--line <n>]` - Windows WebStorm launcher: `./skills/opening-in-ide/scripts/open-in-webstorm.ps1 <path> [--line <n>]` - Linux/macOS VS Code launcher: `./skills/opening-in-ide/scripts/open-in-code.sh <path> [--line <n>]` - Windows VS Code launcher: `./skills/opening-in-ide/scripts/open-in-code.ps1 <path> [--line <n>]` - Linux/macOS Cursor launcher: `./skills/opening-in-ide/scripts/open-in-cursor.sh <path> [--line <n>]` - Windows Cursor launcher: `./skills/opening-in-ide/scripts/open-in-cursor.ps1 <path> [--line <n>]` - Linux/macOS Windsurf launcher: `./skills/opening-in-ide/scripts/open-in-windsurf.sh <path> [--line <n>]` - Windows Windsurf launcher: `./skills/opening-in-ide/scripts/open-in-windsurf.ps1 <path> [--line <n>]` Examples: - `./skills/opening-in-ide/scripts/list-installed-ides.sh` - `./skills/opening-in-ide/scripts/open-in-rider.sh src/MyFile.cs --line 120` - `./skills/opening-in-ide/scripts/open-in-webstorm.sh src/app.ts --line 42` - `./skills/opening-in-ide/scripts/open-in-code.sh src/MyFile.cs --line 120` - `./skills/opening-in-ide/scripts/open-in-cursor.sh src/MyFile.cs --line 120` - `./skills/opening-in-ide/scripts/open-in-windsurf.sh src/MyFile.cs --line 120` - `./skills/opening-in-ide/scripts/open-in-rider.ps1 .` - `./skills/opening-in-ide/scripts/open-in-webstorm.ps1 .` - `./skills/opening-in-ide/scripts/open-in-code.ps1 .` - `./skills/opening-in-ide/scripts/open-in-cursor.ps1 .` - `./skills/opening-in-ide/scripts/open-in-windsurf.ps1 .` ## Notes - Current supported IDE identifiers are `rider`, `webstorm`, `code`, `cursor`, and `windsurf`. - The detection scripts print one installed IDE per line and succeed even when none are installed. - Rider requires CLI availability on `PATH` (`rider` on Unix-like systems; `rider`, `rider.bat`, or `rider64.exe` on Windows). - WebStorm requires CLI availability on `PATH` (`webstorm` on Unix-like systems; `webstorm`, `webstorm.bat`, or `webstorm64.exe` on Windows). - VS Code requires CLI availability on `PATH` (`code` on Unix-like systems; `code` or `code.cmd` on Windows). - Cursor requires CLI availability on `PATH` (`cursor` on Unix-like systems; `cursor` or `cursor.cmd` on Windows). - Windsurf requires CLI availability on `PATH` (`windsurf` on Unix-like systems; `windsurf` or `windsurf.cmd` on Windows). - When more IDEs are added later, keep the generic-selection flow data-driven: detect installed IDEs, present only valid installed options, and preserve the same interactive-choice-then-fallback behavior.
From Linksofteu/LinkSoft_Skills, MIT.
More from Linksofteu/LinkSoft_Skills
- 0.570score
openspec-workitem-enrichment
David Orolin
Use this skill when creating a new OpenSpec spec whose name follows `wi-<azure-devops-work-item-id>-<change-name>` so the spec can be enriched from Azure…
SkillAFreshness: AClaude Code +9 - 0.570score
sonar-findings
David Orolin
Use this skill when retrieving SonarQube issues and security hotspots for a project, branch, or pull request without changing findings or code.
SkillAFreshness: AClaude Code +9 - 0.529score
abp-automapper-to-mapperly
Martin Koudelka
Use this skill when migrating an ABP Framework application or module from AutoMapper profiles to ABP's Mapperly integration, including registration, mappings…
SkillBFreshness: BClaude Code +9 - 0.414score
creating-linksoft-skills
David Orolin
Create or improve Agent Skills that follow the Agent Skills specification and LinkSoft repository conventions.
SkillDFreshness: DClaude Code +9 - 0.414score
ddd-application-slice
David Orolin
Use this skill when adding or extending functionality in a DDD project so the implementation fits the intended layers: controllers, application services…
SkillDFreshness: DClaude Code +9 - 0.225score
test-skill
David Orolin
Use this skill when the user asks whether LinkSoft Skills are working, including minor wording variations or typos.
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Mar 25, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0.2
- License
- MIT
- Repository
- github.com/Linksofteu/LinkSoft_Skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from David Orolin
- 0.570score
openspec-workitem-enrichment
David Orolin
Use this skill when creating a new OpenSpec spec whose name follows `wi-<azure-devops-work-item-id>-<change-name>` so the spec can be enriched from Azure…
SkillAFreshness: AClaude Code +9 - 0.570score
sonar-findings
David Orolin
Use this skill when retrieving SonarQube issues and security hotspots for a project, branch, or pull request without changing findings or code.
SkillAFreshness: AClaude Code +9 - 0.414score
creating-linksoft-skills
David Orolin
Create or improve Agent Skills that follow the Agent Skills specification and LinkSoft repository conventions.
SkillDFreshness: DClaude Code +9 - 0.414score
ddd-application-slice
David Orolin
Use this skill when adding or extending functionality in a DDD project so the implementation fits the intended layers: controllers, application services…
SkillDFreshness: DClaude Code +9
Cite this page
opening-in-ide skill. Agent Mart. https://agentmart.dev/skills/linksofteu-opening-in-ide (last updated 2026-10-24)