Skip to main content

AI-powered Makefile command execution

Project description

๐Ÿค– auto-make

Makefiles without writing Makefiles.

Latest Version Changelog 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

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-all command.

๐Ÿ—บ๏ธ 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


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.5.tar.gz (567.1 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.5-py3-none-any.whl (45.8 kB view details)

Uploaded Python 3

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

Hashes for automake_cli-0.3.5.tar.gz
Algorithm Hash digest
SHA256 8feb25bd95090b2830a02beb6d8c5f3ca9ea589b42a908045de436299b3d6dba
MD5 4e4080269c1153576aea8930e664aca2
BLAKE2b-256 a0ce3897024a70ba5b52d5c87a4600038c4f29290bc43e548c75c3c1da721398

See more details on using hashes here.

Provenance

The following attestation bundles were made for automake_cli-0.3.5.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.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

Hashes for automake_cli-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 28d5bbb070281747185427440987bac5c58c163d39aa8d51dc787ea3cf43fa0b
MD5 35cc22548c537a359f09473fdc2d2697
BLAKE2b-256 bf40b8a1d167fb5fd5f07c8683c45e7c5750dced49199b57e3758b3a49e88b3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for automake_cli-0.3.5-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