{"id":16094180,"url":"https://github.com/starmoonai/starmoon","last_synced_at":"2025-10-23T07:30:50.841Z","repository":{"id":252848370,"uuid":"841646482","full_name":"StarmoonAI/Starmoon","owner":"StarmoonAI","description":"An open source voice-enabled, compact, empathic AI hardware + software 🤖 framework for companionship, entertainment, education, pediatric care, IoT robotics applications, AI-enhanced robotics application services, research, and DIY robotics kit development using Python, NextJs, Arduino, ESP32, LLMs (GPT), STT, TTS, Emotion Analysis, AI agent","archived":false,"fork":false,"pushed_at":"2024-10-29T12:06:08.000Z","size":226548,"stargazers_count":371,"open_issues_count":19,"forks_count":42,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-29T14:35:19.058Z","etag":null,"topics":["esp32","gemini","gpt","iot","llm","robotics","stt","tts","voice-assistant"],"latest_commit_sha":null,"homepage":"https://www.starmoon.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StarmoonAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-12T20:32:24.000Z","updated_at":"2024-10-29T12:06:12.000Z","dependencies_parsed_at":"2024-11-06T07:31:42.318Z","dependency_job_id":null,"html_url":"https://github.com/StarmoonAI/Starmoon","commit_stats":null,"previous_names":["starmoonai/starmoon"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StarmoonAI%2FStarmoon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StarmoonAI%2FStarmoon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StarmoonAI%2FStarmoon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StarmoonAI%2FStarmoon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StarmoonAI","download_url":"https://codeload.github.com/StarmoonAI/Starmoon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237793869,"owners_count":19367421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","gemini","gpt","iot","llm","robotics","stt","tts","voice-assistant"],"created_at":"2024-10-09T17:01:45.281Z","updated_at":"2025-10-23T07:30:50.836Z","avatar_url":"https://github.com/StarmoonAI.png","language":"TypeScript","funding_links":[],"categories":["Chatbots"],"sub_categories":[],"readme":"# \u003cspan \u003e\u003cimg style='vertical-align:middle; display:inline;' src=\"./logo.png\"  width=\"5%\" height=\"5%\"\u003e\u003cspan style='vertical-align: middle; line-height: normal;'\u003e\u0026nbsp;Starmoon - A fully open-source, compact, conversational AI device to chat with custom AI characters\u003c/span\u003e\u003c/span\u003e\n\nStarmoon 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.\n\n[Check our Roadmap](roadmap.md)\n\n\u003c!-- Put on a toy, Hanging on the hand, put on the desktop near macbook --\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./usecases.png\" alt=\"Starmoon-logo\" width=\"100%\" padding-bottom: 20px\"/\u003e\n\n[![Discord Follow](https://dcbadge.vercel.app/api/server/KJWxDPBRUj?style=flat)](https://discord.gg/KJWxDPBRUj)\n![GitHub forks](https://img.shields.io/github/forks/StarmoonAI/Starmoon.svg?style=social\u0026label=Fork)\n![GitHub stars](https://img.shields.io/github/stars/StarmoonAI/Starmoon.svg?style=social\u0026label=Star)\n\n[![License: GPLv3](https://img.shields.io/badge/license-GPLv3-blue)](https://www.gnu.org/licenses/gpl-3.0.en.html)\u0026ensp;\u0026ensp;\u0026ensp;\n![Node.js](https://img.shields.io/badge/Node.js-14.17.0-brightgreen.svg)\n![React](https://img.shields.io/badge/React-17.0.2-blue.svg)\n\n\u003c/div\u003e\n\n## Highlights 🎥\n\n### Video Demo\n\nhttps://github.com/user-attachments/assets/99a45810-0322-4945-b363-716e75d1c4dd\n\nIf you can't see the video, you can watch it [here](https://youtu.be/sL6wH5F_ERE)\n\n### Custom AI characters\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./characters.png\" alt=\"Starmoon-characters\" width=\"100%\" padding-bottom: 20px\"/\u003e\n\u003c/div\u003e\n\n### Trends Dashboard\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./trends.png\" alt=\"Starmoon-trends\" width=\"100%\" padding-bottom: 20px\"/\u003e\n\u003c/div\u003e\n\n## Key features 🎯\n\n-   **Cost-effective**: Assemble the device yourself with affordable off-the-shelf components.\n-   **Voice-enabled emotional intelligence**: Understand and analyze insights in your emotions through your conversations in real time.\n-   **Open-source**: Fully open-source, you can deploy Starmoon locally and self-host to ensure the privacy of your data.\n-   **Compact device**: Only slightly larger than an Apple Watch, you can carry the device anywhere.\n-   **Reduced screen time**: A myriad of AI companions are screen-based, and our intention is to give your eyes a rest.\n\n## Getting Started 🚀\n\n### Prerequisites 📋\n\n1. Software:\n\n    - Vscode and [PlatformIO](https://platformio.org/install/ide?install=vscode) plugin: For firmware burning\n    - Starmoon API key: Login to [Starmoon](https://www.starmoon.app/login) and go to settings page to get your API key\n    - Clone the repository: `git clone https://github.com/StarmoonAI/Starmoon.git`\n\n2. Hardware list (Tax and shipping rates may vary by region)\n    - [Seeed Studio Xiao ESP32S3](https://www.aliexpress.us/item/1005007341749305.html) (or any other ESP32-S3 board)\n    - [Microphone (INMP441)](https://www.aliexpress.us/item/3256806674485209.html)\n    - [Amplifier (MAX98357A)](https://www.aliexpress.us/item/3256806524695775.html)\n    - [Speaker (3525)](https://www.aliexpress.us/item/3256805515112434.html) (or any compatible microspeaker)\n    - [LED light](https://www.aliexpress.us/item/3256805384408000.html) (RGB LED recommended)\n    - [Button](https://www.aliexpress.us/item/3256803815119722.html)\n    - [PCB prototype board](https://www.aliexpress.com/item/1005005038301414.html) or [custom PCB](https://www.aliexpress.com/item/1005005038301414.html)\n    - [3D printed case](case_model.stl)\n    - Tools: [28AWG wires](https://www.aliexpress.us/item/3256801511896966.html) + [soldering toolset](https://www.aliexpress.com/item/1005007010143403.html) + [flux](https://www.aliexpress.com/item/1005007003481283.html)\n\n### Hardware setup 🧰\n\n-   **Step 0**: Follow the below Pin Configuration to set up the the ESP32 device\n\u003c!-- -   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) --\u003e\n\n| **Component**              | **Seeed Studio XIAO ESP32S3** | **ESP32-S3** |\n| -------------------------- | ----------------------------- | ------------ |\n| **I2S Input (Microphone)** |                               |              |\n| SD                         | D0                            | GPIO 14      |\n| WS                         | D1                            | GPIO 1       |\n| SCK                        | D2                            | GPIO 4       |\n| **I2S Output (Speaker)**   |                               |              |\n| WS                         | D5                            | GPIO 5       |\n| BCK                        | D6                            | GPIO 6       |\n| DATA                       | D4                            | GPIO 7       |\n| SD (shutdown)              | D3                            | N/A          |\n| **Others**                 |                               |              |\n| LED Red                    | D7                            | GPIO 9       |\n| LED Green                  | D8                            | GPIO 8       |\n| LED Blue                   | D9                            | GPIO 13      |\n| Button                     | D10                           | GPIO 2       |\n\nIf you are using the Seeed Studio XIAO ESP32S3, then you can directly connect the lithium battery to the back of the ESP32.\n![alt text](battery.png)\n\n-   **Step 1**: If you use normal ESP32-S3 chip, otherwise you can skip this step:\n\n    -   please go to [Config.h](firmware/src/Config.h) and uncomment the `USE_NORMAL_ESP32_S3` line and comment the `USE_XIAO_ESP32_DEVKIT` line.\n\n        ```cpp\n        // ----------------- Pin Definitions -----------------\n        // Define which board you are using (uncomment one)\n        #define USE_NORMAL_ESP32_S3\n        // #define USE_XIAO_ESP32_DEVKIT\n        // #define USE_XIAO_ESP32\n        // #define USE_NORMAL_ESP32\n        // #define USE_ESP32_S3_WHITE_CASE\n        ```\n\n    -   Then, go to [platformio.ini](firmware/platformio.ini) and uncomment the `[env:esp32-s3-devkitm-1]` block and comment the `[env:seeed_xiao_esp32s3]` line.\n\n        ```cpp\n        ; [env:seeed_xiao_esp32s3]\n        ; platform = espressif32\n        ; board = seeed_xiao_esp32s3\n        ; framework = arduino\n        ; monitor_speed = 115200\n\n        [env:esp32-s3-devkitm-1]\n        platform = espressif32\n        board = esp32-s3-devkitm-1\n        framework = arduino\n        monitor_speed = 115200\n        ```\n\n-   **Step 2**: Click PlatformIO Icon in VScode left sidebar\n\n    -   Click \"Pick a folder\"\n    -   Select the location of the `firmware` folder in the current project.\n\n-   **Step 3**: Build the firmware\n\n    -   Click `Build` button in the PlatformIO toolbar or run the build task.\n\n-   **Step 4**: Upload the firmware to the device\n    -   Connect your ESP32-S3 to your computer using usb.\n    -   Click the `Upload` button to run the upload task, or `Upload and Monitor` button to run the upload task and monitor the device.\n-   **Step 5**: Hardware usage\n\n    -   Turn on the device by main button and wait for the LED to turn on.\n    -   Use your phone/tablet/pc to connect \"Starmoon-xxx\" WiFi and follow the instructions to set up internet connection (only support 2.4Ghz WiFi).\n\n        -   Connect the wifi by your credentials\n        -   Use your Starmoon API key and email to set up the device\n\n        \u003c!-- -   The LED indicates the current status:\n            -   Off: Not connected\n            -   Solid On: Connected and listening on microphone\n            -   Pulsing: Streaming audio output (receiving from server) --\u003e\n\n## License\n\nThis project is licensed under the GPL-3.0 License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarmoonai%2Fstarmoon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstarmoonai%2Fstarmoon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstarmoonai%2Fstarmoon/lists"}