Skip to content

Daily Briefings

Daily briefings summarize recently captured atoms and show citations back to source atoms. They are designed for catching up on what changed in your knowledge base.

The daily briefing task:

  1. Looks for atoms created since the last successful briefing run.
  2. Uses an LLM to identify important themes and related context.
  3. Writes a short briefing with citation markers.
  4. Stores the briefing and citation rows.
  5. Emits a briefing-ready WebSocket event when a new briefing is available.

If there are no new atoms in the window, Atomic does not create a new briefing. It still advances the last-run timestamp so the quiet period does not repeatedly generate empty summaries.

Fresh databases seed these settings:

SettingDefault
task.daily_briefing.enabledtrue
task.daily_briefing.interval_hours24

The scheduled task runs per database on the server. This matters in multi-database setups: each database has its own briefing state.

Terminal window
curl -X POST http://localhost:8080/api/briefings/run \
-H "Authorization: Bearer <token>"

If a briefing is generated, the response contains the briefing and citations. If no new atoms are available, the route can return no content.

Terminal window
curl http://localhost:8080/api/briefings/latest \
-H "Authorization: Bearer <token>"
curl http://localhost:8080/api/briefings?limit=20 \
-H "Authorization: Bearer <token>"
curl http://localhost:8080/api/briefings/<briefing-id> \
-H "Authorization: Bearer <token>"
  • If no briefing appears, add atoms and run the task after the server has processed them.
  • If generation fails, check the configured wiki model/provider because briefings use the wiki-model path.
  • If self-hosting multiple databases, verify you are viewing the database that received the new atoms.