| name | setup-hebrew-correspondence |
| description | First-run setup for Hebrew correspondence โ verify Typst, WeasyPrint and poppler are present, install the vendored David Libre faces, and capture the sender identity used to sign letters and emails. Run once per machine, or when a render comes out in the wrong font. Triggers on "set up Hebrew correspondence", "Hebrew font missing", "my Hebrew PDF is in the wrong font". |
Set up Hebrew correspondence on this machine
1. Toolchain
for t in typst weasyprint pdffonts pdftotext pdftoppm; do
printf "%-12s " "$t"; command -v $t >/dev/null && echo ok || echo MISSING
done
pdffonts, pdftotext and pdftoppm come from poppler-utils. They are not
optional here โ they are the only way to check a render actually worked.
2. Fonts
David Libre is vendored in this plugin at ${CLAUDE_PLUGIN_ROOT}/assets/fonts
(SIL OFL, redistribution permitted; licence alongside it). Typst picks it up via
--font-path, so a system install is not required and the letter skill does not
depend on one.
Install system-wide as well if you want it available to other applications:
mkdir -p ~/.local/share/fonts/david-libre
cp ${CLAUDE_PLUGIN_ROOT}/assets/fonts/DavidLibre-*.ttf ~/.local/share/fonts/david-libre/
fc-cache -f && fc-match "David Libre"
fc-match returning something other than a David Libre face means the install
did not take โ fontconfig answers with its best substitute rather than failing,
so a wrong answer here looks like a right one.
3. Identity
Letters and business email are signed from a profile. Ask the user once for:
Hebrew name, Latin name, role, organisation, ืขืืกืง ืืืจืฉื / company number if
business, address, phone, email. Write it to
~/.claude-user-data/hebrew-correspondence/sender.json.
Do not invent placeholder identity values and do not commit a filled-in profile
to any repository.
Report
State which tools were missing, whether David Libre resolved, and where the
profile was written. If the user already has an RTL signature configured via the
rtl-email plugin, say so and offer to import it rather than asking again.