A skill your agent uses when creating print formats or generating PDFs in Frappe v14-v16.

MITAuto-check passedDocuments & Office

Install Frappe Syntax Print

skills CLI
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-syntax-print -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-syntax-print --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/source/syntax/frappe-syntax-print .claude/skills/frappe-syntax-print && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
frappe-syntax-print
GitHub stars
188
Token cost
~3k tokens
SKILL.md length
760 words
Files
4 (incl. references)
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when creating print formats or generating PDFs in Frappe v14-v16.

  • Works in 7 steps: NEVER use {{ }} in Report Print Formats… → NEVER call frappe.get_doc() inside a {%… → NEVER put heavy business logic in Jinja… → …
  • Creating print formats
  • SKILL.md covers When to Use This Skill, Decision Tree: Which Print…, Print Format Types and Letter Head, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Frappe Syntax Print is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when creating print formats or generating PDFs in Frappe v14-v16. Covers Jinja print formats, Print Designer [v15+], Letter Head, PDF generation API (getpdf, downloadpdf), Report print formats ({%= %} syntax), page breaks, and print CSS patterns. Prevents common mistakes with template engine confusion and PDF rendering. Keywords: print format, PDF, getpdf, Jinja, Letter Head, print designer,, PDF not generating, print format broken, custom PDF, letter head, wkhtmltopdf error. wkhtmltopdf, WeasyPrint…

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/anti-patterns.md`, `references/jinja-print-formats.md` and `references/pdf-api.md`). Compatibility notes: Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.

It sits in Documents & Office, covering PDF. The repository describes itself as: 60 deterministic Claude AI skills for Frappe Framework & ERPNext v14-v16 development and operations. The licence is MIT.

When your agent uses it

  • Creating print formats
  • Generating PDFs in Frappe v14-v16

Example prompts

  • “/frappe-syntax-print”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. NEVER use {{ }} in Report Print Formats -- they use {%= %} (JS microtemplate)
  2. NEVER call frappe.get_doc() inside a {% for %} loop in templates -- causes N+1 queries
  3. NEVER put heavy business logic in Jinja templates -- move to Python and pass results
  4. NEVER hardcode page dimensions in CSS -- use .print-format class or relative units
  5. NEVER ignore the no_letterhead parameter when generating PDFs programmatically
  6. NEVER use Print Designer on v14 -- it requires v15+
  7. NEVER embed large base64 images in print templates -- use URLs with max-width: 100%

What it can do on your machine

Read from SKILL.md and the folder at commit 36cfa80. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python, html, javascript, css and json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.

    From compatibility in the SKILL.md frontmatter.

Context cost

Frappe Syntax Print loads about 3k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 140 tokens; SKILL.md has 760 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~140
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Impertio-Studio/Frappe_Claude_Skill_Package at commit 36cfa80, republished under its MIT licence (© Impertio-Studio). 760 words, ~2,993 tokens.

Download SKILL.mdSave it as .claude/skills/frappe-syntax-print/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
frappe-syntax-print
description
Use when creating print formats or generating PDFs in Frappe v14-v16. Covers Jinja print formats, Print Designer [v15+], Letter Head, PDF generation API (get_pdf, download_pdf), Report print formats ({%= %} syntax), page breaks, and print CSS patterns. Prevents common mistakes with template engine confusion and PDF rendering. Keywords: print format, PDF, get_pdf, Jinja, Letter Head, print designer,, PDF not generating, print format broken, custom PDF, letter head, wkhtmltopdf error. wkhtmltopdf, WeasyPrint, page-break, download_pdf.
compatibility
Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
license
MIT
metadata.author
OpenAEC-Foundation
metadata.version
3.0

Frappe Print Formats & PDF Generation

Deterministic reference for print formats, Letter Head, and PDF generation in Frappe v14/v15/v16.


When to Use This Skill

USE when:

  • Creating or modifying Print Formats (Jinja or JS)
  • Generating PDFs programmatically (get_pdf, download endpoints)
  • Configuring Letter Head (header/footer) for print output
  • Working with Print Designer (v15+)
  • Implementing page breaks, print CSS, or landscape layouts
  • Building Report Print Formats ({%= %} syntax)

DO NOT USE for:

  • General Jinja template syntax (emails, portals) -- see frappe-syntax-jinja
  • Client Script UI logic -- see frappe-syntax-clientscripts
  • Web views or portal pages -- see frappe-syntax-jinja

Decision Tree: Which Print Format Type?

Need a printable/PDF document?
├─ YES → Is it a Query/Script Report?
│        ├─ YES → Use JS Template ({%= %} microtemplate)
│        │        Set print_format_for = "Report"
│        └─ NO  → Need visual drag-and-drop editor?
│                  ├─ YES → On v15+?
│                  │        ├─ YES → Use Print Designer (WeasyPrint)
│                  │        └─ NO  → NOT available on v14. Use Jinja.
│                  └─ NO  → Need full layout control?
│                           ├─ YES → Use Jinja Print Format (custom_format=1)
│                           └─ NO  → Use Standard Print Format (auto layout)
└─ NO  → This skill does not apply.

Print Format Types

TypeEngineVersionWhen to Use
StandardAuto from DocType field layoutv14+No customization needed
JinjaServer-side Jinja2 (wkhtmltopdf)v14+Full layout control
JS TemplateClient-side microtemplatev14+Report print formats only
Print DesignerWeasyPrint / Chromev15+Visual drag-and-drop builder
Standard Print Format

ALWAYS the default. Frappe auto-generates layout from DocType fields. No code needed. Controlled via Print Settings and field print_hide property.

Jinja Print Format

Set custom_format = 1 on the Print Format document. Full Jinja2 with server-side rendering.

Context variables available in every Jinja Print Format:

VariableTypeContent
docDocumentThe document being printed
metaMetaDocType metadata
layoutlistField layout sections
letter_headstrRendered Letter Head HTML
footerstrRendered footer HTML
print_settingsdictPrint Settings configuration
frappemoduleFull frappe module access

Example — Minimal Jinja Print Format:

html
<h1>{{ doc.name }}</h1>
<p>Customer: {{ doc.customer_name }}</p>
<p>Date: {{ doc.posting_date | global_date_format }}</p>

<table class="table table-bordered">
  <thead>
    <tr><th>Item</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
  </thead>
  <tbody>
    {% for row in doc.items %}
    <tr>
      <td>{{ row.item_name }}</td>
      <td>{{ row.qty }}</td>
      <td>{{ frappe.utils.fmt_money(row.rate, currency=doc.currency) }}</td>
      <td>{{ frappe.utils.fmt_money(row.amount, currency=doc.currency) }}</td>
    </tr>
    {% endfor %}
  </tbody>
</table>

<p><strong>Grand Total:</strong> {{ frappe.utils.fmt_money(doc.grand_total, currency=doc.currency) }}</p>
JS Template (Report Print Formats)

ONLY for Query Reports and Script Reports. Uses {%= %} microtemplate syntax, NOT Jinja.

javascript
// In report's .js file
{%= row.item_name %}
{% if (row.qty > 10) { %}
  <strong>Bulk order</strong>
{% } %}

{% for (var i = 0; i < rows.length; i++) { %}
  <tr>
    <td>{%= rows[i].item_name %}</td>
    <td>{%= rows[i].qty %}</td>
  </tr>
{% } %}

CRITICAL: NEVER mix Jinja {{ }} and JS {%= %} syntax. They are completely separate template engines.

Print Designer (v15+ Only)
  • Separate app: bench get-app print_designer
  • Uses WeasyPrint (not wkhtmltopdf)
  • Visual drag-and-drop builder in the browser
  • NEVER attempt to use Print Designer on v14 -- it does not exist

Letter Head

Letter Head provides consistent header/footer across all print formats.

Configuration
FieldPurpose
source"Image" or "HTML"
contentHeader HTML (Jinja-rendered with doc context)
footerFooter HTML (Jinja-rendered, PDF only)
imageHeader image (when source = "Image")
alignImage alignment: Left, Center, Right

IMPORTANT: The footer field only displays in PDF output, never in browser print preview.

Letter Head in Jinja Templates
python
# Server-side: render Letter Head programmatically
from frappe.utils.print_format import render_letterhead_for_print

letterhead_html = render_letterhead_for_print(
    letter_head_name="My Company",
    doc=doc
)
Dynamic Letter Head Content

Letter Head content and footer fields support Jinja with doc context:

html
<!-- In Letter Head content field -->
<div style="text-align: right;">
  <strong>{{ doc.company }}</strong><br>
  Date: {{ doc.posting_date | global_date_format }}
</div>

PDF Generation API

See references/pdf-api.md for complete API reference.

Quick Reference
python
# Generate PDF bytes from HTML
from frappe.utils.pdf import get_pdf
pdf_bytes = get_pdf(html_string, options=None)

# Generate PDF from a specific document + print format
from frappe.utils.print_format import download_pdf
download_pdf(doctype, name, format=None, doc=None, no_letterhead=0)
Download Endpoints
# Single document PDF
GET /api/method/frappe.utils.print_format.download_pdf
    ?doctype=Sales Invoice
    &name=SINV-00001
    &format=My Print Format
    &no_letterhead=0

# Multiple documents in one PDF
GET /api/method/frappe.utils.print_format.download_multi_pdf
    ?doctype=Sales Invoice
    &name=["SINV-00001","SINV-00002"]
    &format=My Print Format
PDF Engine Selection (v15+)
EngineWhenConfig
wkhtmltopdfDefault on v14, fallback on v15+Default
Chromev15+ with Chromium installedpdf_generator = "chrome" on Print Format
WeasyPrintPrint Designer formats onlyAutomatic for Print Designer

ALWAYS use wkhtmltopdf on v14. On v15+, Chrome produces better CSS3 support.


Page Breaks & Print CSS

Page Break Classes
html
<!-- Force page break after this element -->
<div class="page-break"></div>

<!-- Or use CSS directly -->
<div style="page-break-after: always;"></div>

<!-- Page break before -->
<div style="page-break-before: always;"></div>
Print CSS Classes (Frappe Built-in)
ClassEffect
.print-formatContainer: max-width 8.3in, min-height 11.69in (A4 portrait)
.print-format.landscapeWidth 11.69in (A4 landscape)
.page-breakpage-break-after: always
.print-headingPrint title styling
.hidden-pdfHidden in PDF output only
.visible-pdfVisible in PDF output only
Show full SKILL.md (286 more words)Show less
python
# In hooks.py — inject header/footer into every PDF
pdf_header_html = "myapp.utils.get_pdf_header"
pdf_body_html = "myapp.utils.get_pdf_body"
pdf_footer_html = "myapp.utils.get_pdf_footer"
html
<!-- Header/footer elements in print format HTML -->
<div id="header-html">
  <span class="page"></span> of <span class="topage"></span>
</div>

<div id="footer-html">
  <p style="text-align: center; font-size: 9px;">
    Printed on {{ frappe.utils.nowdate() }}
  </p>
</div>
Print CSS Best Practices
css
/* ALWAYS use relative units for print widths */
@media print {
  .print-format {
    max-width: 100%;
    margin: 0;
    padding: 15mm;
  }

  /* Prevent table rows from splitting across pages */
  tr {
    page-break-inside: avoid;
  }

  /* Constrain images */
  img {
    max-width: 100%;
    height: auto;
  }
}

Custom App Print Formats

Ship a Print Format with Your App
myapp/
└── mymodule/
    └── print_format/
        └── my_custom_format/
            ├── my_custom_format.json   # Print Format doc
            └── my_custom_format.html   # Jinja template

In the JSON file, ALWAYS set:

json
{
  "doctype": "Print Format",
  "name": "My Custom Format",
  "doc_type": "Sales Invoice",
  "module": "My Module",
  "standard": "Yes",
  "custom_format": 1,
  "print_format_type": "Jinja"
}

ALWAYS set standard = "Yes" and module for app-shipped print formats. This ensures they are recognized as part of the app and not as site-level customizations.


Jinja Filters for Print Formats

FilterPurposeExample
global_date_formatFormat date per system settings{{ doc.posting_date | global_date_format }}
jsonSerialize to JSON string{{ doc.items | json }}
lenGet length{{ doc.items | len }}
intCast to integer{{ value | int }}
fltCast to float{{ value | flt }}
markdownRender Markdown to HTML{{ doc.description | markdown }}
absAbsolute value{{ value | abs }}
Register Custom Jinja Filters/Methods
python
# In hooks.py
jinja = {
    "methods": [
        "myapp.utils.jinja.my_custom_method"
    ],
    "filters": [
        "myapp.utils.jinja.my_custom_filter"
    ]
}
python
# myapp/utils/jinja.py
def my_custom_method(value):
    """Available as {{ my_custom_method(doc.field) }} in templates."""
    return value.upper()

def my_custom_filter(value, arg=None):
    """Available as {{ doc.field | my_custom_filter }} in templates."""
    return f"[{value}]"

Version Compatibility Matrix

Featurev14v15v16
Jinja Print FormatsYesYesYes
JS Report TemplatesYesYesYes
Standard Print FormatsYesYesYes
Letter Head (Image/HTML)YesYesYes
wkhtmltopdfDefaultFallbackFallback
Chrome PDF engineNoYesYes
WeasyPrintNoYesYes
Print Designer appNoYesYes
pdf_header_html hookYesYesYes
download_multi_pdfYesYesYes

Common Anti-Patterns

See references/anti-patterns.md for the complete list with fixes.

  1. NEVER use {{ }} in Report Print Formats -- they use {%= %} (JS microtemplate)
  2. NEVER call frappe.get_doc() inside a {% for %} loop in templates -- causes N+1 queries
  3. NEVER put heavy business logic in Jinja templates -- move to Python and pass results
  4. NEVER hardcode page dimensions in CSS -- use .print-format class or relative units
  5. NEVER ignore the no_letterhead parameter when generating PDFs programmatically
  6. NEVER use Print Designer on v14 -- it requires v15+
  7. NEVER embed large base64 images in print templates -- use URLs with max-width: 100%

Reference Files

© Impertio-Studio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/source/syntax/frappe-syntax-print of Impertio-Studio/Frappe_Claude_Skill_Package.

  • SKILL.md
  • references/anti-patterns.md
  • references/jinja-print-formats.md
  • references/pdf-api.md

Open the folder on GitHubat commit 36cfa80

Compare with similar skills

Frappe Syntax Print next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Frappe Syntax Print compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Frappe Syntax Print this skillImpertio-Studio/Frappe_Claude_Skill_Package188—~3kAutomated safety check: PassMIT
Frontend Textbooksonepixelaway/frontend-textbooks106—~3.5kAutomated safety check: PassMIT
Illustrator Preflightie3jp/illustrator-mcp-server156—~2.2kAutomated safety check: PassMIT
Kicadaklofas/kicad-happy1.4k1 repos~20kAutomated safety check: PassMIT
Concrete Beam Designh30190/HJPLUS_Taiwan_Architect_KB158—~1.5kAutomated safety check: PassCC-BY-SA-4.0
Concrete Column Designh30190/HJPLUS_Taiwan_Architect_KB158—~1.8kAutomated safety check: PassCC-BY-SA-4.0

Similar skills

  • Frontend Textbooks

    onepixelaway/frontend-textbooks

    Turns a manuscript into a designed US Letter HTML book with a matching PDF, original cover art and checks that the manuscript text is preserved.

    106 GitHub stars~3.5k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Illustrator Preflight

    ie3jp/illustrator-mcp-server

    Run comprehensive pre-press preflight checks on Adobe Illustrator documents using illustrator-mcp tools.

    156 GitHub stars~2.2k tokensUpdated 9 days ago
    Documents & OfficeAuto-check passed
  • Kicad

    aklofas/kicad-happy

    Analyze KiCad projects and PDF schematics: schematics, PCB layouts, Gerbers, footprints, symbols, netlists, and design rules.

    1.4k GitHub starsUsed in 1 repo~20k tokens
    Documents & OfficeAuto-check passed
  • Concrete Beam Design

    h30190/HJPLUS_Taiwan_Architect_KB

    This skill should be used when an architect or structural designer needs to verify PDF-backed concrete beam requirements such as minimum beam depth, T-beam effective flange width, minimum shear…

    158 GitHub stars~1.5k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Concrete Column Design

    h30190/HJPLUS_Taiwan_Architect_KB

    This skill should be used when an architect or structural designer needs to verify PDF-backed concrete column requirements such as longitudinal reinforcement ratio, minimum longitudinal-bar count…

    158 GitHub stars~1.8k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Concrete Wall Design

    h30190/HJPLUS_Taiwan_Architect_KB

    This skill should be used when an architect or structural designer needs to verify PDF-backed concrete wall requirements such as minimum wall thickness, high-shear minimum reinforcement, bar…

    158 GitHub stars~1.8k tokensUpdated yesterday
    Documents & OfficeAuto-check passed

More from Impertio-Studio/Frappe_Claude_Skill_Package

All 61 skills in this repo
  • Frappe Ops Website Deploy

    Impertio-Studio/Frappe_Claude_Skill_Package

    Deploy HTML/CSS websites to ERPNext/Frappe (v15/v16) as Web Pages via the REST API.

    188 GitHub stars~2.5k tokensUpdated 22 days ago
    Auto-check passed
  • Frappe Agent Architect

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when designing multi-app Frappe architectures, deciding whether to split functionality into separate apps, or implementing cross-app communication patterns.

    188 GitHub stars~2.8k tokensUpdated 22 days ago
    Auto-check passed
  • Frappe Agent Debugger

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when debugging Frappe errors, using bench console for live inspection, analyzing tracebacks, or reading Frappe log files.

    188 GitHub stars~2.9k tokensUpdated 22 days ago
    Auto-check passed
  • Frappe Agent Interpreter

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when receiving vague or unclear ERPNext/Frappe development requests that need interpretation.

    188 GitHub stars~3.2k tokensUpdated 22 days ago
    Auto-check passed
  • Frappe Agent Migrator

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when migrating a Frappe app between major versions, detecting breaking API changes, or resolving post-migration errors.

    188 GitHub stars~2.8k tokensUpdated 22 days ago
    Auto-check: notes
  • Frappe Agent Validator

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when reviewing or validating Frappe/ERPNext code against best practices and common pitfalls.

    188 GitHub stars~2.8k tokensUpdated 22 days ago
    Auto-check passed

Questions about Frappe Syntax Print

What does Frappe Syntax Print do?

A skill your agent uses when creating print formats or generating PDFs in Frappe v14-v16. Frappe Syntax Print is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when creating print formats or generating PDFs in Frappe v14-v16.

When should I use Frappe Syntax Print?

Frappe Syntax Print fits situations like: creating print formats; generating PDFs in Frappe v14-v16.

How do I install Frappe Syntax Print in Claude Code?

Run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-syntax-print -a claude-code`. Or copy the skill folder (skills/source/syntax/frappe-syntax-print in Impertio-Studio/Frappe_Claude_Skill_Package) into .claude/skills/frappe-syntax-print in your project. Claude Code loads it when a task matches its description.

How do I install Frappe Syntax Print in Codex?

Run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-syntax-print -a codex`. Or copy the skill folder (skills/source/syntax/frappe-syntax-print in Impertio-Studio/Frappe_Claude_Skill_Package) into .agents/skills/frappe-syntax-print in your project. Codex loads it when a task matches its description.

Can I use Frappe Syntax Print in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-syntax-print -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/frappe-syntax-print, .gemini/skills/frappe-syntax-print, .github/skills/frappe-syntax-print and .opencode/skills/frappe-syntax-print in your project.

What does Frappe Syntax Print need to run?

SKILL.md names no scripts, command-line tools or credentials: Frappe Syntax Print is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16..

Does Frappe Syntax Print access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Frappe Syntax Print safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Frappe Syntax Print use?

Frappe Syntax Print is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Frappe Syntax Print use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.6k tokens, read only when the agent opens those files.

What are the alternatives to Frappe Syntax Print?

Skills that share tags, products or a category with Frappe Syntax Print: Frontend Textbooks (onepixelaway/frontend-textbooks, 106 stars), Illustrator Preflight (ie3jp/illustrator-mcp-server, 156 stars), Kicad (aklofas/kicad-happy, 1.4k stars) and Concrete Beam Design (h30190/HJPLUS_Taiwan_Architect_KB, 158 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Frappe Syntax Print?

Impertio-Studio (a GitHub organization) maintains it in Impertio-Studio/Frappe_Claude_Skill_Package, which has 188 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on September 17, 2026.

Source: Impertio-Studio/Frappe_Claude_Skill_Package on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.