agentsclimarketplace

Wave terminal

Skill marktantongco/opencodelinux/skills/wave-terminal

Configure Wave Terminal with advanced memory optimization, performance tweaks, startup hacks, and management. Covers settings.json tuning, Electron/Chromium flags, durable session config, themes, and widgets.From its SKILL.md

Install
npx -y skills add marktantongco/opencodelinux --skill wave-terminal

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.3 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it

Wave Terminal: Configuration & Memory Optimization

Overview

Wave Terminal (~/.config/waveterm/) is an open-source, Electron-based terminal. Its config uses flat namespace:key JSON. Memory optimization focuses on reducing Chromium's footprint: GPU acceleration, tab cache, scrollback buffer, and background processes.

Config File Location

  • Main config: ~/.config/waveterm/settings.json
  • Themes: ~/.config/waveterm/termthemes/
  • Widgets: ~/.config/waveterm/widgets/
  • Backgrounds: ~/.config/waveterm/presets/

Memory Optimization Settings

Heavy Hitters (Biggest RAM Impact)

KeyRecommendedDefaultWhy
window:disablehardwareaccelerationtruefalseDisables Chromium GPU process — saves 200-500MB on integrated GPUs
window:maxtabcachesize3-510Less cached tab state in RAM
term:scrollback3000-500010000Smaller scrollback buffer saves ~50MB per terminal
window:reducedmotiontruefalseDisables CSS animations — reduces render thread load
editor:minimapenabledfalsetrueDisables Monaco editor minimap canvas

Medium Impact

KeyRecommendedDefaultWhy
window:transparentfalsefalseTransparency requires GPU composite layers
window:blurfalsefalseBlur effects use extra GPU passes
telemetry:enabledfalsetrueStops background HTTP requests
autoupdate:intervalms72000003600000Halves background update checks
app:showoverlayblocknumsfalsetrueReduces overlay rendering
term:disablewebglfalsefalseKeep enabled — xterm.js uses WebGL for fast rendering

Low Impact / Quality of Life

KeyRecommendedWhy
app:hideaibuttonfalseShows AI button in UI (set true to hide for memory)
app:confirmquitfalseNo quit confirmation dialog
app:tabbar"top"Horizontal tab bar
term:copyonselecttrueAuto-copy on selection
term:allowbracketedpastetrueBetter paste handling
term:fontfamily"JetBrains Mono"Efficient rendering font
window:tilegapsize2Tighter block layout

AI Configuration

Wave Terminal has a built-in AI panel with configurable modes.

File Structure

  • AI modes: ~/.config/waveterm/waveai/*.json — each file is an AI mode (filename = mode ID)
  • Default mode: Set via waveai:defaultmode in settings.json
  • Visibility: Set app:hideaibutton: false to show AI panel in UI

AI Mode Config Format (AIModeConfigType)

{
  "display:name": "My Mode",
  "display:order": 1,
  "display:description": "What this mode does",
  "display:icon": "sparkles | zap | dollar-sign | brain | globe",
  "ai:provider": "openrouter | openai | google | anthropic | azure | wave | custom",
  "ai:apitype": "openai-chat | openai-responses | google-gemini",
  "ai:model": "model-name-here",
  "ai:thinkinglevel": "low | medium | high",
  "ai:verbosity": "low | medium | high",
  "ai:endpoint": "https://api.example.com/v1",
  "ai:apitoken": "sk-...",
  "ai:capabilities": ["tools", "images", "pdfs"],
  "ai:switchcompat": ["other-mode-id-1", "other-mode-id-2"]
}

Supported Providers

Providerai:providerai:apitypeEndpoint
OpenRouteropenrouteropenai-chathttps://openrouter.ai/api/v1
OpenAIopenaiopenai-responsesauto
Google Geminigooglegoogle-geminiauto
Anthropiccustomopenai-chatdepends on proxy
Wave Cloudwavebuilt-in

Secret Storage

  • Put API key directly in ai:apitoken field, OR
  • Use Wave's secret manager: wsh setsecret <name> then reference with ai:apitokensecretname

Switching Modes

  • ai:switchcompat lists compatible mode IDs the user can switch to mid-conversation
  • Set waveai:defaultmode in settings.json to your preferred default mode ID

Startup Performance Tweaks

Electron Flags (via CLI or desktop entry)

# Disable Chromium sandbox (for container/CI environments)
wave --no-sandbox

# Disable GPU shader disk cache
wave --disable-gpu-shader-disk-cache

# Disable Chromium features that consume memory
wave --disable-features=TranslateUI,ChromeWhatsNewUI

Environment Variables

# Reduce Chromium shared memory
export ELECTRON_EXTRA_LAUNCH_ARGS="--disable-gpu-shader-disk-cache --max_old_space_size=4096"

Durable Sessions (Memory-Safe Config)

Durable sessions persist terminal state across restarts. For memory-constrained setups:

{
  "term:durable": false
}

Set to false to prevent session state accumulation.

Management Commands

# Open config in built-in editor
wsh editconfig

# List all settings
wsh getconfig

# Set a specific value
wsh setconfig "term:fontsize" 14

# Open Wave config directory
wsh opendir

Memory Monitoring

# Check Wave process memory
ps aux | grep wave | grep -v grep

# Check resident memory
ps -eo pid,comm,rss | grep wave

# Detailed Electron memory
cat /proc/$(pgrep -f wave | head -1)/status | grep -E "VmRSS|VmSize"

Reset to Defaults

# Remove user config to reset
rm ~/.config/waveterm/settings.json
# Or selectively reset a key
wsh setconfig "window:disablehardwareacceleration" false

Related: sys-tune (System Tuning Manager)

sys-tune is the companion CLI for system-level tuning, optimization, and memory management.

# Quick integration with Wave
sys-tune status                  # Shows Wave memory alongside system health
sys-tune doctor                  # Diagnoses system (incl. Wave GPU settings)
sys-tune cache flush             # Clears Wave caches + system caches
sys-tune profile apply desktop   # Balanced kernel params for desktop use
sys-tune browser optimize all    # Apply memory flags to all browsers

Key Commands

CommandWhat it does for Wave
sys-tune statusShows Wave RSS, kernel params, memory health
sys-tune autoAuto-selects profile based on available RAM
sys-tune cache flushClears Wave + npm + pip + system caches
sys-tune doctorChecks Wave GPU setting, swappiness, OOM config

Profiles

Profileswappinesscache_pressureUse Case
desktop30100Balanced — good with Wave open
maxperf1050No Wave, need max speed
memory60200Wave + many apps, low RAM
server10200No GUI, remote machine

Installation

# sys-tune lives at ~/.local/bin/sys-tune
# Aliases: tune, tune-st, tune-dr, tune-auto, tune-mon, ...
# Bash completion included in ~/.bashrc

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,852. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.