Skip to content

Lemonode

You describe what you want covered in one sentence: "Chicago weekends with the kids, every Friday at 7am" or "Iran–Israel daily briefing, primary sources, deep" or "Musicals & Live concerts near Paris, every week".

Core trick

Three managed agents share a persistent memory store per beat, and an editor agent applies learned relevance rules before emailing each issue.

Tags

Description

You describe what you want covered in one sentence: "Chicago weekends with the kids, every Friday at 7am" or "Iran–Israel daily briefing, primary sources, deep" or "Musicals & Live concerts near Paris, every week". A Beat Designer agent (Sonnet 4.6) turns the brief into a structured spec, asking at most one or two clarifying questions only when a dimension is genuinely ambiguous. A Sources Scout agent (Sonnet 4.6) discovers and verifies 10–25 sources spanning at least six distinct domains, leaning on a recipe catalogue (Google News RSS, Reddit JSON, HN Algolia, RSS feedparser) before resorting to generic web search. On the cadence you set, an Editor agent (Opus 4.7) reads the latest content, applies your beat's learned relevance rules, and drafts a polished issue that ships to your inbox via Mailgun. The whole editorial loop runs inside Claude Managed Agents - three sub-agents, two memory stores per beat plus one global, an environment with python3.12 + node20 + feedparser + beautifulsoup4 + requests. Wasp owns auth, the dashboard, scheduling (pg-boss), email dispatch, and a live transcript view that polls agent.events so you can watch the Designer think. The split is deliberate: Wasp's Postgres holds product data; memory stores hold the agent's brain. Three example beats - a hyper-local one, a topical-global one, and a crossed beat - prove the personalisation is real and not a wrapper. Live Demo: https://pb.lemonode.pl Sample Account: login: hello@lemonode.pl pass: claude123!@# You can register with your own email & configure your own personal beats, or can login on sample account with already configured beats, to preview everything - from scheduling, adding new beats, to exploring already delivered emails.
panpawka/personal-beats★ 00 forksTypeScriptMITCreated Apr 25, 2026 · last push Apr 26, 2026

README excerpt

# Personal Beats

**A personal newsroom-of-one. You describe a beat in one sentence. An editorial agent designs the spec, scouts the sources, drafts the issue, and emails it on a schedule.**

> *Tell me what you care about, how often, and how deep. I'll be your personal newsroom.*

Live: <https://pb.lemonode.pl>

Submission for the [Built with Opus 4.7: a Claude Code hackathon](https://cerebralvalley.ai/events/~/e/built-with-4-7-hackathon).

---

## Why this exists

Newsletters are written for an imaginary average reader. Personalized news apps optimize for engagement, not usefulness. They cannot take a brief like *"kids activities in Wrocław on weekends, in English"* or *"Iran–Israel situation, daily, with primary sources"*. Local journalism has collapsed in most places, and niche beats never existed at all for most topic/place pairs.

Claude Managed Agents removes the hard parts: long-running reasoning, real code execution, web access, persistent memory across runs. That makes a per-user, per-beat editorial agent plausible for the first time.

---

## The core unit: a "beat"

A beat is:

- a **topic** (fuzzy: *"kids activities", "Iran war", "AI agent frameworks", "Wrocław news"*)
- an optional **geography** (city, region, country, global)
- a **cadence** (cron schedule or on-demand)
- a **depth** (brief / standard / deep)
- an **output language** (ISO code)
- **learned relevance rules** that sharpen each issue

Each beat produces its own newsletter, delivered by email.

---

Team