A framework for automatically generating and running Streamlit-based AI tools and chatbots
Project description
AIToolMaker
AIToolMaker is a powerful Python framework that automatically generates and runs Streamlit-based AI tools and chatbots, or exports them as full HTML/CSS/JS websites.
Features
- Instant Tool Generation: Create AI-powered tools with a single command
- Multiple Output Formats: Generate Streamlit apps or standalone websites
- 6 Pre-built Tools: Chatbot, Blog Generator, Data Analyzer, SQL Generator, Document Summarizer, Web Summarizer
- Run Immediately: Option to run tools instantly without exporting code
- Auto-branding: Automatic name and logo generation
- Multi-API Support: Works with Gemini, OpenAI, and Anthropic APIs
Installation
pip install aitoolmaker
Or install from source:
git clone https://github.com/MoustafaMohamed01/aitoolmaker.git
cd aitoolmaker
pip install -e .
Quick Start
Python API
from aitoolmaker import AIToolMaker
# Initialize
tool = AIToolMaker(
api_key="YOUR_GEMINI_API_KEY",
model="gemini-2.0-flash"
)
# Generate and run a chatbot
tool.create_tool(
tool_type="chatbot",
output="streamlit",
run=True,
name="My AI Assistant"
)
Command Line
# Create a blog generator
aitoolmaker create --tool blog_generator --api-key YOUR_KEY --output streamlit
# Create and run immediately
aitoolmaker create --tool chatbot --api-key YOUR_KEY --run
# Generate a website
aitoolmaker create --tool sql_generator --api-key YOUR_KEY --output website
Available Tools
| Tool | Description |
|---|---|
| chatbot | Professional AI assistant with conversation history |
| blog_generator | AI-powered blog writer with keyword optimization |
| data_analyzer | Ask questions about CSV data using AI |
| sql_generator | Generate SQL queries from natural language |
| document_summarizer | Summarize PDF and Word documents |
| web_summarizer | Summarize website content |
Usage Examples
Generate Multiple Tools
from aitoolmaker import AIToolMaker
api_key = "YOUR_API_KEY"
tools = ["chatbot", "blog_generator", "sql_generator"]
for tool_type in tools:
maker = AIToolMaker(api_key=api_key, model="gemini-2.0-flash")
result = maker.create_tool(
tool_type=tool_type,
output="streamlit",
output_dir=f"./generated_{tool_type}"
)
print(f"{tool_type} created at {result['output_dir']}")
Custom Branding
from aitoolmaker import AIToolMaker
maker = AIToolMaker(api_key="YOUR_KEY", model="gemini-2.0-flash")
result = maker.create_tool(
tool_type="data_analyzer",
output="streamlit",
name="DataMaster Pro",
logo="./my_logo.png",
output_dir="./my_data_tool"
)
Generate Website
from aitoolmaker import AIToolMaker
maker = AIToolMaker(api_key="YOUR_KEY", model="gemini-2.0-flash")
result = maker.create_tool(
tool_type="sql_generator",
output="website",
name="SQL Wizard",
output_dir="./sql_website"
)
CLI Usage
List Available Tools
aitoolmaker list
Get Tool Information
aitoolmaker info chatbot
Create Tool with Options
aitoolmaker create \
--tool document_summarizer \
--api-key YOUR_KEY \
--model gemini-2.0-flash \
--name "DocSummarizer Pro" \
--logo ./logo.png \
--output-dir ./my_summarizer
Generated Output Structure
Streamlit App
generated_chatbot/
├── app.py # Main Streamlit application
├── api_key.py # API key configuration
├── requirements.txt # Python dependencies
├── README.md # Usage instructions
└── utils.py # Utility functions (if needed)
Website
generated_chatbot_website/
├── index.html # Main HTML file
├── css/
│ └── style.css # Stylesheet
├── js/
│ └── app.js # JavaScript logic
├── assets/
│ └── logo.png # Logo image
└── README.md # Deployment instructions
Use Cases
- Rapid Prototyping: Quickly create AI tool prototypes
- Client Demos: Generate custom-branded demos
- Internal Tools: Build internal AI tools for teams
- Learning: Study production-ready AI code
- Deployment: Export portable, deployment-ready code
Contributing
Contributions are welcome! To add a new tool:
- Create a template file in
core/templates/your_tool.py - Define the template constant
- Register it in
core/templates/__init__.py - Update
SUPPORTED_TOOLSin__init__.py
License
MIT License - See LICENSE file for details
Acknowledgments
- Built with Streamlit
- Powered by Google Gemini
Support
- Issues: GitHub Issues
- Email: moustafamohmd5@gmail.com
Made by the Moustafa Mohamed
- Linkedin Moustafa Mohamed
- Github MoustafaMohamed01
- Kaggle moustafamohamed01
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 aitoolmaker-0.1.0.tar.gz.
File metadata
- Download URL: aitoolmaker-0.1.0.tar.gz
- Upload date:
- Size: 728.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
945f0bc535132a019e535c190d487278b3f148e4cf6485adaf30ffa1b5c1a51f
|
|
| MD5 |
069e0f4affcf9f2ace03d68fd9169d07
|
|
| BLAKE2b-256 |
ce58d456b6bc87f39c8384b2cb79705c340a6f5afa6f3c2a589199a6b56ba78e
|
File details
Details for the file aitoolmaker-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aitoolmaker-0.1.0-py3-none-any.whl
- Upload date:
- Size: 730.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e78934b006a2a3ea62d07f20fb14b8d672ebb38b7095c7c5a99cf7e1f4aa4df
|
|
| MD5 |
0c70e0dabe30832779f95bdeea8a0737
|
|
| BLAKE2b-256 |
a02ca22fd5debd816f2fb03eea5675dc66db5b79c3f9b39bba64f6d2bcd9737c
|