Skip to content

[Feature] Interactive CLI Wizard for Zero-Config Onboarding #350

@Zepan

Description

@Zepan

🚀 The Problem

Currently, setting up picoclaw requires users to manually create or edit a configuration file (YAML/JSON) and set environment variables. For non-technical users or those deploying on a fresh embedded device (like a Raspberry Pi Zero), this friction is too high.

We want to achieve a "Zero-Config Start": if a user runs the picoclaw binary without any arguments or existing config, it should not crash or exit. Instead, it should enter an Interactive Wizard Mode.

✨ Proposed Solution

Implement a TUI (Terminal User Interface) wizard that guides the user through the essential setup steps when no configuration is detected.

The Wizard should:

  1. Auto-Detect Environment: Check for existing tools (e.g., ollama), network status, and available hardware (e.g., NPU presence).
  2. Step-by-Step Configuration:
  • Provider Setup: "Do you want to use a local model (Ollama) or a cloud API (OpenAI/Anthropic)?"
  • Token Input: Securely prompt for API keys if needed.
  • Channel Selection: "Where should this agent live? (CLI, Telegram, Discord...)"
  1. Generate Config: Save the inputs to a valid config.yaml and immediately start the agent.

🛠 Technical Implementation Details

1. Detection Logic

  • On startup, check for config.yaml in default paths (./, ~/.picoclaw/, /etc/picoclaw/).
  • If missing -> Trigger Wizard::run().

2. Wizard Flow (Draft)

Welcome to PicoClaw! 🦐
It looks like this is your first time running. Let's get you set up.

[?] Select your AI Provider:
 > Local (Ollama)
   Cloud (OpenAI)
   Cloud (Anthropic)

[If Cloud]:
 [?] Enter your API Key: ********************

[?] Select your primary Channel:
 > Terminal (Chat right here)
   Telegram Bot
   Discord Bot

[?] Configuration saved to config.yaml. Starting Agent... 🚀

✅ Acceptance Criteria

  • Running ./picoclaw without a config file launches the interactive wizard.
  • Users can select at least one Provider and one Channel via arrow keys.
  • API Keys are masked during input.
  • A valid config.yaml is generated upon completion.
  • The agent starts automatically after the wizard finishes.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions