Skip to content

[Feature]: Integrated interactive configuration tool (inspired by wavectl) #2756

@caoergou

Description

@caoergou

Feature description

Summary

Introduce an interactive configuration tool for WaveTerm, inspired by the "wavectl" project, to make configuring AI models, SSH connections, themes, and widgets simple and reliable without manual JSON editing.

Problem

Today, many WaveTerm settings (AI providers/keys, SSH profiles, appearance, widgets) require editing JSON or navigating disparate UI surfaces. This is error‑prone, hard to discover, and increases support load due to misconfigurations.

Proposal

Provide a unified configuration experience:

  • A guided, interactive interface (TUI/GUI) to view and edit all settings in one place.
  • Version‑aware schemas so upgrades migrate configs safely.
  • Explicit validation and test flows (e.g., "Test SSH", "Validate AI key").
  • Export/import profiles for portability and team sharing.

Scope

  • AI Settings: choose provider/model, store API keys securely, per‑workspace overrides.
  • SSH Connections: key management, auth methods, agent forwarding toggle, quick tests.
  • Appearance: theme selection (light/dark), custom accents, font/opacity, per‑workspace defaults.
  • Widgets: enable/arrange terminal widgets with previews.

User Experience

  • One entry point from Settings ("Configuration Manager") or a CLI command.
  • Clear status and validation feedback; undo/rollback on failed saves.
  • Safe migration assistant when config version changes.

Benefits

  • Lower setup friction and fewer support tickets.
  • Safer upgrades via schema migration.
  • Better onboarding with discoverable, validated settings.

Prior Art

The open‑source "wavectl" tool provides a lightweight TUI that manages AI models, SSH, appearance, and widgets with version awareness and language auto‑detection, demonstrating the viability of an integrated configuration manager for WaveTerm.

Implementation Suggestion

Architecture Options

  1. Built‑in panel: Implement a first‑party Configuration Manager inside WaveTerm (Electron) using your existing settings APIs.
  2. Bundled CLI: Ship a companion CLI (e.g., wavectl) that reads/writes the WaveTerm config with strict schema validation.
  3. Hybrid: GUI for common paths + CLI/TUI for advanced/automation.

Key Components

  • Central schema with versioning (semver + migrations).
  • Validation layer (per setting, cross‑setting constraints).
  • Secrets handling (OS keychain or encrypted store) for API keys.
  • Test runners: SSH handshake, AI key check, widget preview.
  • Import/export of profiles and workspace‑level overrides.

Internationalization

  • Auto detect system language with override env/setting; provide minimal i18n strings initially (EN/zh), expand later.

Persistence & Safety

  • Transactional writes with backup snapshots; rollback on failure.
  • Telemetry‑aware: fully functional with telemetry disabled.

UX Details

  • Entry points in Settings and Command Palette.
  • "Dry‑run" migration preview before applying changes.
  • Keyboard‑friendly flows; accessible controls and clear error states.

Anything else?

References

Notes

  • The proposal focuses on a unified, validated configuration path covering AI, SSH, appearance, and widgets, with version‑aware schemas and language support, aligning closely with the demonstrated capabilities in wavectl.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttriageNeeds triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions