knap
Skill0 starsChanged 3 months agoMITView on GitHub
Render Markdown from templates and structured data using Knap CLI. Use when the user asks to apply a Knap template, turn JSON or CSV data into notes, batch-generate Markdown files, or format Defuddle output into a note.
- Installs packages
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 4 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use Knap CLI to render Markdown templates with variables, filters, and logic.
- Very specific: line 10
If not installed: npm install -g knap (requires Node.js 20 or later).
- Very specific: line 12
Run knap --help for available commands and options.
- Distinctive: line 22
Use the lists to find names, then request individual help for syntax, parameters, and examples with expected output.
- Very specific: line 53
Use {{ variable }} for values, | for filters, and {% ...
- Very specific: line 68
Use yaml_property for complete frontmatter properties so values are quoted and indented correctly.
- Distinctive: line 70
Check a template before rendering:
- Distinctive: line 91
Create one file per CSV row, JSON array object, or JSON file in a folder:
- Very specific: line 98
Use --data articles.json for an array or --data ./articles for a folder of JSON objects.
- Very specific: line 100
Use --dry-run to validate and list output paths without writing files.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Knap
Use Knap CLI to render Markdown templates with variables, filters, and logic.
If not installed: npm install -g knap (requires Node.js 20 or later). Alternatively, use npx knap.
Run knap --help for available commands and options. Discover the language through the CLI's offline reference:
knap help syntax
knap help filters
knap help filter date
knap help tags
knap help tag forUse the lists to find names, then request individual help for syntax, parameters, and examples with expected output.
Usage
Render a template with JSON variables:
knap render template.md --data article.json -o note.mdSupply a template and data inline:
knap render -t '# {{ title | trim }}' --data-json '{"title":"Hello"}'Override a variable or pipe JSON data:
knap render template.md --data article.json --set 'title=Custom title'
cat article.json | knap render template.md --data -Data must be a JSON object; its properties become template variables. --set overrides literal top-level keys with strings. Use JSON for nested objects, arrays, numbers, and booleans.
Choose one template source (file, -t, or stdin) and one data source (--data or --data-json). Only one input can read stdin. Without a template file or -t, Knap reads the template from stdin.
Output defaults to stdout. -o creates parent directories and overwrites the destination after rendering succeeds. Errors exit with status 1; diagnostics go to stderr. Warnings can accompany successful output.
Templates
Use {{ variable }} for values, | for filters, and {% ... %} for logic. For example, save this as template.md:
---
{{ title | yaml_property:"title" }}
{{ tags | yaml_property:"tags" }}
---
# {{ title | trim }}
{% if author %}
By {{ author }}
{% endif %}
{{ content }}Use yaml_property for complete frontmatter properties so values are quoted and indented correctly. The CLI includes standard filters, but does not supply Web Clipper browser variables, selectors, prompts, or DOM-dependent HTML filters. Supply variables through JSON.
Check a template before rendering:
knap validate template.mdValidation checks syntax, filter names, and static filter arguments without data or file output. It does not check variable existence, runtime values, or dynamic arguments; render with real data to check runtime behavior. Diagnostics go to stderr and include relevant help commands.
Defuddle pipeline
Extract a web page as JSON with Markdown content, then render it into a note:
defuddle parse https://example.com/article --md --json \
| knap render template.md --data - -o note.mdDefuddle's JSON properties, such as title and content, become template variables directly.
Batch rendering
Create one file per CSV row, JSON array object, or JSON file in a folder:
knap batch template.md --data articles.csv --output-dir notes \
--filename '{{ title | safe_name }}.md'Use --data articles.json for an array or --data ./articles for a folder of JSON objects. CSV headers become variable names and values remain strings. Piped data defaults to JSON; add --format csv for piped CSV.
Use --dry-run to validate and list output paths without writing files. Existing files require --overwrite, including during a dry run. Duplicate output names within a batch are errors even with --overwrite.
Filename templates must produce a single filename with its extension, without directories. Use safe_name for data-derived names. Without --filename, Knap preserves source JSON basenames or numbers CSV rows and array items as 1.md, 2.md, and so on.
Trending
Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data
Other versions4 projects use a version of this.
Word for word · 3
- kepano/obsidian-skills★ 49k100% same
- codetesla51/skills★ 3100% same
- dharmikbhesaniya/obsidian-skill★ 0100% same
Edited · 0
None found.
Wrote their own version · 1
- remigius-labs/knap-skill★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository21 other files it gives its agents.
- aso-appstore-screenshots [Generate ASO-optimised App Store screenshots]/CLAUDE.mdCLAUDE.md
- apple-designSkill
- aso-appstore-screenshotsSkill
- defuddleSkill
- design-examplesSkill
- ergonomieSkill
- grillingSkill
- grill-meSkill
- huashu-designSkill
- humanizerSkill
- json-canvasSkill
- karpathy-guidelinesSkill
- macos-app-iconSkill
- nothing-designSkill
- obsidian-basesSkill
- obsidian-cliSkill
- obsidian-markdownSkill
- shadcn-ui-component-managerSkill
- systematic-bug-diagnosis-loopSkill
- vibe-coding-lexiconSkill
- youtube-analyzerSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

