Kami skill

A skill that typesets resumes, one-pagers, letters, reports and slides from templates into PDF, PNG and PPTX and checks the result before delivery

  • 12,001 ★ on the repository
  • Last commit
  • MIT
Skill

Extended access

Why this level

  • The skill runs Python and Bash scripts on your computer and writes documents, page images and fonts to the working folder and user directories
  • The MCP server renders HTML and loads files and HTTP and HTTPS resources with its own process permissions, so feed it only trusted local HTML
  • Once a day the skill asks GitHub for the latest release, and `brand_extract.py` reads a site you name when you ask it to
All reasons and checks

tw93/kami

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/kami

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The skill runs Python and Bash scripts on your computer and writes documents, page images and fonts to the working folder and user directories
  • The MCP server renders HTML and loads files and HTTP and HTTPS resources with its own process permissions, so feed it only trusted local HTML
  • Once a day the skill asks GitHub for the latest release, and `brand_extract.py` reads a site you name when you ask it to

This is third-party code. Review the repository files before installing.

What it does

Kami is a skill for formatting documents from ready templates. It has eight types: one-pager, long document, letter, portfolio, resume, slides, equity report and changelog, plus a system for landing pages. English, Chinese and Korean have their own template variants, and for Japanese the author offers best effort. The look is the same throughout: a warm parchment background, an ink-blue accent and serif fonts. The work goes in steps. The agent first locks the terms: language, template, formats, length and the way to verify. It then gathers the content into `content.json`, validates it against a schema with `python3 scripts/build.py --check-content`, fills a copy of the template and runs `python3 scripts/build.py --deliver`. The script checks the HTML, builds the PDF through WeasyPrint, checks the finished file again and exports page images. The agent reviews them against a checklist and reports file paths, page count and the list of `[DATA NEEDED]` gaps. The skill forbids inventing figures and metrics. Beyond documents the set includes eighteen SVG diagram types, charts built from JSON data, MathJax formulas and code highlighting through Pygments. Slides come out as PDF, as an editable PPTX through python-pptx, or as Marp.

Who it is for. For people who ask an agent for a resume, a proposal, a report or a presentation and want a tidy PDF in one style.

Good fit when

  • You need a two-page resume where every line is written as an action with a result
  • A one-page project description for investors or a manager has to come out as a PDF
  • A talk is needed both as PDF slides and as an editable PPTX
  • An equity report or a version changelog should come out with diagrams and charts built from your data
  • You need a product landing page as a single HTML file in English, Chinese or Korean

Not a fit when

  • You need a dark, cyberpunk or bright multicolor style: the set is deliberately built on one accent and a warm background
  • You need default Material, Fluent or Tailwind components: that is another design language
  • You are building the interface of a dynamic web app: the skill is made for print and static documents
  • You work on Windows without WSL: the scripts are Bash, and WeasyPrint outside WSL needs GTK and Pango installed separately

Example request

Make my resume as a two-page PDF from the data in resume.md, with no invented figures

Limitations

English and Chinese have full support. Japanese and Korean come with fallback fonts and a manual page check before delivery.

The TsangerJinKai02 font for Chinese is free only for personal use; commercial use needs a license from the rights holder. Charter and YuMincho come from the system and are not in the package. Large Chinese and Korean fonts are also kept out of it: `ensure-fonts.sh` fetches them into the user font directory, and without them the templates load fonts from the jsDelivr CDN.

Formulas need Node.js 20 or newer and a one-time `bash scripts/ensure_mathjax.sh`. Without Pygments, code in the PDF stays one color.

Once a day the skill reads the latest GitHub release and reports a newer version. It does not send your documents.

License MIT.

How to disable. If you installed the skill through `npx skills add`, delete the kami folder from `~/.agents/skills` and its link from Claude Code's skills directory. Remove the plugin with the agent's own tools, and in Claude Desktop delete the skill on its card. The brand profile lives separately in `~/.config/kami/brand.md` and the update-check marker in the XDG cache directory; delete them if no longer needed. Finished documents stay in your working folder.

FAQ

Which formats come out?

For a document the default is HTML and PDF, with the PDF as the deliverable and the HTML as the source. PNG is added for sharing on social channels, and an editable PPTX for slides on request. For a long document a DOCX is possible by the production.md reference.

What does the bundled MCP server do?

The dependency-free script `skills/kami/scripts/mcp_server.py` offers four tools: capability diagnosis, render, structured check and screenshot. Any MCP-capable agent can use Kami as an engine through it without loading the whole skill prompt.

How do I set my own name, color and default language?

Create `~/.config/kami/brand.md` with YAML fields for name, role, email, brand color, language, page size and tone. An explicit request in the conversation always beats the profile. A sample is in references/brand.example.md.

What if I need white paper for a home printer?

The set has an optional white variant: it flips any document to a white background and keeps warm backgrounds only in cards and tables. The recipe is in references/production.md.

How does installing as a plugin differ?

The plugin installs with `/plugin marketplace add tw93/kami` and `/plugin install kami@kami` in Claude Code, and with `codex plugin marketplace add tw93/kami` and `codex plugin add kami@kami` in Codex. It is invoked as `/kami:kami` and needs Claude Code 2.1.142 or newer.

How do I install the skill in Claude Desktop?

Download kami.zip from the latest release, not GitHub's source archive. Then open Customize, Skills, plus, Create skill and upload the archive. To update, choose Replace in the skill card's menu.

Discussion

No questions or reviews yet.

Skills

A document pipeline skill: anything to markdown, markdown to clean html and publisher-grade docx, and html back to markdown

SkillExtended access919Repository stars

An agent skill that builds a presentation as a single HTML file: two visual styles, social covers and a presenter mode

SkillExtended access28.2KRepository stars

Learn from materials

learn-from-materials

A skill that turns books, PDFs, slides and documents into a traceable knowledge base and an interactive learning page with sources, maps and self-check

SkillExtended access1.1KRepository stars

Dashi PPT

Dashi PPT Skill

A skill that turns a document into a deck: a browser-editable HTML presentation with a per-page console and export to PPTX and PDF

SkillExtended access9.7KRepository stars

A skill that turns an article, report or notes into a deck of full-slide images and assembles them into a pptx

SkillExtended access7.1KRepository stars

The paper-spine skill takes a topic, materials and data through a scientific paper: literature, text, figures, review and Word, LaTeX and PDF files

SkillBroad access6KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialRepository starsMain difference
Kami (this entry)no12,001
LaTeX Document Skillno790builds PDFs from LaTeX out of a description of the document and compiles them
Dashi PPTno9,698makes presentations only: an editable HTML deck exported to PPTX and PDF

README in short

The description opens with the idea: layout rules and templates for agents that output PDF, PNG and PPTX. It continues with a gallery of examples in four languages, three ways to install, a language table with default fonts, sample requests and sections on the design: templates, diagrams, slides, code, verification, MCP and print. The author explains how the set grew out of his own investment reports. The repository holds translations of the description into six languages, an evals folder with ten test scenarios and agent instructions.

README badge

Original SKILL.md

---
name: 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) |
|---|---|---|---|---|

Report a problem

Foxx AIKami
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.