kami
Typeset professional documents with Kami templates: resumes, one-pagers, white papers, letters, portfolios, and slide decks
Install / Use
npx skills add tw93/Kami --skill kamiInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Content & MediaSupported Platforms
Our assessment of kami
kami scores 96/100 on our quality scale, 45th of 1,183 Content & Media skills we index (top 4%).
Its SKILL.md is 19 KB long, well organised into 10 sections with 2 code examples: a thorough specification that gives an agent plenty to work with.
With 12,009 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated today, so kami is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
kami compared with similar skills
All 4 of these similar skills score higher than kami; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| kami (this skill)by tw93 | 96 | 12.0k | today | SKILL.md |
| siyuanby siyuan-note | 100 | 46.9k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 28d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 28d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 137.2k | 5d ago | SKILL.md |
Frequently asked questions
- How do I install kami?
- Run
npx skills add tw93/Kami --skill kami. The install tabs above show the steps for each supported agent. - Which AI agents does kami work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is kami safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is kami still maintained?
- The repository was last updated today, so kami is actively maintained.
Skill content
View source on GitHubname: kami description: 'Typeset professional documents with Kami templates: resumes, one-pagers, white papers, letters, portfolios, and slide decks. Use when asked to 做 PDF / 排版 / 简历 / 一页纸 / PPT / slides, or to create a Kami landing page. Not for auditing or restyling an existing product site.'
kami · 紙
紙 · かみ means paper in Japanese.
Good content deserves good paper. Use Kami’s templates and layout rules to create documents and landing pages with serif fonts, warm backgrounds, and ink-blue accents.
Part of Kaku · Waza · Kami - Kaku writes code, Waza drills habits, Kami delivers documents.
Commands and paths below are relative to this skill's directory. Keep the document in the user's working directory and call the scripts from there by their full path (python3 <skill>/scripts/build.py ...); relative file arguments resolve from your working directory first.
Update check (non-blocking). At the start of a task, run bash scripts/check-update.sh. It keeps a local daily marker and, at most once a day, reads Kami's latest published GitHub Release; it uploads no document or task content and stays silent when offline or sandboxed. When it prints a line about a newer Kami, relay it and continue.
Brand profile. If ~/.config/kami/brand.md (or the legacy ~/.kami/brand.md) exists, read references/brand-profile.md and apply it. Precedence: explicit prompt > editorial judgment > habit notes > frontmatter defaults > built-in defaults. The profile fills gaps silently and never overrides the current conversation. When the user names another project as the visual reference, run the style scan in the same file. When they give only a brand website, python3 scripts/brand_extract.py <url> drafts a profile; show the draft and use it for this document only after they accept it.
1 · Lock the contract
Before creating or changing an output, lock six things: language, template, output formats, page or length target, visual acceptance, and the verification command. Infer them from the request, then state the contract to the user in one short line in their language (template, length, formats, the figures you plan, any missing material) and continue without waiting. If they push back, adjust.
Question budget. Infer first. Ask at most once, in one compact question with at most two parts, and only when two or more of purpose, audience, hard constraints, or success are genuinely unresolvable, or two templates genuinely both fit. Otherwise take the smallest reasonable assumption and report it at the end.
Route by the artifact's current state:
| Current task | Mode | Contract |
|---|---|---|
| New document or substantial restructuring | New document | Lock the contract, write content.json with brief + content, then fill and deliver |
| Text replacement, translation, or factual correction in an existing artifact | Content-only | Preserve CSS and layout unless the new copy proves a fit defect |
| User supplies a render or screenshot and rejects how it looks | Visual repair | Treat the render as the brief; follow «Feedback protocol» |
| Standalone generated illustration, cover, social card, or redraw | Generated asset | Lock the semantic brief before pixels (references/diagrams.md section 11); preserve accepted parts across iterations |
Use the nearest existing template and check. Do not add a template, shared CSS layer, dependency, script flag, or optional mode unless the request cannot be met without it.
Language
| User language | HTML templates | Slides (PDF default) | Slides (PPTX, only when an editable deck is requested) | Slides (Marp) |
|---|---|---|---|---|
| Chinese (primary) | *.html | slides-weasy.html | slides.py | slides-marp.md |
| English | *-en.html | slides-weasy-en.html | slides-en.py | slides-marp-en.md |
| Japanese (best-effort) | *.html, JP Mincho first | slides-weasy.html | slides.py | slides-marp.md |
| Korean | *-ko.html | slides-weasy-ko.html | slides-en.py only if PPTX is required | slides-marp.md |
| Other (best-effort) | CJK or EN path by script coverage | slides-weasy.html or -en | slides.py / slides-en.py | slides-marp.md or -en |
Japanese, Korean, and other languages need a visual pass on the page images before shipping. Reference docs are shared English specs.
Document type
| User says | Document | CN template | EN template | KO template |
|---|---|---|---|---|
| "one-pager / 方案 / 执行摘要 / exec summary" | One-Pager | one-pager.html | one-pager-en.html | one-pager-ko.html |
| "white paper / 白皮书 / 长文 / 年度总结 / technical report" | Long Doc | long-doc.html | long-doc-en.html | long-doc-ko.html |
| "formal letter / 信件 / 辞职信 / 推荐信 / memo" | Letter | letter.html | letter-en.html | letter-ko.html |
| "portfolio / 作品集 / case studies" | Portfolio | portfolio.html | portfolio-en.html | portfolio-ko.html |
| "resume / CV / 简历 / 履歴書" | Resume | resume.html | resume-en.html | resume-ko.html |
| "slides / PPT / deck / 演示" | Slides | slides-weasy.html | slides-weasy-en.html | slides-weasy-ko.html |
| "个股研报 / equity report / 估值分析 / investment memo / 股票分析" | Equity Report | equity-report.html | equity-report-en.html | equity-report-ko.html |
| "更新日志 / changelog / release notes / 版本记录" | Changelog | changelog.html | changelog-en.html | changelog-ko.html |
| "landing page / 落地页 / 官网 / product page / 产品页" | Landing Page | landing-page.html | landing-page-en.html | landing-page-ko.html |
When two cells both fit, decide from the signals before asking:
| Signal | Document | |---|---| | 1 page for investors, recruiters, or an executive summary | one-pager | | 1 page of formal correspondence (sales, hiring, resignation, memo) | letter | | Exactly 2 pages of career narrative with project bullets | resume | | 3-6 visual-heavy pages showcasing projects | portfolio | | 6-15 pages of sustained argument, low visual density | long-doc | | Presentation flow, one assertion per slide | slides | | Metrics dashboard plus thesis plus price or risk view | equity-report | | Version-by-version release facts | changelog | | Product showcase, pricing, screenshots, FAQ for a browser | landing-page |
Ask only in cases like "1.5 pages of career story, heavy visuals" (resume or portfolio?) or "2 pages of exec summary with metric tiles" (one-pager or equity-report?).
- Changelog vs. release notes: the changelog template is a styled document. GitHub release notes are a separate deliverable; use
/write. - Landing page: screen-first HTML, no PDF. Fill the
{{PLACEHOLDER}}values and comment blocks and save a ready-to-serve file. The accent follows the product: use its own main color, ask the user to pick when it has none, and keep ink-blue only as the fallback (references/design.mdSection 11 «Accent on a product site»). Companion files (landing-page-*.example) and the production site mode (docs, help, releases, legal pages, or more than two locales) live inreferences/design.mdSection 11. Keep project-specific release artifacts, payment providers, appcast rules, and private local paths out of Kami. - Diagrams inside a document come from
assets/diagrams/(eighteen types), not a template.references/diagrams.mdsection 1 picks the type; extract the<svg>block into a<figure>. The same file owns architecture boards, diagrams maintained in the user's repo, and generated raster illustrations. - Charts from data (pick and embed them without asking) are generated, never drawn by hand: write the numbers as a spec and run
python3 scripts/build.py --chart spec.json -o chart.svg(references/diagrams.mdsection 9). - Slides: read
references/deck-preflight.mdbefore drafting.
2 · Sources, materials, and content
Source check. When the document names a company, product, person, release date, version, funding round, metric, market fact, or technical spec, work from primary sources, note source and date for the facts that drive it, and ask when sources conflict (references/writing.md «5. Sources before phrasing»). Skip it for personal drafts where the user supplied everything.
Material check. A branded subject needs what makes it recognizable: logo, product image or current UI screenshot, and brand colors when the document is branded (references/writing.md «6. Materials serve recognition»). When the request names no logo but the brand profile has one, fill the commented .brand-logo slot in one-pager / portfolio / slides-weasy (expand ~ to an absolute path; leave the slot commented if the file is missing). An explicit logo in the current request always wins.
Gap report. Everything the template needs that the input lacks, missing facts and missing materials alike, goes into one compact table shown once, with one question only when a missing item would change the deliverable. Inside the document, mark a gap as [DATA NEEDED: what]. Never fill a gap with a guess, a stock image, an approximated logo, or an invented value.
Distill. Unless the content already maps one-to-one onto the template sections or the user said to use it as-is, distill it. Every factual claim, number, date, name, source, and material reference from the input must land in a template section or in the gap report.
Content IR (new documents). Write the distilled content and the locked contract to content.json next to the working HTML before filling. Read references/schemas/<type>.json first: its $comment notes carry the per-field quality bar. The envelope is strict: only type, lang (cn, en, ko, zh-TW, ...), brief, and content.
{
"type": "resume",
"lang": "cn",
"brief": {
"audience": "Hiring manager for a senior product role",
"job": "Earn an interview by proving scope and outcomes",
"template": "resume",
"formats": ["html", "pdf"],
"page_target": 2,
"narrative": "Scope first, then evidence, then fit",
"required_facts": ["team size", "measured outcomes"],
"required_assets": [],
"acceptance_checks": ["two pages", "all atomic facts survive"],
"preserve": [],
"explicit_deviations": []
},
"content": { ... }
}
type is a schema name in references/schemas/ (one-pager, letter, resume, long-doc, portfolio, slides, equity-report, changelog, landing-page). For a visual repair, add target, evidence, and preserve to brief. Validate before layout with python3 scripts/build.py --check-content content.json and fix errors by fixing the content (or asking for the fact), never by loosening structure. Short atomic values (names, metrics, dates, bullets) must survive into the document verbatim; values over 80 characters may be rephrased.
3 · Read the right amount
Read the lowest tier that covers the task. The templates already carry every token and component, so a new document does not need the full design spec.
| Task | Read |
|---|---|
| Content-only change | CHEATSHEET.md |
| Layout tweak within spec | CHEATSHEET.md + the template |
| New document | the template + CHEATSHEET.md + references/schemas/<type>.json + the references/writing.md sections for that type («Per-document strategies», «Quality bars by document type»); open references/design.md only for the component or rule you are about to change |
| Resume | + references/resume-writing.md |
| Slides, long-doc, portfolio, equity-report, changelog | + references/writing.md «Page density» |
| Slides | + references/deck-preflight.md and the references/design.md section 8 «Deck Recipe» it points to |
| Diagram | references/diagrams.md; references/mermaid.md when the source is Mermaid text |
| Company, product, market, or branded subject | references/writing.md sections 5-6 |
| Rendering bug, font issue, overflow | references/production.md Part 4 (and the design spec if CSS is the cause) |
| Reviewing an AI-generated draft | `reference
Truncated for display — read the full file on GitHub.
Related Skills
siyuan
46.9kAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
137.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
