NekoPaw Control

SkillDev tools

Control a NekoPaw ESP32 device or gateway through the HTTP bridge API using skill/bridge_cli.py. Use when Codex needs to inspect device info, display text or raw 1bpp bitmaps, create or wait for confirm flows, read sensors, poll input events, manage event watches, or drive outputs such as LED and buzzer.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the NekoPaw Control skill

What this skill tells your AI

The instructions your AI receives, as published by truelysia02/nekopaw in skill/SKILL.md and read by ahel’s review.

Use this skill when the user wants to read sensors, display text or bitmaps, wait for a confirm result, manage watches, or drive outputs on a NekoPaw device.

For preview rendering, 1bpp bitmap generation, scene json, or confirm bitmap asset generation, use the separate render skill at skill/render/SKILL.md.

Environment variables:

  • NEKOPAW_URL: device or gateway base URL, for example http://192.168.1.123
  • NEKOPAW_DEVICE_ID: optional, only needed in gateway mode
  • NEKOPAW_API_KEY: optional, passed as X-API-Key

Agent workflow:

  1. Run python skill/bridge_cli.py device info first.
  2. Read data.capabilities from the response before choosing display, sensors, events, or outputs commands.
  3. Prefer the CLI over handwritten HTTP so error handling and bitmap preflight stay consistent.
  4. For confirm flows, use display confirm create and display confirm wait unless the task explicitly needs manual polling.

Examples:

python skill/bridge_cli.py device info
python skill/bridge_cli.py device set-description --description "Living room e-ink ticker"

python skill/bridge_cli.py display text --title "Greeting" --body "Hello NekoPaw"
python skill/bridge_cli.py display bitmap --input screen_296x128_1bpp.bin
python skill/bridge_cli.py display state

python skill/bridge_cli.py display confirm create --title "Smart Home" --body "Turn on the fan?"
python skill/render_cli.py confirm-assets --title "Smart Home" --body "Turn on the fan?" --output-dir out/confirm
python skill/bridge_cli.py display confirm create --assets-dir out/confirm
python skill/bridge_cli.py display confirm wait --id cfm_000001
python skill/bridge_cli.py display confirm cancel --id cfm_000001

python skill/bridge_cli.py sensors list
python skill/bridge_cli.py sensors get --id battery

python skill/bridge_cli.py events watch input --id button1_click --input button1 --trigger click
python skill/bridge_cli.py events watch sensor --id battery_low --sensor battery --op lt --value 3.6 --cooldown 60
python skill/bridge_cli.py events poll
python skill/bridge_cli.py events watch delete --id button1_click

python skill/bridge_cli.py outputs led set --color green --duration 1500
python skill/bridge_cli.py outputs led off
python skill/bridge_cli.py outputs buzzer beep --frequency 1000 --duration 200 --count 2

Notes:

  • display bitmap uploads raw 1bpp bytes only. The CLI checks the byte size against /api/bridge/device before upload.
  • display confirm create --assets-dir ... uploads one raw bitmap pack in pending -> confirmed -> cancelled -> timeout order and keeps POST /api/bridge/display/confirm text mode compatible.
  • events watch upsert --payload ... and outputs send --payload ... are the raw protocol-mapping entry points when the typed helpers are not enough.
  • Successful commands print JSON to stdout and exit 0. Device JSON errors are printed as-is and exit 1. Local validation or network failures print a local JSON error and exit 2.

Signals

GitHub stars
73
Forks
3
Last commit
Apr 2026

ahel review

  • K6low
    bundled executables the agent is told to run
  • K1binfo
    installs-packages (in render/pipeline.py)
  • K1binfo
    installs-packages (in render/pretext_bridge.py)
  • K1binfo
    installs-packages (in render/SKILL.md)

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
nekopaw
Source
github.com/truelysia02/nekopaw