HivePaaS
Docker Swarm 기반 오픈소스 자체 호스팅 PaaS, SSL·백업·자동 확장 지원
GitHub 릴리즈를 짧은 영상으로 변환해 제목 카드와 목록을 추가하고 MP4로 첨부합니다
Turn every GitHub release into a short video: the notes become title cards and lists, checked by oxframe and attached to the release as an MP4.
개발 도구JavaScriptGitHub @oxygenframe온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
A GitHub Action that turns your release notes into a short video and attaches the MP4 to the release. Headings become title cards, lists become bullets, colors come from oxframe.toml. No AI model, no browser.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A GitHub Action that turns a release's notes into a short oxframe video and attaches the MP4 to the release.
Connect an LLM agent for a video worth watching. With one (Claude Code,
Codex, the Anthropic API or any agent CLI), the agent reads the notes, comes
up with a visual treatment for this release (a diagram of what was fixed, a
before and after, a counter) and writes the oxframe scene; oxframe check
reviews it until it passes. See Connect an agent. Without
one, a template renders the notes: the version opens it, each section gets
its heading in its color (added green, fixed blue, changed yellow, breaking
red), and its changes are written on word by word over a calm sea.
on:
release:
types: [published]
jobs:
video:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: oxygenframe/[email protected]
with:
# From `claude setup-token` (a Claude subscription); or see below.
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
oxframe check runs first. Changes share a card only while they fit above
the sea; a card that still cannot fit its text is split into two cards and
checked again, not clipped. Each change holds long enough to read. The end card says
"made by Oxframe" (with the oxframe logo) unless credit is false. A [theme] table in the
repository's oxframe.toml is copied onto the generated project.
The frame is 16:9. portrait: true renders 1080×1920 instead.
A release created with GITHUB_TOKEN does not start other workflows, so
on: release never runs for it. Render it in the job that creates it, or
any time later, with tag; the notes are read from the release:
- run: gh release create "$GITHUB_REF_NAME" --notes-file notes.md
- uses: oxygenframe/[email protected]
with:
tag: ${{ github.ref_name }}
notes renders text of your own instead of the release's notes.
The agent gets the release notes, the generated project's agent docs
(AGENTS.md and the oxframe skill, for the SDK version it builds with) and
the template scene as an example, with the request: come up with a visual
treatment of this changelog that can be built in oxframe, then build it.
oxframe check reviews each version, and its report goes back to the agent
until the scene passes (at most five tries). If none passes, or the agent
fails, the template renders the notes as usual. The treatment is printed in
the job log. Pick one of:
Claude Code with a Claude subscription. Run claude setup-token once on
your machine and store the token it prints (sk-ant-oat…) as a secret. The
action installs Claude Code and asks with claude -p, no tools.
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
The Anthropic API. An API key from the Claude Console:
anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}
# model: claude-opus-5-5
Any other agent CLI (Codex, Gemini CLI, …). Install and sign it in in an
earlier step; agent-command runs in bash, gets the prompt on stdin and
answers on stdout, or writes the answer to $REPLY_FILE:
- run: npm install -g @openai/codex
- uses: oxygenframe/[email protected]
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
with:
agent-command: codex exec --skip-git-repo-check --ephemeral -s read-only -o "$REPLY_FILE"
A video is one to five agent requests. Use a strong model: the scene is a whole Rust program against the oxframe API.
The generated project builds the oxframe SDK. The build is cached between runs (per CLI version), so only the first video after a new oxframe release compiles it.
Licensed under either of MIT or Apache-2.0 at your option.