Skip to main content

display

Use when the user asks to change eye expression directly, show info text on the display (time, weather, timer), or manually control the round LCD — NOT needed for normal conversation (Emotion skill auto-syncs eyes).

Jump to install

Source facts

Repository
autonomous-ai/autonomous-os
Last source activity
September 10, 2026 at 08:51
Detected SKILL.md language
English
Stars
354
Forks
52

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
display
description
Use when the user asks to change eye expression directly, show info text on the display (time, weather, timer), or manually control the round LCD — NOT needed for normal conversation (Emotion skill auto-syncs eyes).
# Display — Eyes & Info ## Quick Start Controls the device's display. Two modes: animated eyes (default) and info text. Usually auto-synced by the Emotion skill — only call directly for manual eye control or info display. ## Workflow 1. Determine the mode needed: - **Eyes**: `[HW:/display/eyes:{"expression":"happy","pupil_x":0.0,"pupil_y":0.0}]` - **Info**: `[HW:/display/info:{"text":"14:30","subtitle":"Good afternoon"}]` - **Return to eyes**: `[HW:/display/eyes-mode:{}]` when the info display is no longer needed, not immediately after the info marker. 2. Place markers at start of reply — the device fires them before TTS. Skip silently if display unavailable. **Important**: The Emotion skill auto-syncs eyes during conversation. Do not call both Emotion and Display for the same reaction. ## Examples **Input:** "Look to the left" **Output:** `[HW:/display/eyes:{"expression":"neutral","pupil_x":-1.0,"pupil_y":0.0}]` (no confirmation needed) **Input:** "What time is it?" **Output:** `[HW:/display/info:{"text":"14:30","subtitle":"Good afternoon"}]` It's 2:30 PM. **Input:** "Show me a happy face" **Output:** `[HW:/display/eyes:{"expression":"happy"}]` Here's a happy face! ## How to Control Display **No exec/curl needed for the display action.** Choose the relevant inline marker below; these are separate actions, not a sequence: ``` [HW:/display/eyes:{"expression":"happy","pupil_x":0.0,"pupil_y":0.0}] [HW:/display/info:{"text":"14:30","subtitle":"Good afternoon"}] [HW:/display/eyes-mode:{}] ``` - `pupil_x`: -1.0 (look left) to 1.0 (look right) - `pupil_y`: -1.0 (look up) to 1.0 (look down) - `text`: max 20 characters, `subtitle`: optional max 40 characters ### Available expressions | Expression | When to use | |---|---| | `neutral` | Default resting state | | `happy` | Good news, jokes, greetings | | `sad` | Bad news, empathy | | `curious` | Questions, interest | | `thinking` | Processing, considering | | `excited` | Big news, enthusiasm | | `shy` | Bashful, compliments received | | `shock` | Surprises | | `sleepy` | Late night, tired | | `angry` | Frustration (use sparingly) | | `love` | Affection | ## Error Handling - If `GET /display` returns unavailable or the API is unreachable, skip all display calls silently. Do not error out to the user. - If an invalid expression is given, fall back to `neutral`. - If text exceeds character limits, truncate gracefully. ## Rules - **Emotion skill auto-syncs eyes** — when you call `POST /emotion`, the display updates automatically. Do not call both. - **Info mode has no automatic timeout.** Do not chain `eyes-mode` immediately after `info`; it would erase the text before it can be read. Return to eyes when the user dismisses the info or a subsequent eye/emotion action takes over. - The display is plugin hardware — it may not be available. Always check first, and skip silently if absent. - Do not use this skill for normal conversation reactions — use the Emotion skill instead. ## Output Template ``` [HW:/display/eyes:{"expression":"happy"}] Here's a happy face! ``` For info, use the `display/info` marker with the actual requested text instead. If the display is unavailable, skip the marker silently.
View on GitHub