https://github.com/StarmoonAI/Starmoon Skip to content Navigation Menu Toggle navigation Sign in * Product + Actions Automate any workflow + Security Find and fix vulnerabilities + Codespaces Instant dev environments + GitHub Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions By size + Enterprise + Teams + Startups By industry + Healthcare + Financial services + Manufacturing By use case + CI/CD & Automation + DevOps + DevSecOps * Resources Topics + AI + DevOps + Security + Software Development + View all Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} StarmoonAI / Starmoon Public * Notifications You must be signed in to change notification settings * Fork 6 * Star 161 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 www.starmoon.app License GPL-3.0 license 161 stars 6 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights StarmoonAI/Starmoon This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 259 Commits .github/ .github/ ISSUE_TEMPLATE ISSUE_TEMPLATE backend backend firmware firmware frontend frontend supabase supabase .env.example .env.example .gitattributes .gitattributes .gitignore .gitignore LICENSE LICENSE README.md README.md case_model.stl case_model.stl docker-compose.yml docker-compose.yml logo.png logo.png pins.png pins.png roadmap.md roadmap.md usecases.png usecases.png View all files Repository files navigation * README * GPL-3.0 license [lo] Starmoon - An affordable, empathic, and conversational AI companion 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 Starmoon-logo Discord Follow License: GPLv3 Demo Highlights Demo.mp4 If you can't see the video, you can watch it here 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. API keys and services: + Docker + Supabase CLI: Follow the instructions here to install if you haven't installed + Vscode and PlatformIO plugin: For firmware burning + OpenAI API key: For AI language models + Deepgram API key: For speech-to-text + Azure speech API keys: For text-to-speech + Huggingface API key: For emotion intelligence 2. Hardware list (Tax and shipping rates may vary by region) + Seeed Studio Xiao ESP32S3 + Microphone (INMP441) + Amplifier (MAX98357A) + Speaker (3525) + LED light + Button + PCB prototype board + 3D printed case + Tools: 28AWG wires + soldering toolset + flux Software setup [?] * Step 0: Clone the repository: git clone https://github.com/StarmoonAI/Starmoon.git && cd starmoon * Step 1: Set up Supabase: supabase start supabase db reset * Step 2: Copy the .env.example files cp .env.example .env * Step 3: Update tokens in the .env file + For local set up, you only need to update OPENAI_API_KEY, MS_SPEECH_ENDPOINTY, SPEECH_KEY, SPEECH_REGION, DG_API_KEY, HF_ACCESS_TOKEN * Step 4: Launch the project + If you have a Mac, go to Docker Desktop > Settings > General and check that the "file sharing implementation" is set to VirtioFS. docker compose pull docker compose up If you are a developer, you can run the project in development mode with the following command: docker compose -f docker-compose.yml up --build * Step 5: Login to the app + You can now sign in to the app with admin@starmoon.app & admin. You can access the Starmoon webapp at http:// localhost:3000/login and sign up an account + You can access Starmoon backend API at http://localhost:8000/ docs + You can access Supabase dashboard at http://localhost:54323 + You can access Celery Flower background task dashboard at http://localhost:5555 (admin & admin) Hardware setup * Step 0 (Optional): Build the device yourself (alternatively, the Starmoon DIY Dev Kit comes pre-assembled so you can focus on working with your own frontend + backend) + Follow the instructions here in Pin Configuration section for more details on assembly * Step 1: Click PlatformIO Icon in VScode left sidebar + Click "Pick a folder" + Select the location of the firmware folder in the current project. * Step 2: Update and WebSocket server details in src/main.cpp + Find your WiFi ip adress (websocket_server_host) by command ipconfig (under Default Gateway) in Windows or ifconfig (under inet xxx.x.x.x netmask 0xff000000) in Linux/MacOS, or you can also follow the instructions here // WebSocket setup const char *websocket_server_host = ""; // Wifi settings -> Your Wifi I.P. const uint16_t websocket_server_port = 8000; const char *websocket_server_path = "/starmoon"; const char *auth_token = ""; // generate your STARMOON_API_KEY in your starmoon account settings page * 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 + Power the device -> Use your phone/tablet/pc to connect "Starmoon device" WiFi and follow the instructions to set up internet connection (only support 2.4Ghz WiFi). + Once the software and firmware are set up, you can push the button to power on the ESP32 device and start talking to the device. Updating Starmoon App * Step 1: Pull the latest changes git pull * Step 2: Update the migration supabase migration up License This project is licensed under the GPL-3.0 License - see the LICENSE file for details About 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 www.starmoon.app Topics iot robotics esp32 tts gemini gpt stt voice-assistant llm Resources Readme License GPL-3.0 license Activity Custom properties Stars 161 stars Watchers 4 watching Forks 6 forks Report repository Releases No releases published Packages 0 No packages published Contributors 3 * @junruxiong junruxiong Joey Xiong * @akdeb akdeb Akashdeep Deb * @eltociear eltociear Ikko Eltociear Ashimine Languages * TypeScript 76.1% * Python 15.3% * PLpgSQL 5.5% * C++ 1.8% * Dockerfile 0.8% * CSS 0.4% * JavaScript 0.1% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.