用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/JetBrains/intellij-community --skill eel命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | eel |
| description | Use IntelliJ EEL APIs for process execution, paths, WSL, or Docker. |
EEL is a unified API that makes IntelliJ code work transparently across local, WSL, and Docker environments. It replaces scattered WSL checks, java.io.File, System.getenv, ProcessBuilder, and SystemInfo with a single abstraction.
Full documentation: community/platform/eel/docs/ (start with README.md)
nio.Path, not java.io.File. nio.Path integrates with EEL under the hood — NIO file operations are transparently routed through EEL file system providers, so Files.readString(path), Files.walk(path), etc. work correctly in remote environments (WSL, Docker) without any extra code. java.io.File has JBR compatibility patches but nio.Path is the proper API.EelApi.exec for process execution, not ProcessBuilder. This ensures processes run in the correct environment.EelPlatform for OS detection, not SystemInfo. SystemInfo reflects the IDE host machine, not the target environment.localEel is a singleton that always represents the IDE host machine (where the IDE process runs). Use it only when you specifically need the local environment. For project-relative work, get the descriptor from the project or path instead.// From a project (most common)
val descriptor = project.getEelDescriptor()
// From a path
val descriptor = Path.of("\\\\wsl.localhost\\Ubuntu\\home\\user").getEelDescriptor()
// Local environment singleton
val localApi: LocalEelApi = localEel
val eelApi = descriptor.toEelApi()
val process = eelApi.exec.spawnProcess("git")
.args("--version")
.eelIt()
val exitCode = process.exitCode.await()
val output = process.stdout.readAllBytes().toString(Charsets.UTF_8)
// NIO Path → EelPath
val eelPath = nioPath.asEelPath()
// EelPath → NIO Path
val nioPath = eelPath.asNioPath()
// Use asEelPath() for environment-aware conversion (instead of EelPath.parse())
val eelPath = descriptor.asEelPath(project.basePath)
val eelApi = descriptor.toEelApi()
when {
eelApi.platform.isPosix -> // Linux, macOS, FreeBSD
eelApi.platform.isWindows -> // Windows
eelApi.platform.isMac -> // macOS specifically
}
\\wsl$\Ubuntu and \\wsl.localhost\Ubuntu).interface EelApi {
val exec: EelExecApi // Process execution
val tunnels: EelTunnelsApi // Network operations
val archive: EelArchiveApi // Archive/tar operations
val platform: EelPlatformApi // Platform detection
val userInfo: EelUserInfoApi // User information
}
LocalEelDescriptor; use EEL API uniformlytoEelApi() over toEelApiBlocking() — use the suspending version to avoid blocking threadsasEelPath() helpers — avoid manual WSL path conversionEelMachine when managing shared resources across descriptorscommunity/platform/eel/docs/README.mdcommunity/platform/eel/docs/EelApi_Tutorial.mdcommunity/platform/eel/docs/EelApi_NIO_Integration.mdcommunity/platform/eel/docs/EelApi_Path_Conversion.mdcommunity/platform/eel/docs/EelApi_Real_World_Examples.mdConvert Product DSL module sets into bundled wrapper plugins.
Convert Product DSL module sets into bundled wrapper plugins.
Migrate IntelliJ JPS module tests to Bazel and debug Bazel-only test/runtime/plugin dependency failures.