affaan-m/ECC · error · Error

${capability.reason}: ${capability.action}

Error message

${capability.reason}: ${capability.action}

What it means

Error "${capability.reason}: ${capability.action}" thrown in affaan-m/ECC.

Source

Thrown at skills/terminal-opener/scripts/open-terminal.js:289

    throw new Error('Terminal process did not start correctly.');
  }
  if (typeof child.once === 'function') {
    child.once('error', error => {
      onDetachedError(
        new Error(`Unable to start ${command}: ${error.message}`, { cause: error })
      );
    });
  }
  child.unref();
}

function launch(plan, dependencies = {}) {
  const spawnSyncImpl = dependencies.spawnSync || childProcess.spawnSync;
  const spawnImpl = dependencies.spawn || childProcess.spawn;
  const onDetachedError = dependencies.onDetachedError || reportDetachedError;
  const capability = detectTerminalCapability(plan, spawnSyncImpl);
  if (!capability.available) {
    throw new Error(`${capability.reason}: ${capability.action}`);
  }

  if (plan.launchMode === 'recover') {
    launchDetached(plan.command, plan.args, plan.cwd, spawnImpl, onDetachedError);
    return { strategy: 'detached-recover', capability };
  }

  const muxResult = spawnSyncImpl(plan.command, plan.args, {
    cwd: plan.cwd,
    encoding: 'utf8',
    killSignal: SPAWN_KILL_SIGNAL,
    shell: false,
    timeout: SYNC_TIMEOUT_MS,
  });
  if (!muxResult.error && muxResult.status === 0) {
    return { strategy: 'mux', capability };
  }

View on GitHub (pinned to 01e15490f0)

Solutions

  1. Install the terminal emulator named in the error (e.g. wezterm) or choose a supported adapter that is already installed.
  2. Run with --dry-run first to see which capability check fails, then install the missing mux/terminal and retry.
  3. If running headless (no GUI session), use --launch recover/detached mode or open the terminal on a machine with a desktop session.

Example fix

$ node open-terminal.js --terminal wezterm --dry-run -- echo hi
# error: wezterm not found on PATH: install wezterm or pick another adapter
$ brew install wezterm   # then retry without --dry-run

When it happens

Trigger: Thrown at skills/terminal-opener/scripts/open-terminal.js:289 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of affaan-m/ECC@01e15490f0 (2026-08-13). Data as JSON: /api/errors/d22388ab673f4a24. Report an issue: GitHub.