Configuration¶
Distill is configured via .distill.toml. The file is searched in order:
.distill.tomlin the current working directory~/.config/distill/.distill.toml
Environment variables and CLI flags override TOML values.
Minimal config¶
This uses the built-in 90+ RSS feeds and default settings. Everything else is optional.
Full reference¶
[user] — Identity¶
Injected into LLM prompts so Claude tailors the digest to you.
[output]¶
[intake] — Reading digest¶
[intake]
use_defaults = true # include built-in 90+ feeds
target_word_count = 800 # digest length
model = "claude-sonnet-4-6" # LLM model
publishers = ["obsidian"] # output format
# Custom RSS feeds (added on top of defaults)
rss_feeds = [
"https://blog.example.com/feed",
"https://newsletter.example.com/rss",
]
# Or point to a file with one URL per line
feeds_file = "my-feeds.txt"
# Or import from your RSS reader
opml_file = "subscriptions.opml"
# Optional sources
browser_history = false
substack_blogs = []
[journal] — Dev journal¶
Generated from Claude Code / Codex CLI sessions.
[journal]
style = "dev-journal" # dev-journal | tech-blog | team-update | building-in-public
target_word_count = 600
model = "claude-sonnet-4-6"
memory_window_days = 7
[blog] — Blog posts¶
Synthesized from journal entries.
[blog]
target_word_count = 1200
include_diagrams = true # Mermaid diagrams
model = "claude-sonnet-4-6"
platforms = ["obsidian"] # obsidian | ghost | markdown | postiz
[sessions]¶
[sessions]
sources = ["claude", "codex"]
include_global = false # scan ~/.claude, ~/.codex
since_days = 2
[[projects]] — Project context¶
Tell Claude about your projects so it can reference them intelligently.
[[projects]]
name = "MyApp"
description = "A React Native mobile app for habit tracking"
url = "https://github.com/you/myapp"
tags = ["react-native", "mobile"]
[[projects]]
name = "DataPipe"
description = "ETL pipeline processing 10M events/day on AWS"
tags = ["python", "aws", "data"]
[discovery] — Active web search¶
Searches the web for recent content about your topics. Requires ANTHROPIC_API_KEY.
[discovery]
topics = ["AI agents", "LLM evaluation", "Claude MCP"]
people = ["Simon Willison", "Hamel Husain"]
max_results_per_query = 5
max_age_days = 3
[social] — Brand hashtags¶
[server]¶
[notifications]¶
[notifications]
enabled = true
slack_webhook = "https://hooks.slack.com/services/..."
ntfy_url = "https://ntfy.sh"
ntfy_topic = "distill"
[intelligence]¶
Environment variables¶
Any config value can be overridden via environment variable. See the full environment variable reference.
The most important one: