bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
翻譯準備中
One sentence in, a researched 3D motion graphic out — a Claude Code skill that makes looping real-time HTML films (Three.js) and frame-exact MP4s
翻譯準備中
技能JavaScript · HTMLGitHub @Seokwoooo自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
安裝型專案無需部署網域也可驗證。個人儲存庫可透過 GitHub 登入驗證,組織儲存庫可使用上方的儲存庫驗證檔案。
正在載入完整 README。 以下為已儲存的摘錄。
One sentence in. A researched 3D motion graphic out.
A Claude Code skill that turns a request into a real-time 3D film —
one self-contained HTML file that loops seamlessly and exports to a frame-exact MP4.
"Zoom from a Blackwell graphics card down to single atoms" — one full loop of a reference film, played at about 2.5×
Restart Claude Code (or run /reload-plugins). The only thing to install yourself is Node.js 20 or newer: the
first run checks for everything else and installs what's missing (see Requirements).
Then type /promptfilm and what you want. One line is enough:檢視完整 README ↗One sentence in. A researched 3D motion graphic out.
A Claude Code skill that turns a request into a real-time 3D film — one self-contained HTML file that loops seamlessly and exports to a frame-exact MP4.
English · 한국어
"Zoom from a Blackwell graphics card down to single atoms" — one full loop of a reference film, played at about 2.5×
In Claude Code:
/plugin marketplace add Seokwoooo/promptfilm
/plugin install promptfilm@promptfilm
Restart Claude Code (or run /reload-plugins). The only thing to install yourself is Node.js 20 or newer: the
first run checks for everything else and installs what's missing (see Requirements).
Then type /promptfilm and what you want. One line is enough:
A journey through scale
/promptfilm Zoom out from Earth to the edge of the observable universe
How something works
/promptfilm Show how a mechanical watch works, from the mainspring to the hands
A product ad
/promptfilm An ad-style film for AirPods Pro 3
| Step | What happens | |
|---|---|---|
| 1 | Ask | One kickoff question: research depth, aspect, loop length, caption languages. Then it works on its own. |
| 2 | Research | Sourced facts, reference photos, frames from reference videos. |
| 3 | Storyboard | Scene cards with a time budget, opened in the Studio for your approval. |
| 4 | Build | Claude writes the film on the bundled engine. |
| 5 | Check | Automated QA, a fresh-eyes review and a final gate. It fixes and re-checks until the gate says READY. |
| 6 | Deliver | The HTML (every version kept) and, when you want it, a 1080p 60 fps MP4. |
[!NOTE] A film takes hours of agent work and a lot of tokens: research, building and several rounds of checks.
A local page that opens by itself while a film is being made:
Everything stays on your machine: the Studio listens on 127.0.0.1 only.
| What | How you get it |
|---|---|
| Claude Code | Recommended: Claude Opus 5.5, Sonnet 5.5 or Fable 5.1 (or newer), effort medium or above. Elsewhere it still runs and says once that quality can't be guaranteed. |
| Node.js 20+ | Install it yourself from nodejs.org. If it's missing and you have Homebrew, the first run installs it. |
| The scripts' packages | Installed with the plugin, or by the first run |
| A headless Chrome | Your Chrome, if it runs headless; otherwise the first run installs Playwright's Chromium (~150 MB) |
| ffmpeg | Yours, if it's on your PATH; otherwise the first run downloads a copy just for the skill (~45 MB) |
| yt-dlp (optional) | Frames from reference videos: brew install yt-dlp or pipx install yt-dlp |
The first run's setup needs no admin rights and removes nothing; after that, the check takes about a second. A GPU helps: without one, Chrome falls back to software rendering, which is slow. Developed and tested on macOS (Apple Silicon). Linux should work; Windows is untested (WSL is the safer route).
Memory: 8 GB is enough. Checking a film runs one headless browser (about 1.4 GB; 2.6 GB for a data-heavy film). The MP4 export opens as many as fit in half the memory, up to four: on an 8 GB Mac two for most films (about 3.5 GB with the encoder) and one for a data-heavy film, four on a 16 GB M2 Pro (about 5 GB). On 8 GB, close other heavy apps while it exports.
/plugin marketplace add Seokwoooo/promptfilm
/plugin install promptfilm@promptfilm
Claude Code installs the scripts' packages for you. Start the skill with /promptfilm (its full name is /promptfilm:promptfilm); it
also starts by itself when you ask for a motion graphic.
Updates. promptfilm updates the way Claude Code updates plugins: with Claude Code's own auto-update for its marketplace. The
first time a newer version is out, Claude asks you once whether to turn it on — the same switch as /plugin → Marketplaces →
promptfilm → Enable auto-update. On, and Claude Code keeps promptfilm current by itself (a film that starts also picks up a newer
version at once); off, and nothing changes until you update. Flip it any time in /plugin, or ask Claude. To skip the check
entirely, set PROMPTFILM_NO_UPDATE=1. Copies installed before October 2, 2026 don't check yet; update those once from a shell:
claude plugin marketplace update promptfilm && claude plugin update promptfilm@promptfilm
git clone https://github.com/Seokwoooo/promptfilm.git
cp -R promptfilm/skills/promptfilm ~/.claude/skills/
The skill is then /promptfilm, and its first run installs the packages.
Ask Claude Code to "run the promptfilm selftest". It takes about 5 minutes: it builds the engine's test films in a temporary folder and runs every check, including checks that must catch planted faults.
After /promptfilm, ask in your own words, in any language:
/promptfilm A 30-second 16:9 explainer of how a jet engine works, captions in English only
/promptfilm An ad-style product film for our app, 9:16
/promptfilm 사람 몸에서 세포, DNA, 원자까지 확대해 들어가는 쇼츠 영상 만들어줘
In the same session, follow-ups work in plain words: "open the Studio", "apply my review comments", "render the MP4".
Films are made in your working folder, one folder each (./<film-name>/). Your answers to the kickoff question are remembered in
./.promptfilm/settings.json and offered first next time.
The default taste profile, skills/promptfilm/taste.md, belongs to a creator making Shorts for a general
audience: nothing pops in, subjects look real, every step is shown up close, the camera moves gently, and nothing drags. Copy it to
./.promptfilm/taste.md (one project) or ~/.promptfilm/taste.md (all projects) and change the format defaults, the pace, the look,
the report labels, or the list of things that must never happen.
| Message | Fix |
|---|---|
SETUP MISSING node | Install Node.js 20+ from nodejs.org, then run /promptfilm again |
SETUP MISSING … (anything else) | The line says what failed and the command that fixes it; usually the network. Run /promptfilm again afterwards |
Chrome not found, Cannot find package … | Something was removed after the first run: run /promptfilm again and the setup reinstalls it |
| Using your own tools | Set CHROME=/path/to/chrome or FFMPEG=/path/to/ffmpeg |
| QA or rendering is very slow | no GPU: Chrome falls back to software rendering — it works, just slower |
| ⚠️ Not the recommended setup | shown once when the host, model or effort differs; the skill carries on |
.claude-plugin/ plugin and marketplace manifests
skills/promptfilm/
├── SKILL.md the workflow
├── taste.md the default taste profile
├── references/ principles, pacing, layout, engine API, techniques, QA, review, Studio
├── engine/ the film engine: core, a new-film template, two test films
├── scripts/ setup, new film, build, QA, time budget, render, review, gate, selftest
├── studio/ the local Studio
├── examples/ code from the two reference films (patterns, not templates)
└── evals/ test prompts with the expected behaviour
MIT. Third-party components, imagery credits and trademarks: THIRD_PARTY_NOTICES.md. Promptfilm is an independent project, not affiliated with or endorsed by Anthropic.