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
auto-make features a modern, user-friendly configuration system with beautiful UI/UX. On first run, it creates a config.toml file in your user configuration directory with sensible defaults.
View Configuration
See your current configuration with a beautifully formatted display:
automake config show
You can also view specific sections:
automake config show --section ollama
Modify Configuration
Change settings easily with the intuitive set command:
automake config set ollama model "qwen3:1.7b"
automake config set logging level "DEBUG"
automake config set ai interactive_threshold 70
Important: After changing the model, you must run the initialization command to download the new model:
automake init
Additional Configuration Commands
- Edit directly:
automake config edit- Opens the config file in your default editor - Reset to defaults:
automake config reset- Restores all settings to defaults (with confirmation)
Configuration Structure
Run automake config show to see the current configuration.
โฏ automake config show
โญโ Configuration โโโโโโโโโโโโโโโโโโโโโโฎ
โ [ollama] โ
โ base_url = "http://localhost:11434" โ
โ model = "qwen3:1.7b" โ
โ โ
โ [logging] โ
โ level = "DEBUG" โ
โ โ
โ [ai] โ
โ interactive_threshold = 80 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โญโ Location โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Config file: /Users/seanbaufeld/Library/Application Support/automake/config.toml โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
๐ฌ 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.
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
๐ Changelog
All notable changes to this project are documented in the CHANGELOG.md file.
๐ License
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
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.5.tar.gz.
File metadata
- Download URL: automake_cli-0.3.5.tar.gz
- Upload date:
- Size: 567.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8feb25bd95090b2830a02beb6d8c5f3ca9ea589b42a908045de436299b3d6dba
|
|
| MD5 |
4e4080269c1153576aea8930e664aca2
|
|
| BLAKE2b-256 |
a0ce3897024a70ba5b52d5c87a4600038c4f29290bc43e548c75c3c1da721398
|
Provenance
The following attestation bundles were made for automake_cli-0.3.5.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.5.tar.gz -
Subject digest:
8feb25bd95090b2830a02beb6d8c5f3ca9ea589b42a908045de436299b3d6dba - Sigstore transparency entry: 238702977
- Sigstore integration time:
-
Permalink:
biokraft/auto-make@210f7c923ae3d8f24937bd8f5af1a18788aaf750 -
Branch / Tag:
refs/tags/v0.3.5 - Owner: https://github.com/biokraft
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@210f7c923ae3d8f24937bd8f5af1a18788aaf750 -
Trigger Event:
release
-
Statement type:
File details
Details for the file automake_cli-0.3.5-py3-none-any.whl.
File metadata
- Download URL: automake_cli-0.3.5-py3-none-any.whl
- Upload date:
- Size: 45.8 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 |
28d5bbb070281747185427440987bac5c58c163d39aa8d51dc787ea3cf43fa0b
|
|
| MD5 |
35cc22548c537a359f09473fdc2d2697
|
|
| BLAKE2b-256 |
bf40b8a1d167fb5fd5f07c8683c45e7c5750dced49199b57e3758b3a49e88b3c
|
Provenance
The following attestation bundles were made for automake_cli-0.3.5-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.5-py3-none-any.whl -
Subject digest:
28d5bbb070281747185427440987bac5c58c163d39aa8d51dc787ea3cf43fa0b - Sigstore transparency entry: 238702981
- Sigstore integration time:
-
Permalink:
biokraft/auto-make@210f7c923ae3d8f24937bd8f5af1a18788aaf750 -
Branch / Tag:
refs/tags/v0.3.5 - Owner: https://github.com/biokraft
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@210f7c923ae3d8f24937bd8f5af1a18788aaf750 -
Trigger Event:
release
-
Statement type: