Open-source project
tw93/Kami avatar
tw93/Kami

tw93/Kami: layout rules and templates that turn agent chat into PDFs, slides and landing pages

👩‍🚒 Good content deserves good paper.

11,842 stars553 forksHTMLMIT

At a glance

What is it?
Kami is a skill plus plugin set that gives Claude Code, Codex, Cursor and other agents eight document templates, a landing-page system and layout checks. It is for people who want agent-written content delivered as a print-ready file, not a chat reply.
Who is it for?
Adopt Kami if your documents are produced by an agent already and you want the output to be a PDF, PNG, PowerPoint file or landing page rather than chat text. Do not adopt it if you need a deterministic, scriptable layout engine with a documented API and a rollback story; the README documents neither.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 6 days ago.
What is it written in?
Mainly HTML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Kami actually solves for agent-written documents

An agent that writes a resume, a one-pager or a slide deck usually returns text. Turning that text into something you can print, send or present is a separate job, and it is the job Kami takes over. The README states the project "gives AI agents templates and layout rules for documents and landing pages" and that it can "Create PDFs and PNGs, or export slides as editable PowerPoint files." The name is the giveaway: Kami (紙, かみ) is Japanese for paper.

The target user is specific. You already drive an agent such as Claude Code, Codex or Cursor, you already ask it for a resume, a research write-up, a formal letter or a talk deck, and you are tired of the result being a Markdown blob. Kami is not a typesetting program you run by hand. It is a skill the agent picks up, so the request stays conversational: the README lists prompts like make a one-pager for my startup, write a formal letter and design a slide deck for my talk. The repository describes itself as part of a trilogy, with Kaku (書く) for writing code and Waza (技) for drilling habits, and Kami for delivering documents.

One design decision is worth flagging early. The README says the skill "auto-triggers from natural requests, no slash command needed." That is convenient when it works and opaque when it does not: there is no documented way to force the skill, and no documented way to see why it declined to fire.

Templates, layout rules and the font fallback chain

Kami ships eight document templates: One-Pager, Long Doc, Letter, Portfolio, Resume, Slides, Equity Report and Changelog, plus a Landing Page system, in English, Chinese and Korean. The demo table in the README shows what that means in practice, including a two-page founder resume, a Chinese one-pager in a white print version, a Tesla Q1 2026 equity report, an eight-slide agent keynote, a recommendation letter and a seven-page Japanese portfolio.

The visual defaults are stated plainly: a warm parchment background of #f5f4ed, ink-blue accents of #1B365D, and serif fonts, with type size and spacing doing the work of separating titles, body text and notes. The README says you can adjust the defaults for your brand, and the optional brand profile is where that happens: create ~/.config/kami/brand.md with YAML frontmatter for fields such as name, role, email, brand color, language, page size and tone, plus a Markdown body for freeform notes. The precedence rule is explicit, and it is the right one: Kami uses these settings where the request leaves a choice open, and explicit instructions always take priority.

Diagrams are inline SVG, eighteen types according to the README, including a report-scale architecture board. The font story is the most interesting constraint. Large CJK fonts stay out of every package. Instead, skills/kami/scripts/ensure-fonts.sh recovers missing Chinese or Korean fonts into the user font directory, and in a repository checkout it copies the tracked fonts into the skill so templates load them locally before falling back to the jsDelivr CDN. That is a sensible size trade-off, but it means a first run on a clean machine can depend on a network fetch you did not initiate. The README also says Japanese and Korean are supported via language-specific font fallbacks and layout adjustments, with output checked individually, which is an honest admission that non-English, non-Chinese output is not guaranteed to be clean on the first pass.

Installing Kami as an agent skill and a first one-pager

The primary install path is the skills CLI. The README gives this exact command:

bash
npx skills add tw93/kami -a claude-code codex cursor -g -y

One copy lands in ~/.agents/skills, which the README calls the shared skills directory. Claude Code is symlinked in, and Codex, Cursor and any other agent that reads that directory picks Kami up as /kami. Updates go through npx skills update -g -y.

If you would rather use the host's own update command, the README documents a plugin route, namespaced as /kami:kami and requiring Claude Code v2.1.142 or newer:

bash
/plugin marketplace add tw93/kami
/plugin install kami@kami

For Codex the equivalent is codex plugin marketplace add tw93/kami followed by codex plugin add kami@kami, with updates via codex plugin marketplace upgrade kami and then codex plugin add kami@kami. Claude Desktop is a manual path: download the release asset kami.zip from the latest release, not GitHub's source ZIP, then open Customize > Skills > "+" > Create skill and upload it. To update there, click "..." on the skill card, choose Replace and upload the latest ZIP.

After install, there is nothing to invoke. Ask your agent for a one-pager, a resume or a slide deck, and the skill should trigger on its own. What you should see is a generated PDF or PNG for the document templates, and an editable PowerPoint file when you ask for slides. If you want your identity and brand to persist across documents, create ~/.config/kami/brand.md first; the README points to skills/kami/references/brand.example.md as the full template. On a machine without Chinese or Korean fonts, expect the first render to lean on the CDN fallback or on ensure-fonts.sh.

Where Kami is the wrong tool

Kami is a layer on top of an agent, so its failure modes are the agent's failure modes plus a few of its own. The README does not document rollback, so if a generated document is wrong there is no stated way to revert to a previous version; you regenerate. There is also no documented CLI for rendering a file you already have. If your content lives in a repository and you want a deterministic build step in CI, Kami does not advertise that path.

The language coverage is uneven by design. The README says the skill is "Optimized for English and Chinese," with Japanese and Korean supported through font fallbacks and layout adjustments, and output checked individually. That phrasing tells you the maintainers do not consider JA and KO output guaranteed. If your deliverables are Japanese or Korean and go out without review, treat that as unverified.

There is also a quiet network behaviour to be aware of. Kami runs a version check at most once a day, writes a marker in the local XDG cache directory, then resolves GitHub's latest public release. The README is explicit that it uploads no user document or task content and fails silently when offline or when no cache home is available. That is a reasonable design, but on a locked-down host with no XDG cache home you lose the notification, and on a metered or audited network you still make an outbound call. Finally, the repository is HTML-first and template-driven. If you need programmatic control over pagination, widow and orphan rules, or precise print marks, the README offers no interface for it.

Kami compared with Marp and hand-written HTML templates

The closest thing in the README to a named alternative is Marp, and it appears as a request rather than as a competing product: the prompt list includes "make this talk as a Marp deck" and the Japanese and Korean lists include Marp variants. That is the real difference in approach. Marp is a Markdown-to-slides converter with its own directives and a build you run yourself; the output is deterministic because you control the source and the command. Kami is the opposite arrangement: you describe the document in natural language, the agent chooses a template and applies layout rules, and the result is a PDF, PNG or PowerPoint file. You trade reproducibility for reach, because Kami also covers resumes, letters, portfolios, equity reports, changelogs and landing pages, which are not slide formats.

The second alternative is the one most teams already have: a hand-written HTML and CSS template with a headless browser or a print stylesheet. That gives you total control and a real diff in version control. What it does not give you is an agent that fills it in from a sentence, which is exactly the part Kami supplies. The honest split is that Kami is a content-to-document layer, not a rendering engine, and the rendering underneath it is not documented as a public interface.

Kami's own README frames the project as one of three by the same author, alongside Kaku for writing code and Waza for drilling habits. If you are already using those, the shared conventions are a reason to look at Kami; if you are not, that framing tells you nothing about whether the templates suit your brand.

Release cadence, licence and what an upgrade costs you

The repository is not archived and the last push was on 2026-09-20, the same day as the V1.16.0 release, so the project is current. Three releases are listed in the recent window: V1.16.0 "Honest Numbers" on 2026-09-20, V1.15.0 "Clearer Formulas" on 2026-09-06 and V1.14.0 "Quieter Pages" on 2026-08-30. That is a roughly two-week cadence across August and September, and the release names suggest the changes are about layout and content presentation rather than breaking API work.

Upgrade cost depends on which install path you chose, and the README gives a different command for each. The skills CLI route is npx skills update -g -y. The Claude Code plugin route is claude plugin update kami. The Codex plugin route is codex plugin marketplace upgrade kami followed by codex plugin add kami@kami. Claude Desktop has no command at all: you click "..." on the skill card, choose Replace and upload the latest ZIP. That last path is the one to weigh if you manage many machines, because it is manual per machine.

The licence is MIT, per the repository's LICENSE file and the badge in the README. In practical terms that is permissive: you can fork the templates and scripts, modify them and ship the result. The one thing the licence does not settle for you is the fonts. The README states that large CJK fonts stay out of every package and are recovered by skills/kami/scripts/ensure-fonts.sh or copied from a repository checkout, with a jsDelivr CDN fallback. If you redistribute a modified Kami, check the terms that apply to those font files separately; that is a question for your own review, not something the MIT text answers.

Editorial conclusion

Adopt Kami if your documents are produced by an agent already and you want the output to be a PDF, PNG, PowerPoint file or landing page rather than chat text. Do not adopt it if you need a deterministic, scriptable layout engine with a documented API and a rollback story; the README documents neither. Before committing, verify three things: that your agent actually reads ~/.agents/skills and exposes /kami, that ensure-fonts.sh can place the CJK fonts you need on your machine, and that the version check's XDG cache marker is acceptable on the host where you run it. The licence is MIT, so the templates and scripts can be forked and modified, but the large CJK fonts are deliberately excluded from every package and are fetched or copied separately, which is the boundary you inherit.

Frequently asked questions

How do I install tw93/Kami for Claude Code, Codex or Cursor?

Run npx skills add tw93/kami -a claude-code codex cursor -g -y. One copy lands in ~/.agents/skills, Claude Code is symlinked in, and other agents that read that directory pick Kami up as /kami. Update later with npx skills update -g -y.

Does Kami need a slash command, or does it trigger on its own?

The README says the skill auto-triggers from natural requests and that no slash command is needed, so prompts like make a one-pager for my startup or design a slide deck for my talk are enough. The plugin install route is namespaced as /kami:kami if you prefer the host's own command.

What file formats does Kami produce?

According to the README, Kami creates PDFs and PNGs, and exports slides as editable PowerPoint files. It also includes a landing-page system for web output.

How do I set my brand color, language and page size once instead of per document?

Create ~/.config/kami/brand.md with YAML frontmatter for fields such as name, role, email, brand color, language, page size and tone, plus a Markdown body for notes. Kami applies those settings where the request leaves a choice open, and explicit instructions in the request take priority.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. tw93/Kami on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/tw93-kami.svg)](https://hysenlabs.com/projects/tw93-kami)