@.kilocode/rules/rules.md
This project uses a set of "skill" guides — focused how-to documents for common implementation tasks. When your task matches one of the descriptions below, read the linked SKILL.md file before proceeding and follow its instructions precisely.
| Skill | File | Description |
|---|---|---|
| add-config | .kilocode/skills/add-config/SKILL.md |
Guide for adding new configuration settings to Wave Terminal. Use when adding a new setting to the configuration system, implementing a new config key, or adding user-customizable settings. |
| add-rpc | .kilocode/skills/add-rpc/SKILL.md |
Guide for adding new RPC calls to Wave Terminal. Use when implementing new RPC commands, adding server-client communication methods, or extending the RPC interface with new functionality. |
| add-wshcmd | .kilocode/skills/add-wshcmd/SKILL.md |
Guide for adding new wsh commands to Wave Terminal. Use when implementing new CLI commands, adding command-line functionality, or extending the wsh command interface. |
| context-menu | .kilocode/skills/context-menu/SKILL.md |
Guide for creating and displaying context menus in Wave Terminal. Use when implementing right-click menus, adding context menu items, creating submenus, or handling menu interactions with checkboxes and separators. |
| create-view | .kilocode/skills/create-view/SKILL.md |
Guide for implementing a new view type in Wave Terminal. Use when creating a new view component, implementing the ViewModel interface, registering a new view type in BlockRegistry, or adding a new content type to display within blocks. |
| electron-api | .kilocode/skills/electron-api/SKILL.md |
Guide for adding new Electron APIs to Wave Terminal. Use when implementing new frontend-to-electron communications via preload/IPC. |
| waveenv | .kilocode/skills/waveenv/SKILL.md |
Guide for creating WaveEnv narrowings in Wave Terminal. Use when writing a named subset type of WaveEnv for a component tree, documenting environmental dependencies, or enabling mock environments for preview/test server usage. |
| wps-events | .kilocode/skills/wps-events/SKILL.md |
Guide for working with Wave Terminal's WPS (Wave PubSub) event system. Use when implementing new event types, publishing events, subscribing to events, or adding asynchronous communication between components. |
- App ID & Name: Changed to
dev.commandline.waveterm.customand productName toWave Devinpackage.jsonso the dev build appears as a completely separate app to macOS (avoids Electron single-instance lock conflict and Launch Services confusion). - Build:
task package(requiresPATH="/opt/homebrew/bin:$PATH"for Go/Task). Builds asWave Dev.appinmake/mac-arm64/. - Launch: Use
launch_wave_dev.commandor run directly:These variables create isolated config and data directories for the dev build. Note:WAVETERM_HOME=~/.waveterm-dev \ WAVETERM_CONFIG_HOME=~/.waveterm-dev/config \ WAVETERM_DATA_HOME=~/.waveterm-dev/data \ make/mac-arm64/Wave\ Dev.app/Contents/MacOS/Wave\ Dev
getWaveHomeDir()only honorsWAVETERM_HOMEafterwave.lockexists, so explicitCONFIG/DATAoverrides are needed for clean installs and newly launched dev instances. - Do not modify Info.plist or re-sign the built app bundle — it breaks code signing on macOS and causes crashes.