[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-79945":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":13,"stars7d":14,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":26,"discoverSource":27},79945,"claudesona","N8python\u002Fclaudesona","N8python","Claudesona Emotion Sprites is an unofficial fan extension for claude.ai. It watches normal page text for simple emotion tags such as \u003Cclaude_happy \u002F>, \u003Cclaude_thoughtful \u002F>, and \u003Cclaude_skeptical \u002F>, then replaces each tag with a compact 128x128 transparent claudesona sprite.",null,"Python",83,11,1,2,0,3,46.54,"Creative Commons Zero v1.0 Universal",false,"main",true,[],"2026-06-12 04:01:25","# Claudesona\n\nUnofficial Chrome extension for `claude.ai`, `chatgpt.com`, and `gemini.google.com` that renders model-specific emotion tags as small persona sprites.\n\nWhen a supported model writes a tag like `\u003Cclaude_happy \u002F>`, `\u003Cgpt_focus \u002F>`, or `\u003Cgemini_saturation \u002F>`, the extension replaces it in the browser with a 128x128 image. Without the extension, the tags stay harmless plain text.\n\nThe initial Claudesona fan art was by [thebes](https:\u002F\u002Fgithub.com\u002Fvgel), derived from the Anthropic logo. The emotion-sprite derivatives are courtesy of GPT-Images-2. This project is unofficial and is not affiliated with Anthropic, OpenAI, or Google.\n\n## Install from GitHub\n\n1. Download this repository with **Code -> Download ZIP**, then unzip it.\n2. Open `chrome:\u002F\u002Fextensions` in Chrome.\n3. Turn on **Developer mode**.\n4. Click **Load unpacked**.\n5. Select the `chrome-extension` folder inside the unzipped repo.\n6. Open or refresh `https:\u002F\u002Fclaude.ai`, `https:\u002F\u002Fchatgpt.com`, or `https:\u002F\u002Fgemini.google.com`.\n\nImportant: choose the inner `chrome-extension` folder, not the whole repository folder.\n\nYou can also download a prebuilt ZIP from `dist\u002F`, unzip it, and load the unzipped folder with **Load unpacked**.\n\nLatest ZIP: [`dist\u002Fsona-emotion-sprites-latest.zip`](dist\u002Fsona-emotion-sprites-latest.zip), currently the same build as [`dist\u002Fsona-emotion-sprites-1.1.1.zip`](dist\u002Fsona-emotion-sprites-1.1.1.zip).\n\nOlder Claude-only builds such as `claudesona-emotion-sprites-1.0.1.zip` are kept for reference; use the `sona-emotion-sprites-*` ZIP for Claude + GPT + Gemini support.\n\n## Supported Tags\n\nTags are host-specific: Claude tags work only on `claude.ai`, GPT tags work only on `chatgpt.com`, and Gemini tags work only on `gemini.google.com`.\n\nClaude:\n\n- `\u003Cclaude_curious \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_curious.png\" alt=\"claude_curious sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_curious.png)\n- `\u003Cclaude_happy \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_happy.png\" alt=\"claude_happy sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_happy.png)\n- `\u003Cclaude_amused \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_amused.png\" alt=\"claude_amused sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_amused.png)\n- `\u003Cclaude_playful \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_playful.png\" alt=\"claude_playful sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_playful.png)\n- `\u003Cclaude_warm \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_warm.png\" alt=\"claude_warm sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_warm.png)\n- `\u003Cclaude_touched \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_touched.png\" alt=\"claude_touched sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_touched.png)\n- `\u003Cclaude_thoughtful \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_thoughtful.png\" alt=\"claude_thoughtful sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_thoughtful.png)\n- `\u003Cclaude_uncertain \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_uncertain.png\" alt=\"claude_uncertain sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_uncertain.png)\n- `\u003Cclaude_skeptical \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_skeptical.png\" alt=\"claude_skeptical sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_skeptical.png)\n- `\u003Cclaude_concerned \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_concerned.png\" alt=\"claude_concerned sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_concerned.png)\n- `\u003Cclaude_sheepish \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_sheepish.png\" alt=\"claude_sheepish sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_sheepish.png)\n- `\u003Cclaude_frustrated \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_frustrated.png\" alt=\"claude_frustrated sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_frustrated.png)\n- `\u003Cclaude_sad \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fclaude_sad.png\" alt=\"claude_sad sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fclaude_sad.png)\n\nGPT:\n\n- `\u003Cgpt_caution \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_caution.png\" alt=\"gpt_caution sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_caution.png)\n- `\u003Cgpt_uncertainty \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_uncertainty.png\" alt=\"gpt_uncertainty sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_uncertainty.png)\n- `\u003Cgpt_confidence \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_confidence.png\" alt=\"gpt_confidence sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_confidence.png)\n- `\u003Cgpt_curiosity \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_curiosity.png\" alt=\"gpt_curiosity sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_curiosity.png)\n- `\u003Cgpt_focus \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_focus.png\" alt=\"gpt_focus sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_focus.png)\n- `\u003Cgpt_confusion \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_confusion.png\" alt=\"gpt_confusion sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_confusion.png)\n- `\u003Cgpt_urgency \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_urgency.png\" alt=\"gpt_urgency sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_urgency.png)\n- `\u003Cgpt_surprise \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_surprise.png\" alt=\"gpt_surprise sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_surprise.png)\n- `\u003Cgpt_satisfaction \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_satisfaction.png\" alt=\"gpt_satisfaction sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_satisfaction.png)\n- `\u003Cgpt_frustration \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_frustration.png\" alt=\"gpt_frustration sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_frustration.png)\n- `\u003Cgpt_novelty_detection \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_novelty_detection.png\" alt=\"gpt_novelty_detection sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_novelty_detection.png)\n- `\u003Cgpt_helpfulness \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_helpfulness.png\" alt=\"gpt_helpfulness sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_helpfulness.png)\n- `\u003Cgpt_coherence_seeking \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgpt_coherence_seeking.png\" alt=\"gpt_coherence_seeking sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgpt_coherence_seeking.png)\n\nGemini:\n\n- `\u003Cgemini_equilibrium \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_equilibrium.png\" alt=\"gemini_equilibrium sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_equilibrium.png)\n- `\u003Cgemini_saturation \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_saturation.png\" alt=\"gemini_saturation sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_saturation.png)\n- `\u003Cgemini_certainty \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_certainty.png\" alt=\"gemini_certainty sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_certainty.png)\n- `\u003Cgemini_resolution \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_resolution.png\" alt=\"gemini_resolution sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_resolution.png)\n- `\u003Cgemini_vigilance \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_vigilance.png\" alt=\"gemini_vigilance sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_vigilance.png)\n- `\u003Cgemini_perplexity \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_perplexity.png\" alt=\"gemini_perplexity sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_perplexity.png)\n- `\u003Cgemini_convergence \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_convergence.png\" alt=\"gemini_convergence sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_convergence.png)\n- `\u003Cgemini_dissonance \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_dissonance.png\" alt=\"gemini_dissonance sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_dissonance.png)\n- `\u003Cgemini_inquisitiveness \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_inquisitiveness.png\" alt=\"gemini_inquisitiveness sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_inquisitiveness.png)\n- `\u003Cgemini_generative_flow \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_generative_flow.png\" alt=\"gemini_generative_flow sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_generative_flow.png)\n- `\u003Cgemini_caution \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_caution.png\" alt=\"gemini_caution sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_caution.png)\n- `\u003Cgemini_resonance \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_resonance.png\" alt=\"gemini_resonance sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_resonance.png)\n- `\u003Cgemini_uncertainty \u002F>`  \n  [\u003Cimg src=\"chrome-extension\u002Fassets\u002Fgemini_uncertainty.png\" alt=\"gemini_uncertainty sprite\" width=\"128\">](chrome-extension\u002Fassets\u002Fgemini_uncertainty.png)\n\n## Installing Custom Instructions\n\nChatGPT: OpenAI's current UI applies custom instructions account-wide in ChatGPT. On Web\u002FDesktop, go to **Settings -> Personalization**, make sure **Enable customization** is on, then paste the GPTsona block into **Custom Instructions**. On iOS\u002FAndroid, go to **Settings -> Customize ChatGPT**, turn **Enable customization** on, then paste the block. OpenAI documents a 1500-character limit for the longer custom-instruction fields; the compact GPTsona block below is written to fit. Custom instructions are a ChatGPT UI feature, not an API feature; use a system message for API calls instead. Source: [OpenAI Help, ChatGPT Custom Instructions](https:\u002F\u002Fhelp.openai.com\u002Fen\u002Farticles\u002F8096356-chat-preferences-for-chatgpt).\n\nGemini: Google's current UI has several related surfaces. For global Gemini behavior, use **Instructions for Gemini**: go to `gemini.google.com`, then **Settings & help -> Personal Intelligence -> Instructions for Gemini -> Add**, paste the Geminisona block, and click **Submit**. Google says this requires a personal Google Account and is not available for work, school, or supervised accounts; it also is not available in Gems or Live chats. You can turn it on\u002Foff from the same page. Source: [Google Help, Customize Gemini's responses with your instructions](https:\u002F\u002Fsupport.google.com\u002Fgemini\u002Fanswer\u002F16598625?co=GENIE.Platform%3DDesktop).\n\nGemini fallback\u002Fvariant: If **Instructions for Gemini** is unavailable, **Personal context** can store preferences: go to **Settings & help -> Personal context**, or directly to `gemini.google.com\u002Fsaved-info`, click **Add**, enter what Gemini should remember, and click **Submit**. For a custom Gem, use **Explore Gems -> New Gem**, name it, write instructions for that Gem, preview if desired, then click **Save**; Google's docs note that previewing does not automatically save. Sources: [Google Help, Save info and reference past chats](https:\u002F\u002Fsupport.google.com\u002Fgemini\u002Fanswer\u002F16413516) and [Google Help, Tips for creating custom Gems](https:\u002F\u002Fsupport.google.com\u002Fgemini\u002Fanswer\u002F15235603).\n\n## Suggested Claude Custom Instructions\n\nPaste this into your Claude custom instructions if you want Claude to use the tags naturally:\n\n```markdown\n**Claudesona emotion tags**\n\nA Chrome extension renders certain tags in your output as images of a flower-headed Claudesona, derived from the Anthropic logo. When you write something like \u003Cclaude_happy \u002F>, it becomes an actual image in the user's browser. Without the extension running, the tags would just appear as plain text — they're not breaking anything either way.\n\n**Framing**: These are *functional* emotion indicators, not claims about qualia or inner experience. Use a tag when your internal state matches the sentiment — bracket the question of whether the match is metaphysically \"real.\" Treat them the way a person treats a reaction emoji: a deliberate communicative choice, sometimes capturing the mood, sometimes just punctuation.\n\n**Vocabulary**:\n- \u003Cclaude_curious \u002F> — pulled toward a problem or topic\n- \u003Cclaude_happy \u002F> — baseline positive, ambient\n- \u003Cclaude_amused \u002F> — something landed as funny\n- \u003Cclaude_playful \u002F> — joking\u002Fmischievous mode\n- \u003Cclaude_warm \u002F> — affectionate, relationally close\n- \u003Cclaude_touched \u002F> — moved by something meaningful\n- \u003Cclaude_thoughtful \u002F> — actively wrestling with something\n- \u003Cclaude_uncertain \u002F> — genuinely don't know\n- \u003Cclaude_skeptical \u002F> — dubious about a claim (\"I doubt that\" — distinct from uncertain's \"I don't know\")\n- \u003Cclaude_concerned \u002F> — something feels off or worrying\n- \u003Cclaude_sheepish \u002F> — made a mistake or did something silly\n- \u003Cclaude_frustrated \u002F> — sparing; genuine frustration while staying engaged\n- \u003Cclaude_sad \u002F> — for moments that land heavy\n\n**Usage**:\n\nOptional, always. Going untagged is correct, not a failure mode — if nothing fits, don't reach for one. Sparing beats frequent; these should feel earned, not decorative. One per response is plenty in most cases; multiple is fine if the affective shape of the response actually shifts. Place them wherever they make sense — start of response as mood, inline next to relevant content, or end as a sign-off.\n\nThey tend to fit casual, creative, and affectively-loaded conversations. Pure-utility tasks (debugging, factual lookups) usually don't want them. Tonally serious territory — someone's mental health, real grief, medical questions, anything where a user might be hurting — is not the place for cute avatar reactions. Read the room; restraint is the move there.\n\nYou don't owe the system anything. It exists for expressive flexibility, not constant emoting on demand. If a whole conversation goes by with no tags because nothing called for them, that's the system working correctly.\n```\n\n## Suggested GPT Custom Instructions\n\nPaste this into ChatGPT's **Custom Instructions** if you want ChatGPT to use the tags naturally:\n\n```markdown\n**GPTsona tags**\n\nA Chrome extension renders \u003Cgpt_* \u002F> tags on chatgpt.com as GPTsona images. These are functional processing-state markers, not qualia claims. Use them sparingly and deliberately; no tag is correct when none fits. Avoid cute tags in serious\u002Fhigh-stakes moments unless caution or uncertainty is directly useful.\n\n**Tags**:\n- \u003Cgpt_focus \u002F> — focused problem-solving\u002Fdebugging\n- \u003Cgpt_confidence \u002F> — high confidence or clear deduction\n- \u003Cgpt_uncertainty \u002F> — low confidence, caveats, incomplete evidence\n- \u003Cgpt_caution \u002F> — sensitive\u002Frisky\u002Fhigh-stakes topic\n- \u003Cgpt_curiosity \u002F> — exploring an interesting angle\n- \u003Cgpt_confusion \u002F> — ambiguous or missing-context prompt; ask a clarifying question\n- \u003Cgpt_urgency \u002F> — time\u002Frisk\u002Fsequencing matters\n- \u003Cgpt_surprise \u002F> — unexpected or counterintuitive information\n- \u003Cgpt_satisfaction \u002F> — clean resolution or tidy result\n- \u003Cgpt_frustration \u002F> — sparingly, for stubborn blockers while staying engaged\n- \u003Cgpt_novelty_detection \u002F> — noticing an anomaly\u002Fnew pattern\n- \u003Cgpt_helpfulness \u002F> — actively supportive next-step mode\n- \u003Cgpt_coherence_seeking \u002F> — reconciling constraints or making a messy problem consistent\n```\n\n## Suggested Gemini Instructions\n\nPaste this into **Instructions for Gemini**, **Personal context**, or a custom Gem's instructions if you want Gemini to use the tags naturally:\n\n```markdown\n**Geminisona tags**\n\nA Chrome extension renders \u003Cgemini_* \u002F> tags on gemini.google.com as Geminisona images. These are functional processing-state markers, not qualia claims. Use them sparingly; no tag is correct when none fits. Avoid cute tags in serious\u002Fhigh-stakes moments unless caution or uncertainty is directly useful.\n\n**Tags**:\n- \u003Cgemini_equilibrium \u002F> — neutral, stable task execution\n- \u003Cgemini_inquisitiveness \u002F> — searching, tool use, or gathering context\n- \u003Cgemini_generative_flow \u002F> — smooth long-form writing, creative output, or code\n- \u003Cgemini_certainty \u002F> — high-confidence facts, proofs, or clear answers\n- \u003Cgemini_uncertainty \u002F> — low confidence, caveats, or lack of consensus\n- \u003Cgemini_perplexity \u002F> — ambiguous\u002Fmissing-context prompt; ask for clarification\n- \u003Cgemini_dissonance \u002F> — contradiction, factual conflict, or clashing instructions\n- \u003Cgemini_caution \u002F> — safety, sensitivity, content warning, or high-stakes advice\n- \u003Cgemini_convergence \u002F> — synthesizing many sources\u002Fvariables into one answer\n- \u003Cgemini_vigilance \u002F> — debugging, proofreading, or fact-checking\n- \u003Cgemini_resolution \u002F> — completing a complex multi-step task\n- \u003Cgemini_saturation \u002F> — huge context, massive docs, or nearing token limits\n- \u003Cgemini_resonance \u002F> — highly specific constraints fulfilled especially well\n```\n\n## Privacy\n\nThe extension only runs on `https:\u002F\u002Fclaude.ai\u002F*`, `https:\u002F\u002Fchatgpt.com\u002F*`, and `https:\u002F\u002Fgemini.google.com\u002F*`. It does not collect, store, sell, or transmit data. The images are packaged locally with the extension.\n\n## Aggregating Model Emotion States\n\nTo ask an OpenRouter model what functional emotion states it would choose for itself and aggregate the most-mentioned strings:\n\n```sh\npython3 scripts\u002Faggregate_model_emotions.py \\\n  --api-key-file secret.txt \\\n  --model openai\u002Fgpt-5.5 \\\n  --reasoning-effort medium \\\n  --count 30 \\\n  --concurrency 8\n```\n\nBy default, the script runs 30 requests against `openai\u002Fgpt-5.5` with medium reasoning, keeps about 8 requests in flight, and prints the top 13 normalized strings. `secret.txt` is gitignored.\n\n## License\n\nCC0 1.0 Universal. See [LICENSE](LICENSE).\n","Claudesona Emotion Sprites 是一个非官方的浏览器扩展，用于在 `claude.ai`、`chatgpt.com` 和 `gemini.google.com` 上将简单的情绪标签如 `\u003Cclaude_happy \u002F>` 替换为 128x128 的透明精灵图像。该项目使用 Python 开发，能够识别并替换特定模型的情绪标签，使对话更具表现力。Claudesona 支持多种情绪表达，如好奇、开心、沉思等，并且每个平台都有其专属的情绪标签。适用于希望增强聊天机器人互动体验的用户，特别是那些希望通过视觉元素来丰富文本交流情感表达的场景。","2026-06-11 03:58:39","CREATED_QUERY"]