Swiss RSS Aider Config
Aider configuration optimized for Swiss RSS, an RSS web feeds swiss army knife. This setup enables efficient Python development with modern tooling (uv package manager, ruff linter, pytest) while maintaining clean git history through automatic commits.
Configuration Overview
This configuration sets up Aider for a Python RSS feed processing project with the following key features:
**Focused file scope**: Automatically watches core project files (source, config, README)**Auto-commit workflow**: Commits changes automatically with author attribution**Integrated linting**: Uses ruff via uv for automatic Python code fixes**Test-ready**: Configured for pytest (manual trigger)**Developer experience**: Dark mode, cache optimization, minimal diffs in outputInstructions
File Watching Strategy
Configure Aider to focus on these core project files:
`src/swiss_rss/__init__.py` - Main source module`pyproject.toml` - Python project configuration`README.md` - Project documentationThis keeps the context focused on the most frequently edited files while allowing manual addition of others as needed.
Cache and Performance Settings
Enable aggressive caching to reduce API costs and improve responsiveness:
Enable prompt caching to reuse common contextSet 3 keepalive pings to maintain cache warmthDisable update checks to avoid interruptionsGit Integration
Set up automatic git workflow:
Enable auto-commits after each successful changeAllow dirty commits (commit even with unstaged changes)Attribute commits to both author and committerDo NOT attribute the commit message author (keeps messages clean)Disable gitignore filtering (trust existing .gitignore)Linting Workflow
Configure automatic Python linting with ruff:
Set lint command: `uv run ruff check --fix` for Python filesEnable auto-lint to run after every code changeThis ensures code style consistency without manual interventionTesting Strategy
Configure pytest for manual test execution:
Set test command: `uv run pytest`Disable auto-test (tests run on explicit request)This allows developers to control when tests run during iterationDisplay Preferences
Optimize the development interface:
Enable dark mode for comfortable extended sessionsHide diffs in chat output (keep focus on conversation)Show minimal output to reduce noiseExample Usage
**Initial setup:**
```bash
Install aider in your Python environment
pip install aider-chat
Navigate to your swiss-rss project
cd /path/to/swiss-rss
Copy this configuration as .aider.conf.yml
Aider will automatically load it on startup
```
**Typical workflow:**
```
User: Add a function to parse RSS feed dates
Aider: [Makes changes to src/swiss_rss/__init__.py]
Aider: [Automatically runs ruff to fix style]
Aider: [Automatically commits with message "Add RSS date parsing function"]
User: /test
Aider: [Runs pytest to validate changes]
```
**Working with additional files:**
```
User: /add src/swiss_rss/parser.py
Aider: Added src/swiss_rss/parser.py to the chat
User: Refactor date parsing into the parser module
Aider: [Works with both files, commits changes]
```
Key Constraints
**No update checks**: `check-update: false` prevents interruptions during sessions**No lint/test by default**: Manual `/lint` and `/test` commands available but not automatic**Watch-files enabled**: Detects external changes to monitored files**Cache-first**: Optimized for cost reduction through prompt cachingNotes
This configuration assumes `uv` is installed and available in your environmentRuff must be configured in `pyproject.toml` for the lint command to work properlyPytest configuration should also be in `pyproject.toml` or `pytest.ini`The file list should be expanded as the project grows beyond the core module