framefilm-dock-upload SKILL.md skillA

framefilm-dock-upload from kirmisaki/framefilm is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add kirmisaki/framefilm/framefilm-dock-upload@git:20261101.c030a86

Pins git:20261101.c030a86 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
kirmisaki/framefilm
Path
tools/framefilm-dock-upload/SKILL.md
Versions recorded
4
Latest version
git:20261101.c030a86, committed Nov 1, 2026
First version recorded
Sep 12, 2026
Size
6,783 bytes
Repository stars
107
License
GPL-3.0

Upload an image to a FrameFilm Dock over USB. Invoke when the user asks to send/push a photo or picture to the FrameFilm dock (底座) via USB, or to list and verify .film files stored on the dock.

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# FrameFilm Dock 图片上传

把一张图片转换成 `.film` 文件,通过 **USB 虚拟串口**直接上传到 FrameFilm Dock,上传完成后设备会自动刷新墨水屏显示该图片。

> 位置说明:本 skill 与配套脚本一起放在项目 `tools/framefilm-dock-upload/` 下。

## 何时使用

- 用户说「把这张图/照片传到 dock」「通过 USB 上传图片到 dock」「让 dock 显示这张图」
- 需要查看 dock 上已有的 `.film` 文件列表
- 需要验证某个文件是否已经成功传到 dock

不适用:给冰箱贴(FrameFilm / Pro / Max)传图——那些机型没有 USB 串口,只有蓝牙,请用 `tools/ForFilm` 网页工具。

## 前置条件

1. **硬件**:dock 用 USB 线连到电脑,设备管理器里会出现一个串口(COM 口)。该串口是声卡/键盘/串口复合设备的一部分。
2. **Python 依赖**:
   ```
   pip install pyserial Pillow
   ```
3. **仓库位置**:图片转换复用仓库里的 `server/filmhub/backend/app/services/film_convert.py`,脚本会从自身位置和当前目录向上自动查找仓库根。若在仓库外运行,用环境变量指定:
   ```
   FRAMEFILM_REPO=<仓库根> python tools/framefilm-dock-upload/scripts/dock_upload.py ...
   ```

## 使用方法

脚本路径:`tools/framefilm-dock-upload/scripts/dock_upload.py`

```bash
# 上传一张图片(自动查找串口、自动转换、自动校验)
python tools/framefilm-dock-upload/scripts/dock_upload.py photo.jpg

# 指定串口 / 指定设备上的文件名 / 换抖动算法
python tools/framefilm-dock-upload/scripts/dock_upload.py photo.jpg --port COM7 --name holiday.film --dither atkinson

# Atkinson 增强(与 ForFilm / 小程序默认算法一致,观感最好)
python tools/framefilm-dock-upload/scripts/dock_upload.py photo.jpg --dither atkinson_enhanced

# 只列出设备上已有的文件
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add kirmisaki/framefilm/framefilm-dock-upload@sha256:5cdf9add7988c883

The line at the top of this page pins the label git:20261101.c030a86, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_frati6oy7wwi3vqq.svg)](https://markdownregistry.com/a/art_frati6oy7wwi3vqq)

0 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 4 versions of this file, between Sep 12, 2026 and Nov 1, 2026, about one every 17 days.

versioncommittedcommitsizeaudit
git:20261101.c030a86 latest2026-11-01 c030a86 6,783 BA view · diff
git:20260912.ae62b822026-09-12 ae62b82 6,775 BA view · diff
git:20260912.88c9d052026-09-12 88c9d05 6,033 BA view · diff
git:20260912.5f1557d2026-09-12 5f1557d 5,444 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (6783 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

kirmisaki/framefilm · 107 stars · license GPL-3.0 · pushed 2026-11-07 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_frati6oy7wwi3vqq
GET https://markdownregistry.com/api/v1/resolve?ref=kirmisaki/framefilm/framefilm-dock-upload
GET https://markdownregistry.com/api/v1/blob/5cdf9add7988c8832baeb2d1ddfa2ca264845b0ce7a2544a7074bca02f2908bd

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from kirmisaki/framefilm

AGENTS.md AGENTS.md file
kirmisaki/framefilm · AGENTS.md
git:20261104.12acfe5 · audit A · 107 stars
AGENTS.md@server/filmhub AGENTS.md file
kirmisaki/framefilm · server/filmhub/AGENTS.md
git:20261101.c030a86 · audit A · 107 stars

Every file in kirmisaki/framefilm

Browse by kind, by grade A, or by owner.