Introduction
AutoDev is a ‘development enviroment configration’ generation tool.
AutoDev poses to exploit Large Language Models (LLMs) to let users generate Nix configuration files by simply passing the path to a project, as so:
$ just run /path/to/project
AutoDev generates a flake.nix
file containing the configuration of the development enviroment for the given project.
The enviroment can be accessed running the following command:
$ nix develop
The user will now be in a temporary development shell set up specifically for that project.
Once the user has stopped working on the project, they can exit the development shell running the following command:
$ exit
And all the project specific tools will no longer be available.
Motivation
The setup of the development enviroment (dev env) is a problem faced often in CS projects.
It is ideal that any developer working on a team should use the same dev env, as in the set of tools that are needed to work on that project.
As with any repetitive action, automation is to be desired.
The Nix package manager enables to define, using the nix functional programming language, the characteristics of a development enviroment, such as what tools should be installed and much more, being the Nix language turing complete.
Thanks to the reproduciblility enabled by the Nix ecosystem any developer running the dev env for a given project can be assured that it is identical (in tools, versions, ecc.) to the dev enviroment of any other team member.
Also thanks to the Nix ecosystem these project specific tools are tied to the temporary project specific dev env and once the user exits it, these tools do not pollute the user enviroment or any other project enviroments.
Despite the power of Nix defined development enviroments, writing such configuration files is often an annoying hurdle.
AutoDev looks to solve this problem by leveraging the capacity of LLMs to understand natural language.
Models
The core part of the project is in testing the capabilities of various LLMs to perform as dev env configuration generators.
The following models have been tested during the projects development:
- llama3
- qwen3
- smollm2
- phi4-mini
- deepseek-r1
- mistral
Details on each of the models can be found at https://ollama.com/library/<model_name>
, by replacing
Back to index |
Next Chapter |