Skip to main content

AI-powered Makefile command execution

Project description

🤖 automake: Your AI Command-Line Assistant

The AI-native shell that turns natural language into actions.

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


automake is a Python-based, agent-first command-line tool that uses a powerful multi-agent system to interpret your natural language commands and execute them.

Forget remembering complex flags or exact Makefile targets. Just tell automake what you want to do.

✨ Key Features

  • AI-Native Commands: Run terminal commands, execute Makefile targets, and perform other tasks using plain English.
  • Multi-Agent System: A sophisticated ManagerAgent orchestrates a team of specialists (Terminal, Coding, Web, Makefile) to get the job done right.
  • Interactive Agent Mode: Launch a chat session with automake agent for complex, multi-step tasks.
  • Local First: Integrates with local LLMs via Ollama for privacy and offline access.
  • Intelligent Error Handling: If you make a typo, the agent will analyze the error and suggest a correction.
  • User-Friendly & Configurable: A clean CLI and a simple config.toml file for all your settings.

⚙️ How It Works

automake puts an AI agent at the heart of your command line, following a modern, agentic workflow:

  1. Parse Prompt: The CLI captures your natural language instruction (e.g., automake "list all python files").
  2. Invoke Agent: Your prompt is sent directly to a central Manager Agent.
  3. Reason & Delegate: The agent analyzes your request and decides which specialist is best for the job—the TerminalAgent for shell commands, the MakefileAgent for make targets, etc.
  4. Execute & Observe: The specialist agent executes the task, and the result is observed.
  5. Stream Output: The results are streamed directly to your terminal in real-time.

This entire workflow is triggered by the run command. For example: automake run "list all python files".

🚀 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

There are several ways to install and run automake.

Recommended: uv tool install

For a permanent installation, we recommend using uv tool install. This makes the automake command available globally in a dedicated environment.

1. From Git (Bleeding Edge) Install the very latest version directly from this repository:

# Install the latest version from the main branch
uv tool install git+https://github.com/biokraft/auto-make.git

# You can also install a specific tag or branch
uv tool install git+https://github.com/biokraft/auto-make.git@v0.4.2

2. From PyPI (Stable) Install the latest stable release from PyPI:

uv tool install automake-cli

Temporary Execution: uvx

If you prefer not to install the tool, you can run it directly using uvx (similar to npx). This downloads and runs the package in a temporary environment.

uvx automake-cli run "your command here"

Traditional pip

You can also use pip for a standard installation:

pip install automake-cli

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

Non-Interactive Commands

The primary way to use automake is with the run command, passing your request as a string argument:

# Run a terminal command
automake run "recursively find all files named README.md"

# Execute a Makefile target
automake run "run the tests and generate a coverage report"

# Build the project
automake run "build the project"

Interactive Agent Session

For more complex tasks, start a chat with the agent:

automake agent

For detailed usage information and available options, run:

automake help

🛠️ Configuration

automake features a modern, user-friendly configuration system. On first run, it creates a config.toml file in your user configuration directory.

Setting the AI Model

Configure your preferred Ollama model:

# Set a specific model
automake config set ollama.model "qwen2.5:7b"

# After changing the model, initialize it
automake init

Important: After changing the model, you must run automake init to download and initialize the new model if it's not already available locally.

View and Modify Configuration

  • View current config: automake config show
  • Set specific values: automake config set <section.key> <value>
  • Edit manually: automake config edit
  • Reset to defaults: automake config reset

Common Configuration Examples

# Set the AI model
automake config set ollama.model "qwen3:8b"

# Set the Ollama server URL
automake config set ollama.base_url "http://localhost:11434"

# Set logging level
automake config set logging.level "DEBUG"

# Set AI interaction threshold
automake config set ai.interactive_threshold 90

Configuration Structure

Run automake config show to see the current configuration.

# Example from automake config show
[ollama]
base_url = "http://localhost:11434"
model = "qwen3:0.6b"

[logging]
level = "INFO"

[ai]
interactive_threshold = 80

🎬 Demos

Want to see some UI/UX demos? Just run uv run make demo-all or use automake: automake run "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.

📜 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.4.2.tar.gz (616.0 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.4.2-py3-none-any.whl (64.4 kB view details)

Uploaded Python 3

File details

Details for the file automake_cli-0.4.2.tar.gz.

File metadata

  • Download URL: automake_cli-0.4.2.tar.gz
  • Upload date:
  • Size: 616.0 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.4.2.tar.gz
Algorithm Hash digest
SHA256 b4371a938155edcb95cabf56cbef1d9a0e59630e5c6ec1c918f73e75a987e322
MD5 95348b68351d5b71675fec853af371dd
BLAKE2b-256 e680d54bcdad54cc518cdb1d50a8e86b704ce5e99b843b7ff5d104b5115e9166

See more details on using hashes here.

Provenance

The following attestation bundles were made for automake_cli-0.4.2.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.4.2-py3-none-any.whl.

File metadata

  • Download URL: automake_cli-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 64.4 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.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 970f72a7316eab121cb1d170431041d7cb59a5371241cb7fb2bcb62863a3b32d
MD5 77003bba3424254eebf677dfcaf2aca7
BLAKE2b-256 d829beb802a2a9cd6e3a0774d73b47190fe6809d8944aa8d924b84f7afa7aa02

See more details on using hashes here.

Provenance

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