# 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
```bash
pip install aitoolmaker
```
Or install from source:
```bash
git clone https://github.com/MoustafaMohamed01/aitoolmaker.git
cd aitoolmaker
pip install -e .
```
## Quick Start
### Python API
```python
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
```bash
# 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
```python
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
```python
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
```python
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
```bash
aitoolmaker list
```
### Get Tool Information
```bash
aitoolmaker info chatbot
```
### Create Tool with Options
```bash
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:
1. Create a template file in `core/templates/your_tool.py`
2. Define the template constant
3. Register it in `core/templates/__init__.py`
4. Update `SUPPORTED_TOOLS` in `__init__.py`
## License
MIT License - See LICENSE file for details
## Acknowledgments
- Built with [Streamlit](https://streamlit.io/)
- Powered by [Google Gemini](https://deepmind.google/technologies/gemini/)
## Support
- **Issues**: [GitHub Issues](https://github.com/MoustafaMohamed01/aitoolmaker/issues)
- **Email**: moustafamohmd5@gmail.com
---
Made by the **Moustafa Mohamed**
- **Linkedin** [Moustafa Mohamed](https://www.linkedin.com/in/moustafamohamed01/)
- **Github** [MoustafaMohamed01](https://github.com/MoustafaMohamed01)
- **Kaggle** [moustafamohamed01](https://www.kaggle.com/moustafamohamed01)
Raw data
{
"_id": null,
"home_page": "https://github.com/MoustafaMohamed01/aitoolmaker",
"name": "aitoolmaker",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ai, chatbot, streamlit, tool-generator, gemini, openai, automation",
"author": "Moustafa Mohamed",
"author_email": "moustafamohmd5@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ce/58/d456b6bc87f39c8384b2cb79705c340a6f5afa6f3c2a589199a6b56ba78e/aitoolmaker-0.1.0.tar.gz",
"platform": null,
"description": "# AIToolMaker\r\n\r\n**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.\r\n\r\n## Features\r\n\r\n- **Instant Tool Generation**: Create AI-powered tools with a single command\r\n- **Multiple Output Formats**: Generate Streamlit apps or standalone websites\r\n- **6 Pre-built Tools**: Chatbot, Blog Generator, Data Analyzer, SQL Generator, Document Summarizer, Web Summarizer\r\n- **Run Immediately**: Option to run tools instantly without exporting code\r\n- **Auto-branding**: Automatic name and logo generation\r\n- **Multi-API Support**: Works with Gemini, OpenAI, and Anthropic APIs\r\n\r\n## Installation\r\n\r\n```bash\r\npip install aitoolmaker\r\n```\r\n\r\nOr install from source:\r\n\r\n```bash\r\ngit clone https://github.com/MoustafaMohamed01/aitoolmaker.git\r\ncd aitoolmaker\r\npip install -e .\r\n```\r\n\r\n## Quick Start\r\n\r\n### Python API\r\n\r\n```python\r\nfrom aitoolmaker import AIToolMaker\r\n\r\n# Initialize\r\ntool = AIToolMaker(\r\n api_key=\"YOUR_GEMINI_API_KEY\",\r\n model=\"gemini-2.0-flash\"\r\n)\r\n\r\n# Generate and run a chatbot\r\ntool.create_tool(\r\n tool_type=\"chatbot\",\r\n output=\"streamlit\",\r\n run=True,\r\n name=\"My AI Assistant\"\r\n)\r\n```\r\n\r\n### Command Line\r\n\r\n```bash\r\n# Create a blog generator\r\naitoolmaker create --tool blog_generator --api-key YOUR_KEY --output streamlit\r\n\r\n# Create and run immediately\r\naitoolmaker create --tool chatbot --api-key YOUR_KEY --run\r\n\r\n# Generate a website\r\naitoolmaker create --tool sql_generator --api-key YOUR_KEY --output website\r\n```\r\n\r\n## Available Tools\r\n\r\n| Tool | Description |\r\n| ----------------------- | --------------------------------------------------- |\r\n| **chatbot** | Professional AI assistant with conversation history |\r\n| **blog_generator** | AI-powered blog writer with keyword optimization |\r\n| **data_analyzer** | Ask questions about CSV data using AI |\r\n| **sql_generator** | Generate SQL queries from natural language |\r\n| **document_summarizer** | Summarize PDF and Word documents |\r\n| **web_summarizer** | Summarize website content |\r\n\r\n## Usage Examples\r\n\r\n### Generate Multiple Tools\r\n\r\n```python\r\nfrom aitoolmaker import AIToolMaker\r\n\r\napi_key = \"YOUR_API_KEY\"\r\ntools = [\"chatbot\", \"blog_generator\", \"sql_generator\"]\r\n\r\nfor tool_type in tools:\r\n maker = AIToolMaker(api_key=api_key, model=\"gemini-2.0-flash\")\r\n result = maker.create_tool(\r\n tool_type=tool_type,\r\n output=\"streamlit\",\r\n output_dir=f\"./generated_{tool_type}\"\r\n )\r\n print(f\"{tool_type} created at {result['output_dir']}\")\r\n```\r\n\r\n### Custom Branding\r\n\r\n```python\r\nfrom aitoolmaker import AIToolMaker\r\n\r\nmaker = AIToolMaker(api_key=\"YOUR_KEY\", model=\"gemini-2.0-flash\")\r\n\r\nresult = maker.create_tool(\r\n tool_type=\"data_analyzer\",\r\n output=\"streamlit\",\r\n name=\"DataMaster Pro\",\r\n logo=\"./my_logo.png\",\r\n output_dir=\"./my_data_tool\"\r\n)\r\n```\r\n\r\n### Generate Website\r\n\r\n```python\r\nfrom aitoolmaker import AIToolMaker\r\n\r\nmaker = AIToolMaker(api_key=\"YOUR_KEY\", model=\"gemini-2.0-flash\")\r\n\r\nresult = maker.create_tool(\r\n tool_type=\"sql_generator\",\r\n output=\"website\",\r\n name=\"SQL Wizard\",\r\n output_dir=\"./sql_website\"\r\n)\r\n```\r\n\r\n## CLI Usage\r\n\r\n### List Available Tools\r\n\r\n```bash\r\naitoolmaker list\r\n```\r\n\r\n### Get Tool Information\r\n\r\n```bash\r\naitoolmaker info chatbot\r\n```\r\n\r\n### Create Tool with Options\r\n\r\n```bash\r\naitoolmaker create \\\r\n --tool document_summarizer \\\r\n --api-key YOUR_KEY \\\r\n --model gemini-2.0-flash \\\r\n --name \"DocSummarizer Pro\" \\\r\n --logo ./logo.png \\\r\n --output-dir ./my_summarizer\r\n```\r\n\r\n## Generated Output Structure\r\n\r\n### Streamlit App\r\n\r\n```\r\ngenerated_chatbot/\r\n\u251c\u2500\u2500 app.py # Main Streamlit application\r\n\u251c\u2500\u2500 api_key.py # API key configuration\r\n\u251c\u2500\u2500 requirements.txt # Python dependencies\r\n\u251c\u2500\u2500 README.md # Usage instructions\r\n\u2514\u2500\u2500 utils.py # Utility functions (if needed)\r\n```\r\n\r\n### Website\r\n\r\n```\r\ngenerated_chatbot_website/\r\n\u251c\u2500\u2500 index.html # Main HTML file\r\n\u251c\u2500\u2500 css/\r\n\u2502 \u2514\u2500\u2500 style.css # Stylesheet\r\n\u251c\u2500\u2500 js/\r\n\u2502 \u2514\u2500\u2500 app.js # JavaScript logic\r\n\u251c\u2500\u2500 assets/\r\n\u2502 \u2514\u2500\u2500 logo.png # Logo image\r\n\u2514\u2500\u2500 README.md # Deployment instructions\r\n```\r\n\r\n## Use Cases\r\n\r\n- **Rapid Prototyping**: Quickly create AI tool prototypes\r\n- **Client Demos**: Generate custom-branded demos\r\n- **Internal Tools**: Build internal AI tools for teams\r\n- **Learning**: Study production-ready AI code\r\n- **Deployment**: Export portable, deployment-ready code\r\n\r\n## Contributing\r\n\r\nContributions are welcome! To add a new tool:\r\n\r\n1. Create a template file in `core/templates/your_tool.py`\r\n2. Define the template constant\r\n3. Register it in `core/templates/__init__.py`\r\n4. Update `SUPPORTED_TOOLS` in `__init__.py`\r\n\r\n## License\r\n\r\nMIT License - See LICENSE file for details\r\n\r\n## Acknowledgments\r\n\r\n- Built with [Streamlit](https://streamlit.io/)\r\n- Powered by [Google Gemini](https://deepmind.google/technologies/gemini/)\r\n\r\n## Support\r\n\r\n- **Issues**: [GitHub Issues](https://github.com/MoustafaMohamed01/aitoolmaker/issues)\r\n- **Email**: moustafamohmd5@gmail.com\r\n\r\n---\r\n\r\nMade by the **Moustafa Mohamed**\r\n\r\n- **Linkedin** [Moustafa Mohamed](https://www.linkedin.com/in/moustafamohamed01/)\r\n- **Github** [MoustafaMohamed01](https://github.com/MoustafaMohamed01)\r\n- **Kaggle** [moustafamohamed01](https://www.kaggle.com/moustafamohamed01)\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A framework for automatically generating and running Streamlit-based AI tools and chatbots",
"version": "0.1.0",
"project_urls": {
"Bug Reports": "https://github.com/MoustafaMohamed01/aitoolmaker/issues",
"Documentation": "https://aitoolmaker.readthedocs.io",
"Homepage": "https://github.com/MoustafaMohamed01/aitoolmaker",
"Source": "https://github.com/MoustafaMohamed01/aitoolmaker"
},
"split_keywords": [
"ai",
" chatbot",
" streamlit",
" tool-generator",
" gemini",
" openai",
" automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a02ca22fd5debd816f2fb03eea5675dc66db5b79c3f9b39bba64f6d2bcd9737c",
"md5": "0c70e0dabe30832779f95bdeea8a0737",
"sha256": "3e78934b006a2a3ea62d07f20fb14b8d672ebb38b7095c7c5a99cf7e1f4aa4df"
},
"downloads": -1,
"filename": "aitoolmaker-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0c70e0dabe30832779f95bdeea8a0737",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 730043,
"upload_time": "2025-10-29T15:53:56",
"upload_time_iso_8601": "2025-10-29T15:53:56.979525Z",
"url": "https://files.pythonhosted.org/packages/a0/2c/a22fd5debd816f2fb03eea5675dc66db5b79c3f9b39bba64f6d2bcd9737c/aitoolmaker-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ce58d456b6bc87f39c8384b2cb79705c340a6f5afa6f3c2a589199a6b56ba78e",
"md5": "069e0f4affcf9f2ace03d68fd9169d07",
"sha256": "945f0bc535132a019e535c190d487278b3f148e4cf6485adaf30ffa1b5c1a51f"
},
"downloads": -1,
"filename": "aitoolmaker-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "069e0f4affcf9f2ace03d68fd9169d07",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 728072,
"upload_time": "2025-10-29T15:53:59",
"upload_time_iso_8601": "2025-10-29T15:53:59.334150Z",
"url": "https://files.pythonhosted.org/packages/ce/58/d456b6bc87f39c8384b2cb79705c340a6f5afa6f3c2a589199a6b56ba78e/aitoolmaker-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-29 15:53:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MoustafaMohamed01",
"github_project": "aitoolmaker",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "streamlit",
"specs": [
[
">=",
"1.28.0"
]
]
},
{
"name": "google-generativeai",
"specs": [
[
">=",
"0.3.0"
]
]
},
{
"name": "jinja2",
"specs": [
[
">=",
"3.0.0"
]
]
},
{
"name": "pandas",
"specs": [
[
">=",
"2.0.0"
]
]
},
{
"name": "langchain",
"specs": [
[
">=",
"0.1.0"
]
]
},
{
"name": "langchain-google-genai",
"specs": [
[
">=",
"0.0.6"
]
]
},
{
"name": "langchain-community",
"specs": [
[
">=",
"0.0.13"
]
]
},
{
"name": "pypdf",
"specs": [
[
">=",
"3.17.0"
]
]
},
{
"name": "python-docx",
"specs": [
[
">=",
"1.0.0"
]
]
},
{
"name": "faiss-cpu",
"specs": [
[
">=",
"1.7.4"
]
]
},
{
"name": "requests",
"specs": [
[
">=",
"2.31.0"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
">=",
"4.12.0"
]
]
}
],
"lcname": "aitoolmaker"
}