5 releases
Uses new Rust 2024
new 0.1.4 | Mar 24, 2025 |
---|---|
0.1.3 | Mar 24, 2025 |
0.1.2 | Mar 11, 2025 |
0.1.1 | Mar 10, 2025 |
0.1.0 | Mar 10, 2025 |
#59 in Development tools
497 downloads per month
21KB
391 lines
aider-script
aider-script is a CLI tool that streamlines using aider for common tasks, by allowing you to use reusable prompts templates which support being passed arguments when run.
- Define reusable prompt templates in Markdown
- Use variables in your prompt templates
- Specify in your template which files should automatically be loaded into context when running the prompt
- Commit the prompt templates to your repo to share with your team and refine them over time
For example you might have a template which adds an API route to your backend server, and it could take the URL pattern as an argument. You might have another template to add unit tests for a React component given the component name, and another which generates mock data for a third-party API call given the object schema name.
Table of Contents
Installation
Make sure you've installed and set up aider first.
Install using Cargo:
cargo install aider-script
Usage
Basic Usage
aider-script <template-file> [template-arguments...]
Example Template
Each prompt template is a markdown document with a frontmatter section (in YAML) which configures:
args
: the names of any arguments to be passed into the templateread
: files to be added to the LLM’s context as read-onlyedit
: files to be edited by aider
All of the config options are optional.
---
args:
- QUERY_NAME # Arguments to be interpolated into the template below
read:
- "src/schema.graphql" # Files to read into the LLM context
edit:
- "src/fixtures/mocks.ts" # Files to be edited by aider
---
# Generate mock data for {{ QUERY_NAME }}
Create a new file called `src/mocks/{{ QUERY_NAME | kebab }}.ts`. Add a new mock response object that matches the type definition for {{ QUERY_NAME }}.
Running the Template
# Basic usage
aider-script example.md myFunctionName
Arguments should be passed to the CLI
Preview the generated message
The --preview-message
lets you see the message that will be passed to aider without actually running it (handy for double checking you’ve got the template right).
# Preview without running
$ aider-script --preview-message example.md ListMyFavouritesQuery
Generated message:
------------------
# Generate mock data for ListMyFavouritesQuery
...
Template Syntax
Templates use tera templating syntax (see the example above). You can use variables from template arguments in your markdown.
Case Conversion Filters
aider-script provides several case conversion filters to transform strings:
Filter | Example output |
---|---|
camel |
fooBarBaz |
pascal |
FooBarBaz |
kebab |
foo-bar-baz |
snake |
foo_bar_baz |
Example usage:
Create a file called `{{ name | kebab }}.tsx` that exports a component called `{{ name | pascal }}`.
Tera also provides several built-in casing filters:
upper
: Converts a string to UPPERCASElower
: Converts a string to lowercasetitle
: Capitalizes each word inside a sentencecapitalize
: Returns the string with all its characters lowercased apart from the first char which is uppercased
See the Tera documentation for more details.
Frontmatter Configuration
The template's frontmatter can specify:
args
: Required template argumentsread
: Files to be passed as read-only to aideredit
: Files to be edited by aider
These are all optional.
Dependencies
~11–22MB
~341K SLoC