Skip to content

tooling: add the line-beeper-api skill - #291

Draft
clins1994 wants to merge 4 commits into
beeper:mainfrom
clins1994:tooling/skills-beeper-api
Draft

clins1994 wants to merge 4 commits into
beeper:mainfrom
clins1994:tooling/skills-beeper-api

Conversation

@clins1994

Copy link
Copy Markdown
Contributor

Adds the line-beeper-api skill, which sends test messages through Beeper Desktop's local API and reads back what Beeper received. Depends on #290: review that one first, and only the last commit here is new.


🇬🇧 More details

Summary

line-beeper-api drives Beeper Desktop during a bridge test. It sends text and files into a LINE chat and reads back what Beeper got: type, mimetype, size, width and height, GIF flag, file hash and frame count. It saves before and after snapshots and diffs them.

Why

Part 4 of 5 of the stack that brings the LINE skills into this repo, as asked on #280. Today a tester sends from a phone and takes screenshots of Beeper to see the result. This skill reads the result as data instead, so the before and after phases of a test plan can be compared exactly.

Changes

New folder .agents/skills/line-beeper-api/:

  • SKILL.md: setup and commands.
  • scripts/beeper.py: the client. Python 3.8+, no packages.

Safety:

  • It reads and sends only in chats that the user allowlists on first use. The list lives outside the repo, at ~/.config/beeper-line/allowlist.json.
  • The token comes from the keychain item beeper-desktop-api or from BEEPER_ACCESS_TOKEN. The skill never prints it or writes it to a file.

How it was tested

  • A Python syntax check on beeper.py, and pre-commit run on every changed file: passed.

Not tested (and why)

Related

🤖 Generated with Claude Code using clins:create-pr

clins1994 and others added 4 commits October 27, 2026 23:57
Move the line-capture and line-analyze commands to .agents/skills, with
their scripts next to them, and link .claude/skills to .agents/skills so
Claude Code finds them.

The capture launcher now runs a dependency preflight first and works on
macOS, Linux and Windows (Git Bash). The CDP recorder releases every
page-like target so extension windows no longer open frozen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Writes the numbered test plan (test/<feature>/PLAN.md) for a bridge
feature before any capture or code: lettered sections, stable step IDs,
before/capture/after phases and a Result column, plus labeled sample
media when the feature needs files. check-plan.py validates the layout
and make-samples.py generates the samples.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Turns a feature's test screenshots into PR-ready evidence: collects them
from local folders, builds a local contact sheet to pick from, finds
names, faces, phone numbers, emails and MIDs with on-device OCR (Apple
Vision on macOS, tesseract elsewhere), covers everything outside the test
plan's test data with solid boxes, and writes approved, metadata-free
PNGs plus a manifest. Raw screenshots never leave the machine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sends test messages and files into LINE chats through Beeper Desktop's
local API and reads back what Beeper received: type, mimetype, size,
width/height, GIF flag, file hash and frame count. Saves before/after
snapshots and diffs them, so tests no longer depend on sending from a
phone and screenshotting Beeper. It only reads and sends in chats the
user allowlists on first use; the token comes from the keychain or
BEEPER_ACCESS_TOKEN and is never printed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant