Skip to content

Configuration

Customize Neuron Daily Newsletter Automation to match your preferences and schedule. The system is designed to work perfectly out-of-the-box, but offers extensive customization options.

Quick Configuration

Most users only need to adjust these basic settings:

Change when automation runs:

# Edit ~/.config/neuron-automation/config.py
AUTOMATION_TIMES = [
    "05:30",  # Early morning
    "06:00",  # Primary time  
    "06:30",  # Late catch
    "07:00"   # Final safety net
]

Customize which days:

# 0=Monday, 6=Sunday
ENABLED_DAYS = [0, 1, 2, 3, 4]  # Weekdays only
# ENABLED_DAYS = [0, 1, 2, 3, 4, 5, 6]  # Every day

Blacklist behavior:

# How long to wait before showing links again
RECENT_LINK_DAYS = 1  # Skip links opened yesterday

# Auto-blacklist after opening
AUTO_BLACKLIST_AFTER_OPENING = True

Configuration File Location

Find your config file at:

Platform Location
Linux ~/.config/neuron-automation/config.py
macOS ~/.config/neuron-automation/config.py
Windows %USERPROFILE%\.config\neuron-automation\config.py

Essential Settings

🕐 Scheduling Configuration

# When to run automation (24-hour format)
AUTOMATION_TIMES = ["05:30", "06:00", "06:30", "07:00"]

# Which days (0=Monday, 6=Sunday)
ENABLED_DAYS = [0, 1, 2, 3, 4]  # Weekdays only

# Timezone (auto-detected by default)
TIMEZONE = "auto"  # or "America/New_York", "Europe/London", etc.

🌐 Browser Configuration

# Chrome browser options
CHROME_OPTIONS = [
    "--no-sandbox",           # Required for some systems
    "--disable-dev-shm-usage" # Prevents memory issues
]

# Keep browser open after automation
BROWSER_PERSISTENCE = True

# Headless mode (no GUI)
HEADLESS_MODE = False  # Set True for server environments
# Days to wait before reshowing links
RECENT_LINK_DAYS = 1

# Auto-blacklist opened links
AUTO_BLACKLIST_AFTER_OPENING = True

# Maximum links to open per run
MAX_LINKS_PER_RUN = 50

# Skip patterns (URLs containing these)
SKIP_LINK_PATTERNS = [
    "advertisement",
    "promo", 
    "sponsor"
]

📝 Logging Configuration

# Logging level
LOG_LEVEL = "INFO"  # DEBUG, INFO, WARNING, ERROR

# Log file retention (days)
LOG_RETENTION_DAYS = 30

# Max log file size (MB)
MAX_LOG_SIZE_MB = 10

Advanced Configuration

Custom URL Filtering

# Advanced link filtering
LINK_FILTER_CONFIG = {
    'min_url_length': 10,
    'max_url_length': 500,
    'allowed_domains': [],     # Empty = allow all
    'blocked_domains': [       # Block these domains
        'ads.example.com',
        'tracking.example.com'
    ],
    'require_https': False     # Only allow HTTPS URLs
}

Performance Tuning

# Performance settings
PERFORMANCE_CONFIG = {
    'page_load_timeout': 30,    # Seconds to wait for page load
    'max_retries': 3,          # Retry attempts on failure
    'retry_delay': 5,          # Seconds between retries
    'concurrent_tabs': False   # Open tabs simultaneously
}

Database Configuration

# SQLite database settings
DATABASE_CONFIG = {
    'db_path': '~/.config/neuron-automation/data/links.db',
    'backup_enabled': True,
    'backup_frequency': 7,     # Days between automatic backups
    'vacuum_frequency': 30     # Days between database optimization
}

Configuration Profiles

Switch between different configurations easily:

Development Profile

class DevelopmentConfig(Config):
    LOG_LEVEL = "DEBUG"
    ENABLED_DAYS = [0, 1, 2, 3, 4, 5, 6]  # Every day
    AUTOMATION_TIMES = ["09:00"]  # Single test time
    HEADLESS_MODE = False

Production Profile

class ProductionConfig(Config):
    LOG_LEVEL = "INFO" 
    ENABLED_DAYS = [0, 1, 2, 3, 4]  # Weekdays only
    AUTOMATION_TIMES = ["05:30", "06:00", "06:30", "07:00"]
    BROWSER_PERSISTENCE = True

Server Profile

class ServerConfig(Config):
    LOG_LEVEL = "WARNING"
    HEADLESS_MODE = True      # No GUI on servers
    BROWSER_PERSISTENCE = False
    CHROME_OPTIONS = [
        "--no-sandbox",
        "--disable-dev-shm-usage", 
        "--headless",
        "--disable-gpu"
    ]

Switch profiles:

# At the end of config.py
ACTIVE_CONFIG = ProductionConfig  # Change this line

Environment Variables

Override settings with environment variables:

# Set environment variables
export NEURON_LOG_LEVEL="DEBUG"
export NEURON_HEADLESS_MODE="true"
export NEURON_AUTOMATION_TIMES="06:00,07:00"

# Run with custom settings
neuron-automation

Validation & Testing

Validate Configuration

# Check configuration syntax
neuron-automation --check-config

# Test with current settings
neuron-automation --dry-run

# View effective configuration
neuron-automation --show-config

Reset to Defaults

# Reset all settings to defaults
neuron-automation --reset-config

# Reset specific sections
neuron-automation --reset-config --section=scheduling

Troubleshooting Configuration

Common Issues

Configuration Syntax Error

If you see Python syntax errors:

# Validate syntax
python -m py_compile ~/.config/neuron-automation/config.py

# Reset to working configuration
neuron-automation --reset-config

Times Not Working

If automation doesn't run at scheduled times:

# Check system service status
systemctl --user status neuron-automation.timer

# View service logs  
journalctl --user -u neuron-automation.service

Browser Issues

If Chrome doesn't open or behaves strangely:

# Test browser configuration
neuron-automation --test-browser

# Reset browser settings
neuron-automation --reset-config --section=browser


Next Steps

Neuron Daily Newsletter Automation

Why This Exists: Reading the Neuron Daily newsletter is a great way to start the day, but manually clicking through all the article links takes time. This automation opens everything at once, so you can spend your morning reading instead of clicking. Built collaboratively with Claude AI to solve a real daily workflow need.

If this saves you time too, give it a ⭐ and let us know how it works for you!

Cross-platform automation system that automatically opens the latest Neuron Daily newsletter with all article links in separate tabs every weekday morning.

Supported Platforms: Linux, macOS, Windows