8.1k★by cpojer
orf-digest – OpenClaw Skill
orf-digest is an OpenClaw Skills integration for coding workflows. On-demand ORF news digest in German. Use when the user says 'orf', 'pull orf', or 'orf 10'. Focus on Austrian politics (Inland) and international politics (Ausland) + major headlines; exclude sports. Send each item as its own message (Title + Age + Link). Then generate a Nano Banana image in a cartoon ZiB studio with the anchor presenting the news, plus subtle Easter eggs based on the selected stories.
Skill Snapshot
| name | orf-digest |
| description | On-demand ORF news digest in German. Use when the user says 'orf', 'pull orf', or 'orf 10'. Focus on Austrian politics (Inland) and international politics (Ausland) + major headlines; exclude sports. Send each item as its own message (Title + Age + Link). Then generate a Nano Banana image in a cartoon ZiB studio with the anchor presenting the news, plus subtle Easter eggs based on the selected stories. OpenClaw Skills integration. |
| owner | cpojer |
| repository | cpojer/orf |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @cpojer/orf |
| last updated | Feb 7, 2026 |
Maintainer

name: orf-digest description: "On-demand ORF news digest in German. Use when the user says 'orf', 'pull orf', or 'orf 10'. Focus on Austrian politics (Inland) and international politics (Ausland) + major headlines; exclude sports. Send each item as its own message (Title + Age + Link). Then generate a Nano Banana image in a cartoon ZiB studio with the anchor presenting the news, plus subtle Easter eggs based on the selected stories."
ORF Digest (news.orf.at)
Command format
Interpret a user message that starts with orf as a request for an ORF News digest.
Supported forms:
orf→ default 5 itemsorf <n>→ n items (max 15)orf inland/orf ausland→ bias selectionorf <n> inland|ausland→ both
Source + scope
- Primary source:
news.orf.at(German) - Prefer: Inland politics, Ausland / international politics, and major headlines.
- Exclude: sports (Sport).
Output requirements
- Do not send any extra commentary/preamble/epilogue.
- Send results as individual messages.
- Each item message must be exactly:
- first line: the headline (German)
- second line:
<age>(e.g.45m ago,6h ago,2d ago) - third line: the ORF link
- After the item messages, send one final message with the generated image.
- The image must visually incorporate the pulled news on the wraparound studio video wall using 4–6 distinct story panels.
- Panel layout (must):
- TOP: big bold text (1–2 words, ALL CAPS). You must invent this.
- MIDDLE: smaller text (3–6 words) that describes the story. You must invent this.
- The two lines must not form a connected sentence.
- Avoid repeating the same words between the two lines.
- BOTTOM: exactly 1–2 simple icons (no maps, no busy collages)
- Icon variety: make icons distinct across panels whenever possible.
- Do not reuse the same icon pair across multiple panels.
- Avoid overusing generic icons (e.g. globe + pin); only use them when no better match exists.
- Readability: keep text minimal and large enough to render cleanly.
- No logos/watermarks.
- If the chat provider requires non-empty text for media, use a minimal caption
..
Procedure
- Parse
nand optionalfocus(inland|ausland) from the user message. - Run
python3 skills/orf-digest/scripts/orf.py --count <n> --focus <focus> --format json. - Send each returned item as its own message (3-line format).
- Generate the ZiB studio mood image via Nano Banana:
- Build prompt from items:
python3 skills/orf-digest/scripts/orf.py --count <n> --focus <focus> --format json | node skills/orf-digest/scripts/zib_prompt.mjs - Generate:
skills/orf-digest/scripts/generate_zib_nano_banana.sh ./tmp/orf-zib/zib.png - Send image as final message.
- Build prompt from items:
If fetching/parsing fails or returns 0 items:
- Use the browser tool to open
https://news.orf.at/, pick N non-sport headlines by judgment, and send them in the same 3-line format. - Still generate a ZiB studio image with a few generic political-news Easter eggs.
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- Do **not** send any extra commentary/preamble/epilogue. - Send results as **individual messages**. - Each item message must be exactly: - first line: the headline (German) - second line: `<age>` (e.g. `45m ago`, `6h ago`, `2d ago`) - third line: the ORF link - After the item messages, send **one final message** with the generated image. - The image must visually incorporate the pulled news on the wraparound studio video wall using **4–6 distinct story panels**. - **Panel layout (must):** - TOP: big bold text (1–2 words, ALL CAPS). You must invent this. - MIDDLE: smaller text (3–6 words) that describes the story. You must invent this. - The two lines must **not** form a connected sentence. - Avoid repeating the same words between the two lines. - BOTTOM: exactly 1–2 simple icons (no maps, no busy collages) - **Icon variety:** make icons distinct across panels whenever possible. - Do not reuse the same icon pair across multiple panels. - Avoid overusing generic icons (e.g. globe + pin); only use them when no better match exists. - **Readability:** keep text minimal and large enough to render cleanly. - No logos/watermarks. - If the chat provider requires non-empty text for media, use a minimal caption `.`.
FAQ
How do I install orf-digest?
Run openclaw add @cpojer/orf in your terminal. This installs orf-digest into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/cpojer/orf. Review commits and README documentation before installing.
