by HappyFox001
A voice-first desktop AI companion with memory, emotion, tools, and plugins.
# Add to your Claude Code skills
git clone https://github.com/HappyFox001/NoemaNoema is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by HappyFox001. A voice-first desktop AI companion with memory, emotion, tools, and plugins. It has 102 GitHub stars.
Noema's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/HappyFox001/Noema" and add it to your Claude Code skills directory (see the Installation section above).
Noema is primarily written in TypeScript. It is open-source under HappyFox001 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh Noema against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Noema is a small experiment toward something like JARVIS: a desktop companion that can speak with personality, remember context, understand tasks, and act through tools.
The project is built around a three-layer runtime split:
# Install workspace dependencies.
pnpm install
# Build the SDK and desktop app.
pnpm build
# Launch the desktop app.
pnpm start
Noema has four independent model slots:
| Slot | Purpose | Default provider/model |
|---|---|---|
| Dialogue | Low-latency conversation | OpenAI-compatible chat endpoint |
| Task | Tool use, planning, and long-running work | OpenAI-compatible chat endpoint |
| TTS | Voice output | Fish Audio s2-pro |
| ASR | Voice input | Qwen qwen3-asr-flash-realtime |
Configure these in Settings > System after launching the app, or seed the
same values with a .env file in the repository root or apps/desktop/.env.
When using the default Fish Audio + Qwen voice setup through a proxy, a
Japan-based network node is recommended for lower latency.
# Dialogue model, OpenAI-compatible
LLM_1_API_KEY=your_dialogue_api_key
LLM_1_MODEL=deepseek-chat
LLM_1_BASE_URL=https://api.deepseek.com
# Task model, OpenAI-compatible
TASK_1_API_KEY=your_task_api_key
TASK_1_MODEL=gemini-3.1-pro-preview
TASK_1_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai
# Text-to-speech
TTS_1_PROVIDER=fish
TTS_1_API_KEY=your_tts_api_key
TTS_1_MODEL=s2-pro
TTS_1_VOICE_ID=your_voice_id
# Speech-to-text
ASR_1_PROVIDER=qwen
ASR_1_API_KEY=your_asr_api_key
ASR_1_MODEL=qwen3-asr-flash-realtime
ASR_1_LANGUAGE=zh
# Optional
PROXY_URL=http://127.0.0.1:7890
The numbered suffix lets you save multiple profiles, for example
LLM_2_API_KEY, TASK_2_MODEL, or TTS_2_VOICE_ID. Select the active profile
with LLM_ACTIVE, TASK_ACTIVE, TTS_ACTIVE, and ASR_ACTIVE.
Voice provider references:
qwen3-asr-flash-realtime.Noema loads runtime plugins from plugins/*/plugin.json. Plugins can register
tools, extend prompts, inject task context, transform text, select expression
assets, and expose admin actions.
| Plugin | Purpose |
|---|---|
base-tools |
File reads/writes, search, patching, shell commands, interactive command sessions |
browser-use |
Electron browser automation, DOM/AX snapshots, screenshots, file upload, page actions |
computer-use |
Native desktop observation and mouse/keyboard control |
skills-manager |
Local skill discovery, reading, and management |
mcp-manager |
MCP server management and remote tool dispatch |
sticker-expression |
Emotion-based sticker selection for replies |
fish-s2-emotion |
Fish Audio S2 voice cue prompt additions and TTS text filtering |
Plugin manifests declare permissions, config fields, default enablement, and admin actions. Keep plugin hooks generic: tools execute actions, context providers contribute task context, and UI/admin behavior remains separate from runtime execution.
The orb UI in Noema directly references the visual direction and interaction ideas from these excellent Three.js projects. Thanks to their authors and communities:
Community thanks:
AGPL-3.0-only. See LICENSE.