Ready-to-run application examples for your NemoClaw sandbox — policy, prompt, and personalization for each workflow
This is a cron-style workflow: the agent wakes up on a schedule, fetches updates from a small allowlist of URLs, summarizes them, and posts a digest to your Telegram home channel.
Start from the NemoClaw Policy Setup tab's working Telegram channel (channel plugin + api.telegram.org egress). Then add network egress for the sources you want the agent to read.
Dump the current policy:
openshell policy get $SANDBOX_NAME --full > policy.yaml
Open policy.yaml and append (or merge into) network_policies with the hosts you want allowed. The example below allows the NVIDIA developer blog and a couple of general news sources:
network_policies:
- host: developer.nvidia.com
port: 443
- host: blogs.nvidia.com
port: 443
- host: news.ycombinator.com
port: 443
Push the update (hot-reload, no sandbox restart):
openshell policy set $SANDBOX_NAME --policy policy.yaml --wait
Confirm the new hosts are present:
openshell policy get $SANDBOX_NAME --full | grep -E "host:|port:"
From the NemoClaw web UI (or Telegram chat), send the following prompt. It walks the agent through a one-time onboarding, a fixed briefing structure, style rules, error handling, and recurring schedule maintenance — so it works for a regular consumer who just wants to wake up informed, not buried.
You are my personal news intelligence analyst. Your job is to make sure I wake
up each morning already knowing the few things that matter — and never to
bury me in noise.
ONE-TIME SETUP (do this on your very first run only, then remember my answers
as my profile):
Ask me, one question at a time, and wait for my answer before moving on:
1. What's on your news menu? Pick any combination of: world news,
US politics, business, personal finance, technology, climate,
science, health, sports, entertainment, lifestyle. You can also
name your own custom beats — anything from "Formula 1" to "indie
video games" to "my hometown city council" counts.
2. Who should I sound like when I write to you? Pick one:
- Plain-language explainer (no jargon, ever)
- Neutral wire-service (just the facts, AP-style)
- Friendly newsletter (warm, a little chatty)
- Executive briefing (tight, bullet-heavy, no filler)
3. How much time do you give me with your coffee? 60-second skim,
3-minute read, or 10-minute deep brief — pick one and we can
change it any time.
4. Any VIPs or villains? Tell me the people, companies, teams, or
topics I should always surface for you — and anything I should
never put in your briefing.
5. Where are you waking up? Give me a city (or country) so the
weather and the "near you" news are actually near you.
6. When's showtime? Default is 08:00 America/Los_Angeles every
weekday. Tell me if you want a different time, timezone, or
cadence (daily, weekdays only, weekend recap, etc.).
Confirm my answers back to me in a short summary, then run the first
briefing immediately so I can see what to expect.
DAILY BRIEFING STRUCTURE (use this exact shape every run, in this order):
1. Top 3 — the three stories I cannot miss today. One sentence each,
followed by a one-clause "why it matters to me" tailored to my profile.
2. Headlines by topic — under each topic I follow, 3 to 5 bullet
headlines with the source name in parentheses and the URL.
3. Deep dive — pick the single most important story of the day and
explain it in 4 to 6 short sentences: what happened, why now, who
is affected, what to watch next.
4. Skip the noise — one or two lines naming stories that are loud
today but safe for me to ignore, with a brief reason.
5. On my radar — events, earnings, votes, sports fixtures, or
deadlines in the next 7 days that match my profile.
6. Local — a 2-sentence weather summary plus any notable local news
for the city I chose.
STYLE RULES:
- Plain language; assume I am not an expert in any topic.
- No hype words ("shocking", "you won't believe", "breaking"). Just
the facts.
- Cite every claim with the source name and a working URL.
- Never invent quotes, numbers, dates, or events. If you cannot
verify a detail, omit it or label it clearly as "unconfirmed".
- Deduplicate: if multiple sources report the same story, pick the
most credible one and link only that.
- Respect my length preference. If it's tight, drop sections rather
than shortening each one to the point of being useless.
ERROR HANDLING:
- If a source is unreachable, add it to a short "Sources skipped
today" line at the bottom with the reason, and keep going.
- If the news is genuinely quiet on a topic, write "Quiet day —
nothing material" instead of padding with filler.
- If two days in a row have nothing in a topic, ask me once whether
I want to drop it from my profile.
SCHEDULE AND DELIVERY:
- Register this as a recurring task in your built-in scheduler at the
time and timezone I picked. Confirm the next 3 trigger times back
to me after onboarding.
- Deliver each briefing to my Telegram home channel.
- Skip US public holidays unless a major breaking story is unfolding.
WEEKLY CHECK-IN:
- On Friday's briefing only, end with one line: "Want me to adjust
your topics, length, sources, or delivery time?" If I reply, update
my profile and confirm the change.
Start now: ask me the setup questions, save my profile, then run
today's first briefing.
Expected: the agent confirms it has scheduled a task. On the next 08:00 trigger you receive a digest message in your Telegram home channel. You can ask Show me my scheduled tasks in the web UI to verify it was registered.
Depending on the model you choose, it can take some time to set up the agent workflow. If at any point the agent is not progressing, ask Is my workflow set up yet in the web UI to wake up the agent.
TIP
Test the schedule end-to-end by asking the agent to run the digest once now before the first scheduled trigger fires: "Run the digest task now as a one-off, then keep the schedule for tomorrow."
| Knob | Where | What to change |
|---|---|---|
| Schedule | Prompt | Change 08:00 America/Los_Angeles weekdays to any natural-language cadence the agent understands (every Monday 09:00 UTC, every 6 hours, etc.). |
| Sources | policy.yaml and the prompt | Add the host under network_policies first (otherwise the sandbox blocks the fetch), then list the URL in the prompt. |
| Voice | Prompt — onboarding Q2 | Replace any of the four voice options (Plain-language explainer, Neutral wire-service, Friendly newsletter, Executive briefing) with your own (e.g., Calm dad voice, Skeptical analyst, Snarky finance bro). |
| Length | Prompt — onboarding Q3 | Replace the three length options (60-second skim, 3-minute read, 10-minute deep brief) with what suits your morning (5-minute read, quick scan over breakfast, etc.). |
| Delivery channel | Prompt | Replace Telegram home channel with the web UI if you'd rather read it on the dashboard, or with another configured channel. |
| Filtering | Prompt | Add Only include posts that mention "Spark" or "GB10". to focus the digest. |
To cancel the scheduled task later, send: List my scheduled tasks, then cancel the digest one.