I recently wrote an Espanso trigger named :llm(⋯)
that pipes the contents of my clipboard to Simon Willison’s llm
CLI tool and expands the trigger to llm
’s output in a custom Obsidian callout. This regex trigger expects a keyword (like summarise
, simplify
, or translate
) between its parenthesis, and transforms this keyword to a prompt that summarises, simplifies, or translates whatever text I current have within my clipboard.
After frequent use of this trigger, I noticed that I mostly use :llm(summarise)
. To simplify my workflow, I decided to transfer summarisation to a dedicated :summary
trigger so that I don’t have to rely on providing and capturing keywords using regex:
- trigger: ":summary" replace: "> [!llm] _\"{{title}}\"_\n> {{summary}}" vars: - name: clipboard type: clipboard - name: summary type: shell params: cmd: "echo $ESPANSO_CLIPBOARD | llm -m 'gpt-4o' -s \ 'Summarise the provided text into a concise UK English paragraph. \ Ensure the summary captures essential information.'" - name: title type: shell params: cmd: "echo $ESPANSO_SUMMARY | llm -m 'gpt-4o-mini' -s \ 'Generate a short one-sentence title that accurately reflects \ the main idea of the summary. Use UK English.'"