{"data":{"slug":"orangekame3-mirrormate","name":"mirrormate","tagline":"Self-hosted personalized AI in a mirror","github_url":"https://github.com/orangekame3/mirrormate","owner":"orangekame3","repo":"mirrormate","owner_avatar_url":"https://avatars.githubusercontent.com/u/49517624?v=4","primary_language":"TypeScript","stars":489,"forks":29,"topics":["ai","llm-inference","local-llm","magicmirror","ollama","raspberry-pi","self-hosted","smart-home","smart-mirror","voice-assistant"],"archived":false,"github_pushed_at":"2026-01-07T06:01:22+00:00","maintenance_label":"Slowing","stars_delta_30d":5,"url":"https://www.graphcanon.com/tools/orangekame3-mirrormate","markdown_url":"https://www.graphcanon.com/tools/orangekame3-mirrormate.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/orangekame3-mirrormate","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=orangekame3-mirrormate","description":"Self-hosted personalized AI in a mirror.","homepage_url":"https://orangekame3.dev/mirrormate/","license":"MIT","open_issues":4,"watchers":2,"ai_summary":"This TypeScript project develops a self-hosted smart mirror that provides personalized AI interaction for home environments. The system can integrate local large language models and function as a voice assistant.","readme_excerpt":"## Quick Start\n\n**With OpenAI API (easiest):**\n\n```bash\ndocker run -p 3000:3000 \\\n  -e OPENAI_API_KEY=sk-xxx \\\n  -e LLM_PROVIDER=openai \\\n  -e TTS_PROVIDER=openai \\\n  ghcr.io/orangekame3/mirrormate:latest\n```\n\nOpen http://localhost:3000 in Chrome.\n\n**Fully local (Ollama + VOICEVOX):**\n\n```bash","github_created_at":"2025-12-29T15:09:54+00:00","created_at":"2026-07-11T11:45:46.802764+00:00","updated_at":"2026-09-20T06:35:50.406193+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"inference-serving","name":"Inference & Serving","url":"https://www.graphcanon.com/categories/inference-serving","markdown_url":"https://www.graphcanon.com/categories/inference-serving.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/inference-serving"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"}],"tags":[{"slug":"ai","name":"ai"},{"slug":"llm-inference","name":"llm-inference"},{"slug":"local-llm","name":"local-llm"},{"slug":"magicmirror","name":"magicmirror"},{"slug":"ollama","name":"ollama"},{"slug":"raspberry-pi","name":"raspberry-pi"},{"slug":"self-hosted","name":"self-hosted"},{"slug":"smart-home","name":"smart-home"}],"trust":{"provenance":{"is_fork":false,"github_id":1124759447,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-20T03:45:10.713Z","maintenance":{"label":"Slowing","score":36,"methodology":"github_public_v1","releases_90d":0,"days_since_push":255,"last_release_at":"2026-01-06T16:57:45Z","stars_delta_30d":5,"open_issues_delta_30d":1},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T11:45:47.989Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-09-20T03:45:11.781Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-09-20T03:45:11.781Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-09-20T03:45:11.781Z","managed_saas":false},"has_cli":{"value":true,"source":"package.json:bin|scripts","observed_at":"2026-09-20T03:45:11.781Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-09-20T03:45:11.781Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-09-20T03:45:11.781Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-09-20T03:45:11.781Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["For DIY enthusiasts who want to integrate local LLMs into a smart mirror setup powered by Raspberry Pi","When seeking a customizable voice assistant with personalization features in a home environment"],"when_not_to_use":["If prioritizing cloud-based AI services and lack proficiency in locally hosting AI infrastructure","For users requiring a solution that does not involve hardware integration or self-hosting capabilities"],"source":"enrich:decision_facts","observed_at":"2026-07-16T20:41:49.298Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"MIRRORMATE: TypeScript-based self-hosted AI mirror for personalized home interactions"}]}}