Files

basic_demo Guide

How It Works

The main entry point is application/basic_demo/main/main.c.

After the device boots, the overall flow is:

  1. Initialize NVS and load device settings
  2. Mount FATFS at /fatfs
  3. Initialize Wi-Fi and the local HTTP configuration service
  4. Enter app_claw_start()
  5. Initialize the event router, memory, skills, and capabilities
  6. Initialize and start claw_core
  7. Start the CLI and begin handling requests and events

The current runtime depends on the following local directories:

  • /fatfs/sessions: session history
  • /fatfs/memory/MEMORY.md: long-term memory
  • /fatfs/skills: skill documents and manifest
  • /fatfs/scripts: Lua scripts
  • /fatfs/router_rules/router_rules.json: automation rules
  • /fatfs/inbox: message attachment storage

The current basic_demo integrates the following capabilities:

  • cap_im_qq
  • cap_im_tg
  • cap_files
  • cap_lua
  • cap_mcp_client
  • cap_mcp_server
  • cap_skill_mgr
  • cap_time
  • cap_llm_inspect
  • cap_web_search

Quick Start

Prerequisites

  • ESP-IDF is installed and exported
  • ESP-IDF v5.5.4 is recommended
. <your-esp-idf-path>/export.sh

Configuration

To make esp-board-manager easier to use, first install the helper package with pip install esp-bmgr-assist. You only need to do this once in a given ESP-IDF environment.

  1. Generate board support files:
cd application/basic_demo
idf.py gen-bmgr-config -c ./boards -b esp32_S3_DevKitC_1

idf.py gen-bmgr-config -c ./boards -b <board_name> generates the configuration for the specified board. Available board names can be found in the boards directory.

  1. Configure Wi-Fi, LLM, IM, search engine, and related parameters:

The key demo settings include:

  • Wi-Fi SSID / Password
  • LLM API Key / Provider / Model
  • QQ App ID / App Secret
  • Telegram Bot Token
  • Brave / Tavily Search Key
  • Timezone

Key Notes:

You can adjust compile-time default values through menuconfig:

idf.py menuconfig
  1. Build and flash:
idf.py build
idf.py flash monitor