Skip to content
Back to skills

Tiny Engineer Play

ASecurity

Make the Tiny Engineer desk robot say something out loud through its speaker while it gestures, via POST /play. Use whenever the user asks the robot to speak, announce or celebrate a result, greet them, or "tell me through the robot", and when debugging /play errors such as 415 "expected 16-bit mono PCM" or 400 "name must be ...".

  • 545 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 7, 2026
ai-agentsgobashdebugging

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 7, 2026

npx -y skills add jamro/tiny-engineer --skill tiny-engineer-play --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tiny Engineer Play?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tiny Engineer Play
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jamro-tiny-engineer-play/badge)](https://www.skillsdirectory.com/skills/jamro-tiny-engineer-play)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tiny-engineer-play
description: Make the Tiny Engineer desk robot say something out loud through its speaker while it gestures, via POST /play. Use whenever the user asks the robot to speak, announce or celebrate a result, greet them, or "tell me through the robot", and when debugging /play errors such as 415 "expected 16-bit mono PCM" or 400 "name must be ...".
---

# Tiny Engineer: speak through the robot

The robot plays a WAV clip on its speaker while it runs an animation, then goes back to what it was doing. Clips must be 16-bit mono PCM at 22050 Hz.

## 1. Make the clip

Use any text-to-speech the machine has, then convert it with ffmpeg:

```bash
espeak-ng -w /tmp/te-raw.wav "Build passed. Ship it!"                                        # Linux
say --file-format=WAVE --data-format=LEI16@22050 -o /tmp/te-raw.wav "Build passed. Ship it!"  # macOS
ffmpeg -y -loglevel error -i /tmp/te-raw.wav -ar 22050 -ac 1 -c:a pcm_s16le /tmp/te-clip.wav
```

Keep clips short (a few seconds up to about 20 s): the robot handles one request at a time, so the hooks that animate it during normal work wait while a clip plays.

## 2. Play it

```bash
<this skill's base directory>/scripts/play /tmp/te-clip.wav            # robot runs "talking"
<this skill's base directory>/scripts/play /tmp/te-clip.wav thinking   # or typing, reading, none
```

It reads `TINY_ENGINEER_URL` (default `http://tiny-engineer.local`) and `TINY_ENGINEER_TOKEN` from the environment, prints the robot's JSON reply when the clip ends, and exits 1 with the reason on any error. It needs `curl`.

## Errors

| Reply | Fix |
| --- | --- |
| `415 expected 16-bit mono PCM at N Hz` | Re-run the `ffmpeg` step with `-ar N` |
| `400 name must be ...` | Use `talking`, `typing`, `reading`, `thinking` or `none` |
| `401 unauthorized` | Set `TINY_ENGINEER_TOKEN` to the robot's `access_token` |
| `robot unreachable` | Check `TINY_ENGINEER_URL`; the robot must be on the same network |

Files in this skill

  • SKILL.md1.9 KB
  • scripts/play1012 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…