用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/kane50613/takumi --skill migrate-from-satori命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | migrate-from-satori |
| description | Guides and automated instructions for migrating from Vercel's Satori, next/og, or @vercel/og to Takumi. |
Upgrade instructions. Replace Satori layout limitations with Takumi advanced features.
| Feature | Satori | Takumi |
|---|---|---|
| Primary Output | SVG only (needs resvg wrapper) | PNG, JPEG, WebP, SVG, GIF, APNG |
| CSS Layout | Flexbox only | Flexbox, CSS Grid, block, inline, float |
| Advanced CSS | ✗ | Grid, pseudo-elements, backdrop-filter, clip-path, text-fit, offset-path |
| Fonts | Manual Buffer array | System fonts, URLs, local paths, Buffers |
| Tailwind | Limited / wrapper needed | Native Tailwind v4 (tw/class, arbitrary values) |
Before:
import { ImageResponse } from "next/og";
// ... returns new ImageResponse(...)
After:
import { ImageResponse } from "takumi-js/response";
// ... returns new ImageResponse(...)
Before:
import satori from "satori";
import { Resvg } from "@resvg/resvg-js";
const svg = await satori(element, { width, height, fonts: [{ name: "A", data: buf }] });
const png = new Resvg(svg).render().asPng();
After:
import { render } from "takumi-js";
const png = await render(element, {
width,
height,
fonts: [{ name: "A", url: "https://url.woff2" }],
});
tw="grid grid-cols-12 gap-4".<style> rules, :is(), :where(), ::before, ::after work natively.backdrop-filter, clip-path, and blend modes directly in styling.