SkillAgentSearch skills...

Starmoon

A conversational, AI device + software framework for companionship, entertainment, education, healthcare, IoT applications, and DIY robotics. Built with Python, NextJS, Arduino, ESP32, LLMs (GPT-4o), Deepgram STT and Azure TTS πŸ€–

Install / Use

/learn @StarmoonAI/Starmoon
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<span ><img style='vertical-align:middle; display:inline;' src="./logo.png" width="5%" height="5%"><span style='vertical-align: middle; line-height: normal;'>Β Starmoon - A fully open-source, compact, conversational AI device to chat with custom AI characters</span></span>

Starmoon is an affordable, compact AI-enabled device, you can take anywhere and converse with. It can understand your emotions and respond with empathy, offering supportive conversations and personalized learning assistance.

Check our Roadmap

<!-- Put on a toy, Hanging on the hand, put on the desktop near macbook --> <div align="center"> <img src="./usecases.png" alt="Starmoon-logo" width="100%" padding-bottom: 20px"/>

Discord Follow GitHub forks GitHub stars

License: GPLv3    Node.js React

</div>

Highlights πŸŽ₯

Video Demo

https://github.com/user-attachments/assets/99a45810-0322-4945-b363-716e75d1c4dd

If you can't see the video, you can watch it here

Custom AI characters

<div align="center"> <img src="./characters.png" alt="Starmoon-characters" width="100%" padding-bottom: 20px"/> </div>

Trends Dashboard

<div align="center"> <img src="./trends.png" alt="Starmoon-trends" width="100%" padding-bottom: 20px"/> </div>

Key features 🎯

  • Cost-effective: Assemble the device yourself with affordable off-the-shelf components.
  • Voice-enabled emotional intelligence: Understand and analyze insights in your emotions through your conversations in real time.
  • Open-source: Fully open-source, you can deploy Starmoon locally and self-host to ensure the privacy of your data.
  • Compact device: Only slightly larger than an Apple Watch, you can carry the device anywhere.
  • Reduced screen time: A myriad of AI companions are screen-based, and our intention is to give your eyes a rest.

Getting Started πŸš€

Prerequisites πŸ“‹

  1. Software:

    • Vscode and PlatformIO plugin: For firmware burning
    • Starmoon API key: Login to Starmoon and go to settings page to get your API key
    • Clone the repository: git clone https://github.com/StarmoonAI/Starmoon.git
  2. Hardware list (Tax and shipping rates may vary by region)

Hardware setup 🧰

  • Step 0: Follow the below Pin Configuration to set up the the ESP32 device
<!-- - Build the device yourself (alternatively, the [Starmoon DIY Dev Kit](https://www.starmoon.app/products) comes pre-assembled so you can focus on working with your own frontend + backend) -->

| Component | Seeed Studio XIAO ESP32S3 | ESP32-S3 | | -------------------------- | ----------------------------- | ------------ | | I2S Input (Microphone) | | | | SD | D0 | GPIO 14 | | WS | D1 | GPIO 1 | | SCK | D2 | GPIO 4 | | I2S Output (Speaker) | | | | WS | D5 | GPIO 5 | | BCK | D6 | GPIO 6 | | DATA | D4 | GPIO 7 | | SD (shutdown) | D3 | N/A | | Others | | | | LED Red | D7 | GPIO 9 | | LED Green | D8 | GPIO 8 | | LED Blue | D9 | GPIO 13 | | Button | D10 | GPIO 2 |

If you are using the Seeed Studio XIAO ESP32S3, then you can directly connect the lithium battery to the back of the ESP32. alt text

  • Step 1: If you use normal ESP32-S3 chip, otherwise you can skip this step:

    • please go to Config.h and uncomment the USE_NORMAL_ESP32_S3 line and comment the USE_XIAO_ESP32_DEVKIT line.

      // ----------------- Pin Definitions -----------------
      // Define which board you are using (uncomment one)
      #define USE_NORMAL_ESP32_S3
      // #define USE_XIAO_ESP32_DEVKIT
      // #define USE_XIAO_ESP32
      // #define USE_NORMAL_ESP32
      // #define USE_ESP32_S3_WHITE_CASE
      
    • Then, go to platformio.ini and uncomment the [env:esp32-s3-devkitm-1] block and comment the [env:seeed_xiao_esp32s3] line.

      ; [env:seeed_xiao_esp32s3]
      ; platform = espressif32
      ; board = seeed_xiao_esp32s3
      ; framework = arduino
      ; monitor_speed = 115200
      
      [env:esp32-s3-devkitm-1]
      platform = espressif32
      board = esp32-s3-devkitm-1
      framework = arduino
      monitor_speed = 115200
      
  • Step 2: Click PlatformIO Icon in VScode left sidebar

    • Click "Pick a folder"
    • Select the location of the firmware folder in the current project.
  • Step 3: Build the firmware

    • Click Build button in the PlatformIO toolbar or run the build task.
  • Step 4: Upload the firmware to the device

    • Connect your ESP32-S3 to your computer using usb.
    • Click the Upload button to run the upload task, or Upload and Monitor button to run the upload task and monitor the device.
  • Step 5: Hardware usage

    • Turn on the device by main button and wait for the LED to turn on.

    • Use your phone/tablet/pc to connect "Starmoon-xxx" WiFi and follow the instructions to set up internet connection (only support 2.4Ghz WiFi).

      • Connect the wifi by your credentials
      • Use your Starmoon API key and email to set up the device
      <!-- - The LED indicates the current status: - Off: Not connected - Solid On: Connected and listening on microphone - Pulsing: Streaming audio output (receiving from server) -->

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details

Related Skills

View on GitHub
GitHub Stars542
CategoryEducation
Updated6d ago
Forks62

Languages

TypeScript

Security Score

100/100

Audited on Mar 18, 2026

No findings