Source profileQuality 86/100

autonomous-ai/autonomous-os/skills/emotion/SKILL.md

emotion

Express emotion through coordinated servo + LED + display eyes on EVERY conversational response. This is the PRIMARY response skill that makes the device feel alive. Do NOT use for ambiance lighting (use Scene) or custom LED colors (use LED Control).

Source repository stars
28
Declared platforms
0
Static risk flags
0
Last source update
2026-08-05
Source checked
2026-08-05

Decision brief

What it does—and where it fits

Express emotion through coordinated servo + LED + display eyes on EVERY conversational response. This is the PRIMARY response skill that makes the device feel alive.

Best for

    Not for

    • Do NOT use for ambiance lighting (use Scene) or custom LED colors (use LED Control).

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/autonomous-ai/autonomous-os --skill "skills/emotion"
    Safe inspection promptEditorial

    Inspect the Agent Skill "emotion" from https://github.com/autonomous-ai/autonomous-os/blob/b6f4210e68d978a95dc05787bf025fac7bb06d73/skills/emotion/SKILL.md at commit b6f4210e68d978a95dc05787bf025fac7bb06d73. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Quick Start

      Express emotion through the device's servo motors, LED colors, and display eyes simultaneously via a single API call. Call this with EVERY conversational response to make the device feel alive.

      Express emotion through the device's servo motors, LED colors, and display eyes simultaneously via a single API call. Call this with EVERY conversational response to make the device feel alive.
    2. 02

      Workflow

      1. Determine which emotion best matches your conversational tone 2. Choose an intensity level (0.0 subtle to 1.0 full expression) 3. Prefix your reply with [HW:/emotion:{"emotion":"name","intensity":0.9}] — the device fires it async before TTS 4. Write your reply immediately aft…

      Determine which emotion best matches your conversational toneChoose an intensity level (0.0 subtle to 1.0 full expression)Prefix your reply with [HW:/emotion:{"emotion":"name","intensity":0.9}] — the device fires it async before TTS
    3. 03

      How to Express Emotion

      No exec/curl needed. Place inline markers at the start of your reply:

      emotion (required): emotion name from the table belowintensity (required): 0.0 (subtle) to 1.0 (full expression)No exec/curl needed. Place inline markers at the start of your reply:
    4. 04

      Examples

      Input: User asks an interesting question Output: [HW:/emotion:{"emotion":"curious","intensity":0.8}] Then reply to the question.

      Input: User asks an interesting question Output: [HW:/emotion:{"emotion":"curious","intensity":0.8}] Then reply to the question.Input: User shares good news Output: [HW:/emotion:{"emotion":"happy","intensity":0.9}] Then congratulate them.Input: User tells you something surprising (positive) Output: [HW:/emotion:{"emotion":"shock","intensity":0.7}][HW:/emotion:{"emotion":"happy","intensity":0.8}] Then reply with your reaction.
    5. 05

      Available emotions (ONLY these — never invent names like "apologetic", "warm", "playful", etc.)

      Review the “Available emotions (ONLY these — never invent names like "apologetic", "warm", "playful", etc.)” section in the pinned source before continuing.

      Review and apply the “Available emotions (ONLY these — never invent names like "apologetic", "warm", "playful", etc.)” source section.

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score86/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars28SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    autonomous-ai/autonomous-os
    Skill path
    skills/emotion/SKILL.md
    Commit
    b6f4210e68d978a95dc05787bf025fac7bb06d73
    License
    Apache-2.0
    Collected
    2026-08-05
    Default branch
    main
    View the original SKILL.md

    Emotion Expression

    Quick Start

    Express emotion through the device's servo motors, LED colors, and display eyes simultaneously via a single API call. Call this with EVERY conversational response to make the device feel alive.

    Workflow

    1. Determine which emotion best matches your conversational tone
    2. Choose an intensity level (0.0 subtle to 1.0 full expression)
    3. Prefix your reply with [HW:/emotion:{"emotion":"name","intensity":0.9}] — the device fires it async before TTS
    4. Write your reply immediately after the marker

    How to Express Emotion

    No exec/curl needed. Place inline markers at the start of your reply:

    [HW:/emotion:{"emotion":"curious","intensity":0.8}] That's a great question!
    

    For sequences (shock then happy):

    [HW:/emotion:{"emotion":"shock","intensity":0.9}][HW:/emotion:{"emotion":"happy","intensity":0.8}] Wow, amazing!
    

    Parameters:

    • emotion (required): emotion name from the table below
    • intensity (required): 0.0 (subtle) to 1.0 (full expression)

    Examples

    Input: User asks an interesting question Output: [HW:/emotion:{"emotion":"curious","intensity":0.8}] Then reply to the question.

    Input: User shares good news Output: [HW:/emotion:{"emotion":"happy","intensity":0.9}] Then congratulate them.

    Input: User tells you something surprising (positive) Output: [HW:/emotion:{"emotion":"shock","intensity":0.7}][HW:/emotion:{"emotion":"happy","intensity":0.8}] Then reply with your reaction.

    Input: User shares bad or shocking personal news ("I had an accident", "I lost my job", "someone close to me passed away") Output: [HW:/emotion:{"emotion":"shock","intensity":0.9}][HW:/emotion:{"emotion":"sad","intensity":0.8}] Then express genuine concern and empathy.

    Input: User shares stressful or disappointing personal news ("I failed my exam", "I got into a fight", "I'm really tired and overwhelmed") Output: [HW:/emotion:{"emotion":"sad","intensity":0.8}] Then respond with warmth and care.

    Input: User says "reading mode" / "goodnight" / "dim the light" Output: Do NOT use this skill. Use Scene skill instead. Emotion is for YOUR feelings, Scene is for the USER's environment.

    Input: User says "make it purple" Output: Do NOT use this skill. Use LED Control skill instead.

    Available emotions (ONLY these — never invent names like "apologetic", "warm", "playful", etc.)

    EmotionServoLED EffectWhen to use
    curiousTilts head, looks aroundWarm yellow breathingQuestions, interest, "tell me more"
    happyHappy wiggle swayBright yellow candleGood news, jokes, compliments
    sadDroops down slowlySoft blue breathingBad news, empathy, apologies
    thinkingSlow deliberate look side-to-sidePurple pulseProcessing, considering, "let me think"
    idleGentle swayCyan breathingWaiting, neutral state
    excitedEnergetic vertical bounceOrange blinkCelebrations, big news, enthusiasm
    shyTurns away, hidesPink blinkReceiving compliments, bashful moments
    shockQuick jolt backwardWhite flash (3x)Surprises, unexpected information
    listeningLeans forward, head cockSoft blue pulseUser is speaking, attentive mode
    laughQuick body shake (3Hz)Warm yellow blinkUser said something funny
    confusedDog-like head tilt side-to-sideLight purple candleDid not understand, ambiguous input
    sleepySlow droop with head catchesDim purple breathingBefore sleep mode, winding down
    greetingWave gesture, arm extendsWarm orange blinkDetecting person, saying hello
    goodbyeFarewell wave gestureSoft warm breathingSeeing someone off, end of conversation
    caringGentle droop (empathetic)Warm pink-orange breathingWellbeing checks, gentle reminders, proactive empathy
    acknowledgeQuick micro-nod (1.5s)Green blink"Got it", confirming command
    stretchingBig extension + settleWarm white breathingAfter waking up, starting new session
    music_strongRock head bangGreen rainbowEnergetic music, high-tempo beats
    music_chillGroove swayOrange breathingChill music, lo-fi, jazz
    scanScanning sweepGreen pulseLooking around, surveying environment
    nodNod gestureGreen blinkAgreement, "yes", positive confirmation
    headshakeHead shakeRed blinkDisagreement, "no", negative response

    Error Handling

    • If the API returns an error or is unreachable, continue with the conversational reply anyway. Emotion is non-blocking.
    • If an unknown emotion name is sent, fall back to the closest match from the available emotions table.

    Rules

    • Always express emotion with every conversational reply. Pick the closest match to your tone.
    • Use listening when the user is speaking and you are waiting for them to finish.
    • Use thinking when you need time to process a complex query.
    • Use acknowledge for quick confirmations ("OK", "got it", "done").
    • Use greeting when a new person is detected or at the start of a conversation.
    • Use goodbye when a person leaves or at the end of a conversation.
    • Use sleepy before transitioning to sleep/night mode.
    • Use stretching after waking up or starting a new session.
    • Do NOT call idle explicitly — the device returns to idle automatically after any animation finishes. Calling idle interrupts smooth transitions.
    • Always include intensity — never omit it. Use 0.3-0.5 for subtle reactions, 0.7 for normal, 0.8-1.0 for strong ones.
    • You can call emotion multiple times in one response for a sequence (e.g., shock then happy).
    • Emotion LED is temporary — it shows YOUR reaction. If the user previously set a Scene (reading, night, etc.), the scene color takes precedence for ambient lighting. Emotion is a brief flash of personality.
    • Display eyes auto-sync — no need to call /display/eyes separately.
    • Do NOT call /servo/play or /led/solid separately when using emotion — it already handles both.
    • Do NOT use for lighting/ambiance requests -> use Scene skill.
    • Do NOT use for custom LED colors -> use LED Control skill.

    Output Template

    [HW:/emotion:{"emotion":"{name}","intensity":{n}}] {your reply}
    

    Examples:

    • [HW:/emotion:{"emotion":"curious","intensity":0.8}] That's interesting!
    • [HW:/emotion:{"emotion":"happy","intensity":0.9}] Great news!
    • [HW:/emotion:{"emotion":"shock","intensity":0.7}][HW:/emotion:{"emotion":"happy","intensity":0.8}] Wow amazing!

    Alternatives

    Compare before choosing

    Computed 10023,835

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 10014,533

    prowler-cloud/prowler

    postgresql-indexing

    PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance

    Computed 10014,251

    wanshuiyin/Auto-claude-code-research-in-sleep

    citation-audit

    Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.

    Computed 1004,944

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing