An intelligent tool-making package that leverages LLMs to analyze projects and generate tools
Project description
Tool Maker Package
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 usageflask_integration.py- Flask integrationcustom_analyzer.py- Custom project analysis
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f209cf1c8874526d7afef948420e7149ae44913c67feaab14bd3cbe4f21d2302
|
|
| MD5 |
91ec0217490dc31ee337759f10399a0a
|
|
| BLAKE2b-256 |
0a2c50126fb428afc27a55bbf86bf1e9a133ec2ff52cf09ab69bbc3296be79f3
|
Provenance
The following attestation bundles were made for llm_tool_maker-0.1.0.tar.gz:
Publisher:
release.yml on codewithwest/project_tool-maker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_tool_maker-0.1.0.tar.gz -
Subject digest:
f209cf1c8874526d7afef948420e7149ae44913c67feaab14bd3cbe4f21d2302 - Sigstore transparency entry: 1999738857
- Sigstore integration time:
-
Permalink:
codewithwest/project_tool-maker@92945cd1c8fb975f886a348e2796273016b3ad35 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/codewithwest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@92945cd1c8fb975f886a348e2796273016b3ad35 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80c17b8728000e1ebcef3b4af90f4cb60fdea26bb0739246bd9a37e7a1c0b872
|
|
| MD5 |
9c388b44e0835259e6f06fc0009b0e3b
|
|
| BLAKE2b-256 |
d7a980679f332b8d456ee979abe2a888ccb5e5fbceb5642f49e39838c6fd8004
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_tool_maker-0.1.0-py3-none-any.whl -
Subject digest:
80c17b8728000e1ebcef3b4af90f4cb60fdea26bb0739246bd9a37e7a1c0b872 - Sigstore transparency entry: 1999738926
- Sigstore integration time:
-
Permalink:
codewithwest/project_tool-maker@92945cd1c8fb975f886a348e2796273016b3ad35 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/codewithwest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@92945cd1c8fb975f886a348e2796273016b3ad35 -
Trigger Event:
push
-
Statement type: