Tools I am using: Aider+Anthropic and Rye
I have radically changed my workflows in the last few months.
Aider is AI pair programming in your terminal and Rye is my new driver for Python development.
I have a keen interest in the future of work and the automation of what I think of as “knowledge work.” Here I share my latest work setup for Python. Please add your own favorite tools in the comments. I am still experimenting with LLM-based tooling for Lisp languages.
Aider
Aider is a command-line tool for code refactoring and bug fixing, leveraging AI capabilities to improve code quality and development efficiency. It integrates with version control systems to understand the project’s history and provide contextual suggestions. Aider can analyze the codebase, identify potential issues, and recommend or automatically apply fixes, streamlining the development process and enhancing code maintainability. Aider documentation
Rye
Rye is a Python package manager and resolver designed to simplify dependency management and streamline the Python development workflow. It offers features like:
• Dependency Resolution: Efficiently resolves and installs package dependencies, ensuring compatibility and minimizing conflicts.
• Environment Management: Supports the creation and management of isolated environments, similar to tools like virtualenv and pipenv.
• User-Friendly CLI: Provides a straightforward command-line interface for managing packages and environments.
• Project Configuration: Facilitates the definition and maintenance of project-specific configurations and dependencies.
Rye is particularly useful for maintaining clean and reproducible development environments, making it easier to manage Python projects. Rye documentation
Work flow
I have Emacs and VSCode configured to run Rye project targets and unit tests.
After you install Aider:
pip install aider-chat
You can just run aider
on the command line. By default it looks for environment variables for commercial LLM hosts or a local Ollama server, for example:
export ANTHROPIC_API_KEY=<key>
export OPENAI_API_KEY=<key>
export OLLAMA_API_BASE=http://127.0.0.1:11434
It handles use cases like naming an existing function and asking for something similar with a new argument, new functionality, different functionality, etc. It shows git diffs of any changes it wants to make. The first time I used Aider, in ten minutes I added two new features to my project and generated test data and unit tests.
I find both Rye and Aider to make development very fast and pleasant.