Skip to main content

AI-powered Makefile command execution

Project description

🤖 auto-make

Makefiles without writing Makefiles.

Latest Version License: Apache 2.0 GitHub Build Status codecov PyPI version

Python 3.11+ pre-commit Code style: ruff tested with pytest


AutoMake Help Command


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 make targets 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.toml file.
  • Modern Python Stack: Built with uv, smolagents, and pre-commit for a robust development experience.

⚙️ How It Works

auto-make follows a simple, powerful workflow to translate your instructions into actions:

  1. Parse Command: The CLI captures your natural language instruction.
  2. Read Makefile: It finds and reads the Makefile in your current directory.
  3. Consult AI: It sends the Makefile contents and your instruction to a local LLM (via Ollama).
  4. Identify Target: The LLM analyzes the context and identifies the single most likely make command to run.
  5. 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-all command.

🗺️ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

automake_cli-0.3.4.tar.gz (554.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

automake_cli-0.3.4-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

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

Hashes for automake_cli-0.3.4.tar.gz
Algorithm Hash digest
SHA256 fc14371c0f9fa245faa736d1e01884711041bbfdd6d93e5ed24346d70ccf2070
MD5 5d3a7355e95681dc86db39cee9dea1ce
BLAKE2b-256 16bbfbce9e0bc021eab33e187f2425c3a3e773949346359879deb834178fe9b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for automake_cli-0.3.4.tar.gz:

Publisher: publish.yml on biokraft/auto-make

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for automake_cli-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1157eea952be25aeadd53076f0856ba1ae40a3adabe8f9ab141d61ad431ff579
MD5 b08444c9caec45d18eeb7291d33d529e
BLAKE2b-256 ca38a42e4f9048fc4b9122fbb68c662f737df905c498c18eb41b15bb39c05180

See more details on using hashes here.

Provenance

The following attestation bundles were made for automake_cli-0.3.4-py3-none-any.whl:

Publisher: publish.yml on biokraft/auto-make

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page