AI-powered Makefile command execution
Project description
🤖 auto-make
Makefiles without writing Makefiles.
auto-make is a Python-based command-line tool that leverages a local Large Language autModel (LLM) to interpret your natural language commands and execute the correct Makefile target.
Tired of grep "deploy" Makefile? Just run automake "deploy the app to staging" and let the AI do the work.
✨ Key Features
- Natural Language Commands: Run
maketargets using plain English. No more memorizing target names. - Local First: Integrates with local LLMs via Ollama for privacy and offline access.
- User-Friendly CLI: A clean, simple interface built with
Typer. - Configurable: Set your preferred LLM model and other options in a simple
config.tomlfile. - Modern Python Stack: Built with
uv,smolagents, andpre-commitfor a robust development experience.
⚙️ How It Works
auto-make follows a simple, powerful workflow to translate your instructions into actions:
- Parse Command: The CLI captures your natural language instruction.
- Read Makefile: It finds and reads the
Makefilein your current directory. - Consult AI: It sends the
Makefilecontents and your instruction to a local LLM (via Ollama). - Identify Target: The LLM analyzes the context and identifies the single most likely
makecommand to run. - Execute: The identified command is executed, and its output is streamed directly to your terminal.
🚀 Getting Started
Prerequisites
- Python 3.11+
- uv (recommended for installation)
- An active Ollama server with a running model (e.g.,
ollama run qwen3:0.6b).
Installation
Install auto-make using uvx (the uv equivalent of npx):
uvx automake-cli
This command temporarily installs and runs the automake CLI tool in an isolated environment.
First-Time Setup
After installation, run the initialization command once to set up Ollama and download the required model:
automake init
This command will:
- Verify that Ollama is installed and running
- Download the configured LLM model if not already available
- Ensure everything is ready for natural language command interpretation
✍️ Usage
To use auto-make, simply pass your command as a string argument:
automake "run the tests and generate a coverage report"
The tool will find the corresponding target in your Makefile and execute it.
For detailed usage information and available options, run:
automake help
🛠️ Configuration
On first run, auto-make will create a config.toml file in your user configuration directory. You can edit this file to change the default Ollama model or other settings.
Example config.toml:
# Default configuration for auto-make
[ollama]
model = "qwen3:0.6b" # Specify the Ollama model you want to use
🎬 Demos
Want to see some UI/UX demos?
Just run uv run make demo-all
or use automake: automake "show all demos"
Note: Running demos with automake may cause animation display issues. For the best demo experience, use the direct
uv run make demo-allcommand.
🗺️ Project Roadmap
For a detailed breakdown of the project roadmap, implementation phases, and technical specifications, see SPECS.md.
🚀 Development & Publishing
For Contributors
This project uses modern Python tooling and automated publishing:
- Package Management: UV for fast dependency management
- Code Quality: Pre-commit hooks with Ruff for linting and formatting
- Testing: Pytest with comprehensive test coverage
- CI/CD: GitHub Actions for automated testing and publishing
Publishing Process
The project uses GitHub Actions with Trusted Publishing for secure, automated releases:
- Production: Automatically publishes to PyPI when a GitHub release is created
- Testing: Manual workflow to test publishing on TestPyPI before production releases
For detailed publishing instructions, see docs/PUBLISHING.md.
Installation Methods
# Direct execution (recommended for users)
uvx automake-cli
# Alternative with explicit package name
uvx --from automake-cli automake
# Traditional pip installation
pip install automake-cli
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file automake_cli-0.3.4.tar.gz.
File metadata
- Download URL: automake_cli-0.3.4.tar.gz
- Upload date:
- Size: 554.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc14371c0f9fa245faa736d1e01884711041bbfdd6d93e5ed24346d70ccf2070
|
|
| MD5 |
5d3a7355e95681dc86db39cee9dea1ce
|
|
| BLAKE2b-256 |
16bbfbce9e0bc021eab33e187f2425c3a3e773949346359879deb834178fe9b1
|
Provenance
The following attestation bundles were made for automake_cli-0.3.4.tar.gz:
Publisher:
publish.yml on biokraft/auto-make
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
automake_cli-0.3.4.tar.gz -
Subject digest:
fc14371c0f9fa245faa736d1e01884711041bbfdd6d93e5ed24346d70ccf2070 - Sigstore transparency entry: 238559300
- Sigstore integration time:
-
Permalink:
biokraft/auto-make@b6e9c76aab2b8772ffc182f624bf918b066fde51 -
Branch / Tag:
refs/tags/v0.3.4 - Owner: https://github.com/biokraft
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b6e9c76aab2b8772ffc182f624bf918b066fde51 -
Trigger Event:
release
-
Statement type:
File details
Details for the file automake_cli-0.3.4-py3-none-any.whl.
File metadata
- Download URL: automake_cli-0.3.4-py3-none-any.whl
- Upload date:
- Size: 44.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1157eea952be25aeadd53076f0856ba1ae40a3adabe8f9ab141d61ad431ff579
|
|
| MD5 |
b08444c9caec45d18eeb7291d33d529e
|
|
| BLAKE2b-256 |
ca38a42e4f9048fc4b9122fbb68c662f737df905c498c18eb41b15bb39c05180
|
Provenance
The following attestation bundles were made for automake_cli-0.3.4-py3-none-any.whl:
Publisher:
publish.yml on biokraft/auto-make
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
automake_cli-0.3.4-py3-none-any.whl -
Subject digest:
1157eea952be25aeadd53076f0856ba1ae40a3adabe8f9ab141d61ad431ff579 - Sigstore transparency entry: 238559302
- Sigstore integration time:
-
Permalink:
biokraft/auto-make@b6e9c76aab2b8772ffc182f624bf918b066fde51 -
Branch / Tag:
refs/tags/v0.3.4 - Owner: https://github.com/biokraft
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b6e9c76aab2b8772ffc182f624bf918b066fde51 -
Trigger Event:
release
-
Statement type: