Skip to main content

An intelligent tool-making package that leverages LLMs to analyze projects and generate tools

Project description

Tool Maker Package

CI PyPI version Python versions License: MIT

An intelligent tool-making package that leverages LLMs to analyze projects and generate tools.

Overview

Tool Maker is a Python package that:

  • Analyzes projects to understand their structure and capabilities
  • Uses LLMs to formulate intelligent prompts and generate tools
  • Can be integrated into Flask applications or used standalone
  • Provides a CLI for easy command-line usage

Features

  • Project Analysis: Automatically scans and analyzes project structure
  • LLM Integration: Supports multiple LLM providers (OpenAI, Anthropic, local models)
  • Tool Generation: Creates appropriate tools based on project capabilities
  • Flask Integration: Easy integration with Flask applications
  • CLI Interface: Command-line tool for quick usage

Installation

Using uv (Recommended)

# Install globally
uv tool install llm-tool-maker

# Or add to a project
uv add llm-tool-maker

From Source

git clone https://github.com/codewithwest/project_tool-maker.git
cd tool-maker
uv sync
uv run tool-maker --help

Quick Start

Standalone Usage

from tool_maker import ToolMaker

# Initialize with your LLM provider
tm = ToolMaker(
    llm_provider="openai",
    api_key="your-api-key"
)

# Analyze a project
project_info = tm.analyze_project("/path/to/project")

# Create and execute a tool
result = tm.create_and_execute_tool("Create a function to parse CSV files")
print(result)

Flask Integration

from flask import Flask, request, jsonify
from tool_maker.flask import ToolMakerExtension

app = Flask(__name__)

# Initialize Tool Maker
tm = ToolMakerExtension(
    app,
    llm_provider="openai",
    api_key="your-api-key"
)

@app.route('/analyze', methods=['POST'])
def analyze():
    project_path = request.json.get('project_path')
    return jsonify(tm.analyze_project(project_path))

@app.route('/tools', methods=['POST'])
def create_tool():
    query = request.json.get('query')
    return jsonify(tm.create_and_execute_tool(query))

Project Structure

tool_maker/
├── analyzer/      # Project analysis module
├── llm/          # LLM integration module
├── tool/         # Tool generation and execution
├── flask/        # Flask integration
└── cli/          # Command-line interface

Configuration

LLM Providers

Tool Maker supports multiple LLM providers:

# OpenAI
tm = ToolMaker(llm_provider="openai", api_key="sk-...")

# Anthropic (Claude)
tm = ToolMaker(llm_provider="anthropic", api_key="sk-...")

# Local LLM (e.g., Ollama)
tm = ToolMaker(
    llm_provider="ollama",
    base_url="http://localhost:11434",
    model="llama2"
)

Development

# Set up development environment
uv sync
uv run pytest

# Run linter
uv run ruff check .

# Format code
uv run black .

Examples

See the examples/ directory for more detailed examples:

  • basic_usage.py - Standalone usage
  • flask_integration.py - Flask integration
  • custom_analyzer.py - Custom project analysis

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built with uv for fast Python package management
  • Inspired by AI-powered code generation tools

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

llm_tool_maker-0.1.0.tar.gz (121.2 kB view details)

Uploaded Source

Built Distribution

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

llm_tool_maker-0.1.0-py3-none-any.whl (67.7 kB view details)

Uploaded Python 3

File details

Details for the file llm_tool_maker-0.1.0.tar.gz.

File metadata

  • Download URL: llm_tool_maker-0.1.0.tar.gz
  • Upload date:
  • Size: 121.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llm_tool_maker-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f209cf1c8874526d7afef948420e7149ae44913c67feaab14bd3cbe4f21d2302
MD5 91ec0217490dc31ee337759f10399a0a
BLAKE2b-256 0a2c50126fb428afc27a55bbf86bf1e9a133ec2ff52cf09ab69bbc3296be79f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_tool_maker-0.1.0.tar.gz:

Publisher: release.yml on codewithwest/project_tool-maker

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

File details

Details for the file llm_tool_maker-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: llm_tool_maker-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 67.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llm_tool_maker-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80c17b8728000e1ebcef3b4af90f4cb60fdea26bb0739246bd9a37e7a1c0b872
MD5 9c388b44e0835259e6f06fc0009b0e3b
BLAKE2b-256 d7a980679f332b8d456ee979abe2a888ccb5e5fbceb5642f49e39838c6fd8004

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_tool_maker-0.1.0-py3-none-any.whl:

Publisher: release.yml on codewithwest/project_tool-maker

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