Agent skill

Typst Authoring

by shepherdjerred in shepherdjerred/monorepo

This skill should be used when the user asks to "write Typst", "create a Typst document", "format in Typst", "convert to Typst", "Typst syntax", "Typst template", "Typst math", "Typst table", or…

GPL-3.0Auto-check passedResearch & Science

Install Typst Authoring

skills CLI
$ npx skills add shepherdjerred/monorepo --skill typst-authoring -a claude-code

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

GitHub CLI
$ gh skill install shepherdjerred/monorepo typst-authoring --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/shepherdjerred/monorepo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/dotfiles/dot_agents/skills/typst-authoring .claude/skills/typst-authoring && 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
typst-authoring
GitHub stars
112
Token cost
~2k tokens
SKILL.md length
561 words
Files
7 (incl. references)
Skills in repo
63
Repo updated
First seen
Licence
GPL-3.0

At a glance

This skill should be used when the user asks to "write Typst", "create a Typst document", "format in Typst", "convert to Typst", "Typst syntax", "Typst template", "Typst math", "Typst table", or…

  • Works in 7 steps: Fraction parens consumed: (a+b)/c… → context required for introspection:… → Counter starts at zero: Step before… → …
  • Asks to write Typst
  • SKILL.md covers Three Modes at a Glance, Essential Syntax Quick Reference, Set Rules and Show Rules and Page Layout Essentials, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Typst Authoring is an agent skill from shepherdjerred/monorepo. This skill should be used when the user asks to "write Typst", "create a Typst document", "format in Typst", "convert to Typst", "Typst syntax", "Typst template", "Typst math", "Typst table", or works with .typ files. Provides comprehensive Typst markup, scripting, math, layout, and styling reference for authoring documents. Also use proactively when generating .typ output files (e.g., in deep-research reports).

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/advanced.md`, `references/markup-and-layout.md` and `references/math.md`).

It sits in Research & Science, covering Deep research. The repository describes itself as: Monorepo for all of my projects. The licence is GPL-3.0.

When your agent uses it

  • Asks to write Typst
  • Create a Typst document
  • Format in Typst
  • Convert to Typst

Example prompts

  • “write Typst”
  • “create a Typst document”
  • “format in Typst”
  • “/typst-authoring”

Workflow steps

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

  1. Fraction parens consumed: (a+b)/c removes the parens. Double them: ((a+b))/c.
  2. context required for introspection: counter.get(), state.get(), query(), measure(), here().
  3. Counter starts at zero: Step before display. step()/update() return content that must be placed.
  4. Custom footer kills numbering: Set footer: means numbering: is ignored.
  5. Show rules bypass defaults: Transformational show rules lose numbering, spacing, block behavior.
  6. Math multi-letter: area in math = function name. Use "area" for text.
  7. # in math: Access code variables with #: $ #x < 17 $.

What it can do on your machine

Read from SKILL.md and the folder at commit da14ae9. 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 typst).

    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.

Context cost

Typst Authoring loads about 2k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 108 tokens; SKILL.md has 561 words of instructions outside code blocks.

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

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 shepherdjerred/monorepo at commit da14ae9, republished under its GPL-3.0 licence (© shepherdjerred). 561 words, ~2,039 tokens.

Download SKILL.mdSave it as .claude/skills/typst-authoring/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
typst-authoring
description
This skill should be used when the user asks to "write Typst", "create a Typst document", "format in Typst", "convert to Typst", "Typst syntax", "Typst template", "Typst math", "Typst table", or works with .typ files. Provides comprehensive Typst markup, scripting, math, layout, and styling reference for authoring documents. Also use proactively when generating .typ output files (e.g., in deep-research reports).

Typst Authoring Reference

Typst is a modern typesetting language with three syntactic modes: markup (default), code (#), and math ($). Understanding mode transitions is the core skill for productive authoring.

Three Modes at a Glance

  • Markup mode (default) — Text, *bold*, _italic_, = Heading, - list, + ordered, / term: def
  • Code mode (enter with #) — Variables, functions, control flow, imports. End with ; to return to markup.
  • Math mode (enter with $) — $inline$ (no spaces) or $ block $ (spaces). Single letters = italic variables; multi-letter = function names.

Essential Syntax Quick Reference

ElementSyntax
Bold / Italic*bold* / _italic_
Heading= H1, == H2, === H3
Lists- bullet, + numbered, / Term: def
Linkhttps://... or #link("url")[text]
Label / Reference<name> / @name
Code expression#expr
Line break\
Comment// line or /* block */
Non-breaking space~
Dashes-- (en), --- (em)
Escape\#, \@, \$, \*, etc.

Set Rules and Show Rules

Set rules configure defaults for functions:

typst
#set text(font: "New Computer Modern", size: 11pt)
#set par(justify: true)
#set heading(numbering: "1.")
#set page("a4", margin: (x: 2.5cm, y: 2.5cm))

Set rules are scoped to their enclosing content block [...].

Show rules transform rendering:

typst
#show heading: set text(navy)              // show-set (composable)
#show heading: it => emph(it.body)         // transformational
#show: columns.with(2)                     // everything rule
#show heading.where(level: 1): set align(center)  // filtered

Selectors: element functions, .where(field: val), "text", regex(...), <label>, or bare show: for everything.

Prefer show-set rules over transformational rules for composability.

Page Layout Essentials

typst
#set page("a4", margin: (x: 2.5cm, y: 2.5cm), numbering: "1")
#set page(header: [Title #h(1fr) Author], footer: context [
  #h(1fr) #counter(page).display("1/1", both: true)
])
#set page(columns: 2)          // page-level columns (preferred)
#colbreak()                    // manual column break
#pagebreak(weak: true)         // page break

When a custom footer is set, the numbering parameter is silently ignored — display page numbers manually via counter(page).display().

Code Mode Essentials

Enter with #. Key types: none, auto, bool, int, float, str, content, array, dictionary, length, ratio, fraction, function.

Single-element array: (1,) (trailing comma required). Empty dict: (:).

typst
#let x = 42
#if x > 10 [big] else [small]
#for item in items [#item, ]
#let greet(name, excited: false) = [Hello #name#if excited [!]]

Functions are pure. Use .with() for partial application. Import with #import "file.typ": item or #import "@preview/pkg:version": item.

Math Mode Essentials

typst
$a^2 + b^2 = c^2$                    // inline
$ sum_(i=0)^n a_i = integral f(x) dif x $  // block

$ frac(a, b), sqrt(x), root(3, x) $  // fractions, roots
$ mat(1, 2; 3, 4) $                   // matrix (semicolons = rows)
$ vec(a, b, c) $                      // vector
$ cases(1 "if" x > 0, 0 "else") $    // cases

Greek: alpha, beta, gamma, pi, etc. Blackboard bold: NN, ZZ, RR, CC. Accents: hat(x), dot(x), tilde(x), arrow(x). Styles: bold(A), cal(A), bb(N), frak(P).

Equation numbering: #set math.equation(numbering: "(1)"). Reference with $ ... $ <label> and @label.

Tables Quick Reference

typst
#table(
  columns: (1fr, auto, auto),
  table.header([*Name*], [*Age*], [*City*]),
  [Alice], [30], [NYC],
  [Bob], [25], [LA],
)

Key features: table.cell(colspan: 2), table.cell(rowspan: 3), table.hline(), table.vline(). Alignment/fill/stroke accept arrays (cycle per column) or (x, y) => functions. Use table for data (accessible), grid for layout.

Figures and Bibliography

typst
#figure(image("photo.jpg", width: 80%), caption: [A photo.]) <fig>
@fig shows the photo.

#bibliography("refs.bib", style: "ieee")
@key, @key[p.~7], #cite(<key>, form: "prose")
#footnote[Note text]
Show full SKILL.md (264 more words)Show less

Key Gotchas

  1. Fraction parens consumed: (a+b)/c removes the parens. Double them: ((a+b))/c.
  2. context required for introspection: counter.get(), state.get(), query(), measure(), here().
  3. Counter starts at zero: Step before display. step()/update() return content that must be placed.
  4. Custom footer kills numbering: Set footer: means numbering: is ignored.
  5. Show rules bypass defaults: Transformational show rules lose numbering, spacing, block behavior.
  6. Math multi-letter: area in math = function name. Use "area" for text.
  7. # in math: Access code variables with #: $ #x < 17 $.

Additional Resources

Reference Files

For detailed syntax, patterns, and examples, consult:

  • references/markup-and-layout.md — Full markup syntax table, headings, lists, labels, references, escaping, page setup, margins, headers/footers, columns, spacing, alignment, block/box
  • references/scripting.md — Code mode, types, let bindings, destructuring, control flow, functions, closures, argument sinks, operators, methods, imports, modules
  • references/math.md — Math mode, symbols, Greek letters, subscripts/superscripts, fractions, roots, matrices, vectors, alignment, equation numbering, delimiters, cases, accents, font styles, custom operators
  • references/tables-figures-bibliography.md — Tables (columns, headers, cell spans, alignment, fill, stroke, grid vs table), figures, images, captions, floating figures, bibliography, citations, footnotes
  • references/advanced.md — Custom functions, templates, counters, state, query, context keyword, numbering patterns, metadata, measure, packages
  • references/visualizations.md — Visualization packages: diagrams (fletcher, CeTZ, diagraph, pintorita), charts (lilaq), timelines (timeliney), callout boxes (gentle-clues). Design principles for reader-friendly documents
Typst Document Template

Standard document setup for reports and research output:

typst
#set page(margin: (x: 2.5cm, y: 2.5cm), numbering: "1")
#set text(font: "New Computer Modern", size: 11pt)
#set par(justify: true, leading: 0.65em)
#set heading(numbering: "1.1")
#show link: it => text(fill: rgb("#2563eb"), it)
Special Character Escaping in Typst Content

Characters requiring \ escape in content text: #, @, $, <, >. When converting Markdown to Typst, escape these in body text but not inside code blocks.

Markdown-to-Typst Conversion
MarkdownTypst
# Heading= Heading
**bold***bold*
*italic*_italic_
1. item+ item
[text](url)#link("url")[text]
> quote#blockquote[text] (custom helper)
[1] refs#super[1]

© shepherdjerred, GPL-3.0. 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 6 other files (references) in packages/dotfiles/dot_agents/skills/typst-authoring of shepherdjerred/monorepo.

  • SKILL.md
  • references/advanced.md
  • references/markup-and-layout.md
  • references/math.md
  • references/scripting.md
  • references/tables-figures-bibliography.md
  • references/visualizations.md

Open the folder on GitHubat commit da14ae9

Compare with similar skills

Typst Authoring 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.

Typst Authoring compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Typst Authoring this skillshepherdjerred/monorepo112—~2kAutomated safety check: PassGPL-3.0
GitHub Deep Researchbytedance/deer-flow83k5 repos~1.3kAutomated safety check: PassMIT
Deep Research WorkflowTokenRhythm/opensquilla7.1k—~1.3kAutomated safety check: PassApache-2.0
X Researchrohunvora/x-research-skill1.2k1 repos~1.6kAutomated safety check: PassNone
Deep Researchsanjay3290/ai-skills43110 repos~683Automated safety check: NotesApache-2.0
ResearchWeizhena/Deep-Research-skills2.3k3 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • GitHub Deep Research

    bytedance/deer-flow

    Researches a GitHub repository over four rounds using the GitHub API and web search, then writes a structured markdown report with timeline, metrics and Mermaid diagrams.

    83k GitHub starsUsed in 5 repos~1.3k tokens
    Research & ScienceAuto-check passed
  • Deep Research Workflow

    TokenRhythm/opensquilla

    Runs multi-round research in three stages with a persisted state file, evidence tracking and a long-form report with per-claim citations.

    7.1k GitHub stars~1.3k tokensUpdated 3 days ago
    Research & ScienceAuto-check passed
  • X Research

    rohunvora/x-research-skill

    General-purpose X/Twitter research agent. An agent skill from rohunvora/x-research-skill.

    1.2k GitHub starsUsed in 1 repo~1.6k tokens
    Research & ScienceAuto-check passed
  • Deep Research

    sanjay3290/ai-skills

    Execute autonomous multi-step research using Google Gemini Deep Research Agent.

    431 GitHub starsUsed in 10 repos~683 tokens
    Research & ScienceAuto-check: notes
  • Research

    Weizhena/Deep-Research-skills

    Conduct preliminary research on a topic and generate research outline.

    2.3k GitHub starsUsed in 3 repos~1.1k tokens
    Research & ScienceAuto-check passed
  • Horizontal-Vertical Deep Research

    KKKKhazix/khazix-skills

    Runs a two-axis deep research method on a product, company, concept or person: its full history over time, compared with peers today, delivered as a typeset PDF report.

    21k GitHub stars~2.1k tokensUpdated 7 days ago
    Research & ScienceAuto-check passed

More from shepherdjerred/monorepo

All 63 skills in this repo
  • Bun Runtime Best Practices

    shepherdjerred/monorepo

    Bun runtime APIs and current operational patterns for files, processes, modules, networking, databases, tests, and deployment.

    112 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Bun Test Patterns

    shepherdjerred/monorepo

    Current Bun test runner guidance for discovery, isolation, parallelism, sharding, changed tests, mocks, timers, snapshots, coverage, DOM Testing Library, and integration teardown.

    112 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Bun Workspaces

    shepherdjerred/monorepo

    Current Bun workspace guidance for isolated and hoisted linkers, catalogs, filters, scripts, dependency classes, lockfiles, lifecycle trust, caches, publishing, TypeScript package exports, and…

    112 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Deep Research

    shepherdjerred/monorepo

    This skill should be used when the user asks to "deep research", "research this topic", "investigate thoroughly", "do a deep dive on", "comprehensive research on", "find everything about", "survey…

    112 GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • Figma Use

    shepherdjerred/monorepo

    This skill should be used when the user asks to "create a Figma design", "design in Figma", "make a Figma mockup", "create an app icon", "design UI", "render JSX to Figma", "export from Figma"…

    112 GitHub stars~946 tokensUpdated today
    Auto-check passed
  • Fish Helper

    shepherdjerred/monorepo

    Current Fish shell scripting, functions, abbreviations, completions, variables, events, configuration, plugins, testing, and safety guidance.

    112 GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Typst Authoring

What does Typst Authoring do?

This skill should be used when the user asks to "write Typst", "create a Typst document", "format in Typst", "convert to Typst", "Typst syntax", "Typst template", "Typst math", "Typst table", or…. Typst Authoring is an agent skill from shepherdjerred/monorepo.typ files.

When should I use Typst Authoring?

Typst Authoring fits situations like: asks to write Typst; create a Typst document; format in Typst; convert to Typst.

How do I install Typst Authoring in Claude Code?

Run `npx skills add shepherdjerred/monorepo --skill typst-authoring -a claude-code`. Or copy the skill folder (packages/dotfiles/dot_agents/skills/typst-authoring in shepherdjerred/monorepo) into .claude/skills/typst-authoring in your project. Claude Code loads it when a task matches its description.

How do I install Typst Authoring in Codex?

Run `npx skills add shepherdjerred/monorepo --skill typst-authoring -a codex`. Or copy the skill folder (packages/dotfiles/dot_agents/skills/typst-authoring in shepherdjerred/monorepo) into .agents/skills/typst-authoring in your project. Codex loads it when a task matches its description.

Can I use Typst Authoring 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 shepherdjerred/monorepo --skill typst-authoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/typst-authoring, .gemini/skills/typst-authoring, .github/skills/typst-authoring and .opencode/skills/typst-authoring in your project.

What does Typst Authoring need to run?

SKILL.md names no scripts, command-line tools or credentials: Typst Authoring is instructions for the agent only.

Does Typst Authoring 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 Typst Authoring 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 Typst Authoring use?

Typst Authoring is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Typst Authoring use?

About 2k tokens (SKILL.md is roughly 8.2k 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 10k tokens, read only when the agent opens those files.

What are the alternatives to Typst Authoring?

Skills that share tags, products or a category with Typst Authoring: GitHub Deep Research (bytedance/deer-flow, 83k stars), Deep Research Workflow (TokenRhythm/opensquilla, 7.1k stars), X Research (rohunvora/x-research-skill, 1.2k stars) and Deep Research (sanjay3290/ai-skills, 431 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Typst Authoring?

shepherdjerred (a GitHub user) maintains it in shepherdjerred/monorepo, which has 112 GitHub stars. The repository holds 63 skills in this directory. The repository was last updated on October 8, 2026.

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