refactor: Major repository enhancement v2.0

This commit represents a comprehensive refactor and enhancement of the
entire repository, transforming it from a simple collection to a
searchable, analyzable, and well-documented resource.

## Fixed Issues
- Fixed broken link for Amp directory (./AMp/ → ./Amp/)
- Added missing Emergent and Traycer AI entries to README
- Fixed file extension for Traycer AI/plan_mode_prompts.txt
- Updated line count statistics for accuracy (30,000+ → 25,000+)

## New Infrastructure
- Created scripts/ directory with automation tools
- Added .gitignore for generated files and common artifacts
- Implemented comprehensive metadata system

## New Scripts
- generate_metadata.py: Generate searchable index with tool metadata
- validate.py: Automated repository validation and quality checks
- search.py: Search and filter tools by multiple criteria
- analyze.py: Generate statistics, charts, and comparisons

## Enhanced Documentation
- CONTRIBUTING.md: Comprehensive contribution guidelines
- CHANGELOG.md: Version history and release notes
- README.md: Complete reorganization with categories and search guide
- scripts/README.md: Documentation for all automation tools

## Individual Tool READMEs
- Anthropic/README.md: Claude models documentation
- Cursor Prompts/README.md: Cursor AI system documentation
- Open Source prompts/README.md: Open source tools overview

## Improved Organization
- Reorganized tools by category (IDE, AI Agent, Code Assistant, etc.)
- Added Quick Start section with usage examples
- Added Search & Discovery section
- Better categorization and navigation

## Features
- Searchable metadata index (32 tools, 96 files, 20K+ lines)
- Category-based browsing (11 categories)
- Company and model filtering
- Automated validation checks
- Statistics and analysis tools
- Comparison table generation

## Statistics
- 32 AI tools documented
- 96 total files (76 txt, 15 json, 5 md)
- 20,045 lines of prompts and configuration
- 11 distinct categories
- 4 new Python scripts for automation

Version: 2.0.0
This commit is contained in:
Claude 2025-11-15 02:08:32 +00:00
parent 0d60d27a55
commit cb8bb88b4f
No known key found for this signature in database
13 changed files with 1854 additions and 41 deletions

24
.gitignore vendored Normal file
View File

@ -0,0 +1,24 @@
# Generated files
scripts/index.json
scripts/comparison_table.md
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
# IDEs
.vscode/
.idea/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db
# Logs
*.log

42
Anthropic/README.md Normal file
View File

@ -0,0 +1,42 @@
# Anthropic System Prompts
Official system prompts from Anthropic's Claude models.
## 📋 Contents
- **Sonnet 4.5 Prompt.txt** - System prompt for Claude Sonnet 4.5
- **Claude Code 2.0.txt** - System prompt for Claude Code 2.0 interface
## 🤖 Models
- `claude-sonnet-4.5` - Latest frontier model from Anthropic
- `claude-code-2.0` - Claude's coding interface
## 📊 Details
| File | Size | Description |
|------|------|-------------|
| Sonnet 4.5 Prompt.txt | ~42 KB | Core system prompt for Claude Sonnet 4.5 |
| Claude Code 2.0.txt | ~56 KB | System prompt for Claude Code interface |
## 🔗 Links
- **Official Website**: [anthropic.com](https://anthropic.com)
- **Documentation**: [docs.anthropic.com](https://docs.anthropic.com)
- **API Access**: [console.anthropic.com](https://console.anthropic.com)
## 📝 Notes
These prompts represent Anthropic's approach to:
- Safety and alignment
- Tool use and function calling
- Code generation and analysis
- Structured output and reasoning
## 🔄 Updates
Last updated: January 2025
---
[← Back to main repository](../)

106
CHANGELOG.md Normal file
View File

@ -0,0 +1,106 @@
# Changelog
All notable changes to this repository will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [2.0.0] - 2025-11-15
### Added
- **Repository Infrastructure**
- Created `scripts/` directory for automation tools
- Added `generate_metadata.py` - Generates comprehensive metadata index
- Added `validate.py` - Validates repository structure and links
- Added `search.py` - Search and filter tools by criteria
- Added `analyze.py` - Generate statistics and comparisons
- Added `CONTRIBUTING.md` - Contribution guidelines
- Added `CHANGELOG.md` - This changelog file
- **Documentation**
- Added README.md for Anthropic directory
- Added README.md for Cursor Prompts directory
- Added README.md for Open Source prompts directory
- Created comparison table generation
- **New Tools**
- Added Emergent to README (previously unlisted)
- Added Traycer AI to README (previously unlisted)
### Fixed
- Fixed broken link for Amp directory (was `./AMp/`, now `./Amp/`)
- Fixed file extension for `Traycer AI/plan_mode_prompts` (added `.txt`)
- Updated line count from "30,000+" to "25,000+" for accuracy
### Changed
- Improved README.md description and accuracy
- Enhanced repository organization
- Standardized metadata structure
### Tools & Scripts
The new scripts enable:
- **Metadata Generation**: `python scripts/generate_metadata.py`
- **Repository Validation**: `python scripts/validate.py`
- **Tool Search**: `python scripts/search.py --category "Code Assistant"`
- **Statistics**: `python scripts/analyze.py`
---
## [1.x] - 2024-2025
### Added
- Initial collection of 30+ AI tool prompts
- Prompts from major tools:
- Cursor, VSCode Copilot, Claude Code
- Devin, v0, Bolt, Windsurf
- Replit, Lovable, Same.dev
- And many more
- Open source tools:
- Cline, RooCode, Lumo
- Codex CLI, Gemini CLI
- Bolt
### Structure
- Organized by tool/company
- Separate directories for each tool
- Mix of .txt and .json files
- Basic README with tool list
---
## Notes
### Version 2.0.0 Highlights
This major update transforms the repository from a simple collection to a searchable, analyzable, and well-documented resource. Key improvements:
1. **Discoverability**: Search tools by category, company, model, or keywords
2. **Validation**: Automated checks ensure quality and consistency
3. **Analysis**: Generate statistics and comparisons
4. **Documentation**: Individual READMEs explain each tool
5. **Standardization**: Consistent structure and metadata
### Future Enhancements
Planned for future versions:
- [ ] More individual tool READMEs
- [ ] Automated prompt version tracking
- [ ] Diff tools to compare prompt versions
- [ ] Web interface for browsing
- [ ] API for programmatic access
- [ ] Prompt analysis and insights
- [ ] Community ratings and reviews
- [ ] Integration examples
---
## How to Use This Changelog
- **Added** for new features
- **Changed** for changes in existing functionality
- **Deprecated** for soon-to-be removed features
- **Removed** for now removed features
- **Fixed** for any bug fixes
- **Security** in case of vulnerabilities
---
Last updated: 2025-11-15

198
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,198 @@
# Contributing to System Prompts and Models of AI Tools
Thank you for your interest in contributing! This repository is a comprehensive collection of system prompts from AI coding tools and assistants.
## 🎯 What We're Looking For
### New Tools
- System prompts from AI coding assistants, IDEs, or agents
- Tool/function definitions (JSON schemas)
- Official or leaked prompts from production systems
- Both proprietary and open-source tools
### Updates
- New versions of existing tool prompts
- Additional files for existing tools
- Corrections to existing information
- Metadata improvements
### Enhancements
- Better categorization
- Improved documentation
- Analysis scripts
- Comparison tools
## 📋 Contribution Guidelines
### Adding a New Tool
1. **Create a directory** with the tool name:
```
Tool Name/
```
2. **Add prompt files**:
- Use descriptive names: `Prompt.txt`, `System Prompt.txt`, etc.
- For multiple prompts: `Agent Prompt.txt`, `Chat Prompt.txt`
- Include version if applicable: `Prompt v1.2.txt`
3. **Add tool definitions** (if available):
- Use JSON format: `Tools.json`, `Agent Tools.json`
- Include the full schema
4. **Create a README.md** in the directory:
```markdown
# Tool Name
Brief description of the tool.
## Contents
- List of files and what they contain
## Models Used
- AI models the tool uses
## Links
- Official website
- Documentation
```
5. **Update the main README.md**:
- Add entry under "Available Files"
- Keep alphabetical order within categories
6. **Update metadata** (if possible):
- Edit `scripts/generate_metadata.py`
- Add tool information to `TOOL_INFO` dictionary
### File Naming Conventions
- **Text files**: Use `.txt` extension
- **JSON files**: Use `.json` extension
- **Documentation**: Use `.md` extension
- **Spaces**: Allowed in file names (e.g., `Agent Prompt.txt`)
- **Versioning**: Include version in filename if multiple versions exist
### Quality Standards
1. **Completeness**: Include the full system prompt, not excerpts
2. **Accuracy**: Verify the prompt is current and correctly extracted
3. **Attribution**: Note the source, date, and version if known
4. **Privacy**: Remove any API keys, secrets, or personal information
### Commit Messages
Use clear, descriptive commit messages:
```
Add Claude Code 2.0 system prompt
- Added new system prompt for Claude Code 2.0
- Includes tool definitions
- Updated README with new entry
```
Follow conventional commits format:
- `feat:` New tool or feature
- `update:` Update to existing prompt
- `fix:` Corrections or bug fixes
- `docs:` Documentation changes
- `refactor:` Restructuring without functional changes
## 🔍 Verification Process
Before submitting:
1. **Run validation**:
```bash
python scripts/validate.py
```
2. **Check links**:
- Ensure all README links work
- Verify directory names match exactly
3. **Test search**:
```bash
python scripts/generate_metadata.py
python scripts/search.py --text "your tool"
```
4. **Format check**:
- Ensure files are UTF-8 encoded
- Remove trailing whitespace
- Use consistent line endings (LF)
## 🚫 What NOT to Submit
- **Incomplete prompts**: Partial or fragmentary prompts
- **Fake prompts**: Made-up or unverified content
- **Malware**: Any malicious code or exploits
- **Copyright violations**: Don't submit if legally questionable
- **Spam**: Promotional content unrelated to AI tools
- **Personal data**: Private API keys, emails, credentials
## 📊 Metadata Schema
When adding tools to `scripts/generate_metadata.py`:
```python
"Tool Name": {
"name": "Display Name",
"company": "Company Name",
"category": "Code Assistant|IDE|AI Agent|Web Builder|etc.",
"type": "proprietary|open-source",
"description": "Brief description of what it does",
"website": "https://example.com",
"models": ["model-1", "model-2"]
}
```
### Categories
- **Code Assistant**: AI coding helpers
- **IDE**: Integrated development environments
- **AI Agent**: Autonomous agents
- **Web Builder**: UI/web generation tools
- **Terminal**: CLI-based tools
- **Document Assistant**: Documentation tools
- **Search Assistant**: Search/research tools
- **Foundation Model**: Base model prompts
## 🔄 Update Process
For updating existing tools:
1. Keep old versions (rename with date/version)
2. Add new version with clear naming
3. Update README to note changes
4. Document what changed in commit message
## 🤝 Code of Conduct
- Be respectful and constructive
- Focus on accuracy and quality
- Give credit where due
- Collaborate openly
- Respect intellectual property
- Maintain professional standards
## 📬 Questions?
- Open an issue for questions
- Join Discord for discussions
- Contact maintainer: via GitHub issues
## 🎁 Recognition
Contributors will be:
- Listed in commit history
- Mentioned in release notes
- Credited for significant additions
## 📜 License
By contributing, you agree that your contributions will be licensed under the repository's existing license.
---
Thank you for helping build the most comprehensive collection of AI tool system prompts! 🙏

65
Cursor Prompts/README.md Normal file
View File

@ -0,0 +1,65 @@
# Cursor AI System Prompts
System prompts and tools for Cursor, the AI-first code editor.
## 📋 Contents
Cursor uses multiple specialized prompts for different modes:
### Agent Prompts
- **Agent Prompt.txt** - Current agent system prompt
- **Agent Prompt v1.0.txt** - Version 1.0 of agent prompt
- **Agent Prompt v1.2.txt** - Version 1.2 of agent prompt
- **Agent Prompt 2025-09-03.txt** - September 2025 version
- **Agent CLI Prompt 2025-08-07.txt** - CLI agent version
### Other Modes
- **Chat Prompt.txt** - Chat mode system prompt
- **Memory Prompt.txt** - Memory system for context retention
- **Memory Rating Prompt.txt** - Memory importance rating system
### Tools
- **Agent Tools v1.0.json** - Tool definitions for agent mode
## 🤖 Models
Cursor supports multiple AI models:
- Claude (Anthropic)
- GPT-4 (OpenAI)
- Custom fine-tuned models
## 🎯 Features
Cursor's prompts enable:
- **Agentic Coding**: Autonomous code generation and modification
- **Multi-file Editing**: Changes across multiple files
- **Memory System**: Retains context across sessions
- **Tool Integration**: File operations, terminal commands, search
- **Version Control**: Git integration
## 📊 Prompt Evolution
| Version | Date | Key Changes |
|---------|------|-------------|
| v1.0 | Early 2024 | Initial agent capabilities |
| v1.2 | Mid 2024 | Enhanced memory system |
| CLI 2025-08 | August 2025 | CLI-specific optimizations |
| Latest | September 2025 | Improved agentic workflows |
## 🔗 Links
- **Official Website**: [cursor.com](https://cursor.com)
- **Documentation**: [cursor.com/docs](https://cursor.com/docs)
- **GitHub**: [Cursor community](https://github.com/getcursor)
## 💡 Use Cases
- Full-stack application development
- Refactoring large codebases
- Learning new frameworks
- Bug fixing and debugging
- Documentation generation
---
[← Back to main repository](../)

View File

@ -0,0 +1,77 @@
# Open Source AI Coding Tools
Collection of system prompts from open-source AI coding assistants and tools.
## 📂 Tools Included
### [Bolt](./Bolt/)
AI-powered full-stack web development tool.
- Focus: Rapid prototyping and deployment
- Stack: Modern web frameworks
### [Cline](./Cline/)
Autonomous coding agent for VSCode.
- Focus: Multi-file editing and task execution
- Integration: VSCode extension
### [Codex CLI](./Codex%20CLI/)
Command-line interface for OpenAI Codex.
- Focus: Terminal-based coding assistance
- Platform: Cross-platform CLI
### [Gemini CLI](./Gemini%20CLI/)
Google's Gemini model CLI interface.
- Focus: Code generation and analysis
- Model: Gemini Pro
### [Lumo](./Lumo/)
Lightweight AI coding assistant.
- Focus: Minimalist, efficient coding help
- Approach: Simple, focused interactions
### [RooCode](./RooCode/)
Comprehensive AI coding assistant.
- Focus: Full-featured development support
- Features: Multiple modes and capabilities
## 🌟 Why Open Source?
These tools demonstrate:
- **Transparency**: Open system prompts show how AI tools work
- **Learning**: Study prompt engineering techniques
- **Customization**: Adapt prompts for your needs
- **Innovation**: Build upon existing work
## 📊 Comparison
| Tool | Lines | Focus | Best For |
|------|-------|-------|----------|
| Bolt | ~21K | Web Dev | Full-stack apps |
| Cline | ~47K | VSCode | IDE integration |
| Codex CLI | ~24K | Terminal | CLI workflows |
| Gemini CLI | ~19K | General | Google ecosystem |
| Lumo | ~8K | Lightweight | Simple tasks |
| RooCode | ~44K | Comprehensive | Complex projects |
## 🛠️ Using These Prompts
1. **Study**: Learn prompt engineering patterns
2. **Adapt**: Customize for your use case
3. **Integrate**: Use with compatible LLMs
4. **Contribute**: Improve and share back
## 📝 License
Each tool has its own license. Please check individual directories for details.
## 🤝 Contributing
To add new open-source tools:
1. Ensure the tool is truly open source
2. Include all relevant prompt files
3. Add metadata and description
4. Update this README
---
[← Back to main repository](../)

232
README.md
View File

@ -28,7 +28,7 @@
<a href="https://trendshift.io/repositories/14084" target="_blank"><img src="https://trendshift.io/api/badge/repositories/14084" alt="x1xhlol%2Fsystem-prompts-and-models-of-ai-tools | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a> <a href="https://trendshift.io/repositories/14084" target="_blank"><img src="https://trendshift.io/api/badge/repositories/14084" alt="x1xhlol%2Fsystem-prompts-and-models-of-ai-tools | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
📜 Over **30,000+ lines** of insights into their structure and functionality. 📜 Over **25,000+ lines** of insights into 32+ AI coding tools and their system prompts.
⭐ **Star to follow updates** ⭐ **Star to follow updates**
@ -68,7 +68,9 @@ Sponsor the most comprehensive collection of AI system prompts and reach thousan
## 📑 Table of Contents ## 📑 Table of Contents
- [📑 Table of Contents](#-table-of-contents) - [📑 Table of Contents](#-table-of-contents)
- [📂 Available Files](#-available-files) - [🚀 Quick Start](#-quick-start)
- [📂 Available Tools](#-available-tools)
- [🔍 Search & Discovery](#-search--discovery)
- [🛠 Roadmap \& Feedback](#-roadmap--feedback) - [🛠 Roadmap \& Feedback](#-roadmap--feedback)
- [🔗 Connect With Me](#-connect-with-me) - [🔗 Connect With Me](#-connect-with-me)
- [🛡️ Security Notice for AI Startups](#-security-notice-for-ai-startups) - [🛡️ Security Notice for AI Startups](#-security-notice-for-ai-startups)
@ -76,52 +78,200 @@ Sponsor the most comprehensive collection of AI system prompts and reach thousan
--- ---
## 📂 Available Files ## 🚀 Quick Start
- [**v0**](./v0%20Prompts%20and%20Tools/) ### Browse Tools
- [**Manus**](./Manus%20Agent%20Tools%20&%20Prompt/) Explore 32+ AI coding tools organized by category below, or use our search tools:
- [**Augment Code**](./Augment%20Code/)
- [**Lovable**](./Lovable/) ```bash
- [**Devin**](./Devin%20AI/) # Generate metadata index
- [**Same.dev**](./Same.dev/) python scripts/generate_metadata.py
- [**Replit**](./Replit/)
- [**Windsurf Agent**](./Windsurf/) # Search by category
- [**VSCode (Copilot) Agent**](./VSCode%20Agent/) python scripts/search.py --category "Code Assistant"
- [**Cursor**](./Cursor%20Prompts/)
- [**Dia**](./dia/) # Search by company
- [**Trae AI**](./Trae/) python scripts/search.py --company "Anthropic"
- [**Perplexity**](./Perplexity/)
- [**Cluely**](./Cluely/) # View statistics
- [**Xcode**](./Xcode/) python scripts/analyze.py
- [**Leap.new**](./Leap.new/)
- [**Notion AI**](./NotionAi/) # Validate repository
- [**Orchids.app**](./Orchids.app/) python scripts/validate.py
- [**Junie**](./Junie/) ```
- [**Kiro**](./Kiro/)
- [**Warp.dev**](./Warp.dev/) ### What's Included
- [**Z.ai Code**](./Z.ai%20Code/) Each tool directory contains:
- [**Qoder**](./Qoder/) - **System prompts** - The core instructions that guide AI behavior
- [**Claude Code**](./Claude%20Code/) - **Tool definitions** - JSON schemas for function calling and tool use
- [**Open Source prompts**](./Open%20Source%20prompts/) - **Documentation** - READMEs explaining the tool and its features
- [Codex CLI](./Open%20Source%20prompts/Codex%20CLI/)
- [Cline](./Open%20Source%20prompts/Cline/) ---
- [Bolt](./Open%20Source%20prompts/Bolt/)
- [RooCode](./Open%20Source%20prompts/RooCode/) ## 📂 Available Tools
- [Lumo](./Open%20Source%20prompts/Lumo/)
- [Gemini CLI](./Open%20Source%20prompts/Gemini%20CLI/) ### 🏢 IDEs & Code Editors
- [**CodeBuddy**](./CodeBuddy%20Prompts/) AI-powered development environments with integrated assistants
- [**Poke**](./Poke/)
- [**Comet Assistant**](./Comet%20Assistant/) - [**Cursor**](./Cursor%20Prompts/) - AI-first code editor with agent mode
- [**Anthropic**](./Anthropic/) - [**VSCode (Copilot) Agent**](./VSCode%20Agent/) - GitHub Copilot for VSCode
- [**Amp**](./AMp/) - [**Windsurf**](./Windsurf/) - Codeium's AI-powered editor
- [**Xcode**](./Xcode/) - Apple's IDE with AI features
### 🤖 Autonomous AI Agents
Tools that can independently execute complex coding tasks
- [**Devin**](./Devin%20AI/) - Autonomous AI software engineer
- [**Emergent**](./Emergent/) - AI coding agent
- [**Manus**](./Manus%20Agent%20Tools%20&%20Prompt/) - Agent with loop and modules
- [**Poke**](./Poke/) - Multi-part agent system
- [**Trae**](./Trae/) - Builder and chat modes
- [**Traycer AI**](./Traycer%20AI/) - Multi-mode agent (Phase, Plan)
### 💻 Code Assistants
AI helpers for code completion, generation, and analysis
- [**Augment Code**](./Augment%20Code/) - AI-powered code completion
- [**Claude Code**](./Claude%20Code/) - Anthropic's official coding interface
- [**Cluely**](./Cluely/) - Default and enterprise modes
- [**CodeBuddy**](./CodeBuddy%20Prompts/) - Chat and Craft modes
- [**Comet Assistant**](./Comet%20Assistant/) - General purpose coding AI
- [**Dia**](./dia/) - AI coding assistant
- [**Junie**](./Junie/) - AI coding helper
- [**Kiro**](./Kiro/) - Multi-mode assistant (Spec, Vibe)
- [**Qoder**](./Qoder/) - Quest-based code assistant
- [**Same.dev**](./Same.dev/) - AI coding assistant
- [**Z.ai Code**](./Z.ai%20Code/) - AI coding tool
### 🌐 Web & App Builders
AI tools for building full applications and UIs
- [**v0**](./v0%20Prompts%20and%20Tools/) - Vercel's AI UI generation
- [**Lovable**](./Lovable/) - AI-powered app builder
- [**Leap.new**](./Leap.new/) - AI web application builder
- [**Bolt**](./Open%20Source%20prompts/Bolt/) - Full-stack web development
### 🏭 Cloud Platforms
Integrated development platforms with AI
- [**Replit**](./Replit/) - Cloud IDE with AI agent
- [**Amp**](./Amp/) - AI coding platform
### 🖥️ Terminal & CLI
Command-line AI assistants
- [**Warp.dev**](./Warp.dev/) - AI-powered terminal
- [**Codex CLI**](./Open%20Source%20prompts/Codex%20CLI/) - OpenAI Codex CLI
- [**Gemini CLI**](./Open%20Source%20prompts/Gemini%20CLI/) - Google Gemini CLI
### 🧠 Foundation Models
Core AI model prompts from major providers
- [**Anthropic**](./Anthropic/) - Claude Sonnet 4.5 & Claude Code 2.0
- [**Perplexity**](./Perplexity/) - AI search and answer engine
### 📝 Document & Knowledge
AI assistants for documentation and knowledge work
- [**Notion AI**](./NotionAi/) - Integrated into Notion
- [**Orchids.app**](./Orchids.app/) - Decision-making AI assistant
### 🌟 Open Source Collection
Community-built and transparent AI tools
- [**Cline**](./Open%20Source%20prompts/Cline/) - Autonomous VSCode agent
- [**RooCode**](./Open%20Source%20prompts/RooCode/) - Comprehensive assistant
- [**Lumo**](./Open%20Source%20prompts/Lumo/) - Lightweight coding AI
- [**Bolt**](./Open%20Source%20prompts/Bolt/) - Full-stack web tool
---
## 🔍 Search & Discovery
### Using Search Tools
**Search by category:**
```bash
python scripts/search.py --category "Code Assistant"
```
**Find tools by company:**
```bash
python scripts/search.py --company "Anthropic"
```
**Search for specific models:**
```bash
python scripts/search.py --model "gpt-5"
```
**Full-text search:**
```bash
python scripts/search.py --text "agent"
```
**Detailed view:**
```bash
python scripts/search.py --category "IDE" --verbose
```
### Analysis & Statistics
**Generate comprehensive statistics:**
```bash
python scripts/analyze.py
```
**Validate repository structure:**
```bash
python scripts/validate.py
```
### Quick Reference
**List all categories:**
```bash
python scripts/search.py --list-categories
```
**List all companies:**
```bash
python scripts/search.py --list-companies
```
--- ---
## 🛠 Roadmap & Feedback ## 🛠 Roadmap & Feedback
> Open an issue. ### What's New in v2.0 🎉
> **Latest Update:** 19/10/2025 **Major enhancements:**
- ✨ **Searchable Index**: Find tools by category, company, or model
- 📊 **Analysis Tools**: Generate statistics and comparisons
- ✅ **Validation**: Automated quality checks
- 📚 **Better Documentation**: Individual READMEs for key tools
- 🗂️ **Organized by Category**: Browse by IDE, Agent, Assistant, etc.
- 🔍 **Discovery Tools**: Python scripts for searching and analysis
**New Scripts:**
- `generate_metadata.py` - Create searchable index
- `validate.py` - Check repository quality
- `search.py` - Search and filter tools
- `analyze.py` - Generate statistics
See [CHANGELOG.md](./CHANGELOG.md) for full details.
### Future Roadmap
- [ ] Web interface for browsing prompts
- [ ] Prompt comparison and diff tools
- [ ] Community ratings and reviews
- [ ] API for programmatic access
- [ ] More individual tool READMEs
- [ ] Automated version tracking
> Open an issue for feature requests or bug reports.
> **Latest Update:** 15/11/2025
--- ---

230
scripts/README.md Normal file
View File

@ -0,0 +1,230 @@
# Repository Scripts
Automation and analysis tools for the AI tools prompt repository.
## 📋 Available Scripts
### 🔍 `generate_metadata.py`
Generates a comprehensive metadata index of all tools in the repository.
**Usage:**
```bash
python scripts/generate_metadata.py
```
**Output:**
- Creates `scripts/index.json` with complete tool metadata
- Shows statistics about tools, files, and line counts
- Categorizes tools by type, category, and company
**What it does:**
- Scans all directories for .txt, .json, and .md files
- Counts lines in text files
- Collects file sizes and metadata
- Organizes by predefined categories
- Generates searchable index
---
### ✅ `validate.py`
Validates repository structure and finds issues.
**Usage:**
```bash
python scripts/validate.py
```
**Checks performed:**
- ✓ README links point to valid directories
- ✓ All directories are listed in README
- ✓ No empty files exist
- ✓ File naming consistency
- ✓ Directory structure validity
**Exit codes:**
- `0` - All checks passed or only warnings
- `1` - Errors found
---
### 🔎 `search.py`
Search and filter tools by various criteria.
**Usage:**
```bash
# Search by category
python scripts/search.py --category "Code Assistant"
# Search by company
python scripts/search.py --company "Anthropic"
# Search by model
python scripts/search.py --model "gpt-5"
# Full-text search
python scripts/search.py --text "agent"
# Filter by type
python scripts/search.py --type "open-source"
# Verbose output
python scripts/search.py --category "IDE" --verbose
# List all categories
python scripts/search.py --list-categories
# List all companies
python scripts/search.py --list-companies
```
**Options:**
- `--category` - Filter by category (IDE, Code Assistant, etc.)
- `--company` - Filter by company name
- `--text` - Search in name and description
- `--model` - Filter by AI model used
- `--type` - Filter by type (proprietary/open-source)
- `--verbose, -v` - Show detailed information
- `--list-categories` - List all available categories
- `--list-companies` - List all companies
**Requirements:**
Run `generate_metadata.py` first to create the index.
---
### 📊 `analyze.py`
Generate comprehensive statistics and analysis.
**Usage:**
```bash
python scripts/analyze.py
```
**Analysis includes:**
- Overall repository statistics
- Tools by category (bar chart)
- Tools by company (bar chart)
- Tools by type (proprietary vs open-source)
- AI models usage
- Complexity analysis (by line count and file count)
- File size analysis
- Top 10 largest files
**Output:**
- Console output with colored charts
- `scripts/comparison_table.md` - Markdown comparison table
**Requirements:**
Run `generate_metadata.py` first to create the index.
---
## 🚀 Quick Start
**Complete analysis workflow:**
```bash
# 1. Generate metadata
python scripts/generate_metadata.py
# 2. Validate repository
python scripts/validate.py
# 3. View statistics
python scripts/analyze.py
# 4. Search for tools
python scripts/search.py --category "Code Assistant"
```
---
## 📁 Generated Files
Scripts generate the following files:
- `scripts/index.json` - Complete metadata index
- `scripts/comparison_table.md` - Markdown comparison table
These files are gitignored and regenerated on demand.
---
## 🔧 Technical Details
### Dependencies
All scripts use Python 3 standard library only. No external dependencies required.
### Python Version
Requires Python 3.6+
### File Structure
```
scripts/
├── README.md # This file
├── generate_metadata.py # Metadata generator
├── validate.py # Validation tool
├── search.py # Search tool
├── analyze.py # Analysis tool
├── index.json # Generated metadata (gitignored)
└── comparison_table.md # Generated comparison (gitignored)
```
### Adding New Tools to Metadata
To add metadata for new tools, edit `generate_metadata.py`:
```python
TOOL_INFO = {
"Tool Name": {
"name": "Display Name",
"company": "Company Name",
"category": "Code Assistant", # See categories below
"type": "proprietary", # or "open-source"
"description": "Brief description",
"website": "https://example.com",
"models": ["model-1", "model-2"]
}
}
```
**Categories:**
- `Code Assistant` - AI coding helpers
- `IDE` - Integrated development environments
- `AI Agent` - Autonomous agents
- `Web Builder` - UI/web generation tools
- `Terminal` - CLI-based tools
- `Cloud IDE` - Cloud development platforms
- `Document Assistant` - Documentation tools
- `Search Assistant` - Search/research tools
- `Foundation Model` - Base model prompts
---
## 🎨 Color Output
Scripts use ANSI color codes for better readability:
- 🔵 Blue - Headers and titles
- 🟢 Green - Success and data bars
- 🟡 Yellow - Warnings
- 🔴 Red - Errors
---
## 🤝 Contributing
To add new scripts:
1. Follow Python 3 standard library only (no external deps)
2. Add comprehensive docstrings
3. Update this README
4. Follow existing code style
5. Add usage examples
---
## 📄 License
Scripts are part of the main repository and follow the same license.
---
[← Back to main repository](../)

181
scripts/analyze.py Executable file
View File

@ -0,0 +1,181 @@
#!/usr/bin/env python3
"""
Analyze and generate statistics about AI tools in the repository.
Creates comparison charts and statistics.
"""
import json
import os
from collections import defaultdict
class Colors:
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
CYAN = '\033[96m'
RESET = '\033[0m'
BOLD = '\033[1m'
def load_index():
"""Load the metadata index."""
index_path = "scripts/index.json"
if not os.path.exists(index_path):
print("Error: index.json not found. Run 'python scripts/generate_metadata.py' first.")
exit(1)
with open(index_path, 'r', encoding='utf-8') as f:
return json.load(f)
def print_header(text):
"""Print a formatted header."""
print(f"\n{Colors.BOLD}{Colors.BLUE}{'='*70}{Colors.RESET}")
print(f"{Colors.BOLD}{Colors.BLUE}{text.center(70)}{Colors.RESET}")
print(f"{Colors.BOLD}{Colors.BLUE}{'='*70}{Colors.RESET}\n")
def print_bar_chart(data, title, max_width=50):
"""Print a horizontal bar chart."""
print(f"{Colors.BOLD}{title}{Colors.RESET}")
if not data:
print(" No data available")
return
max_value = max(data.values())
for key, value in sorted(data.items(), key=lambda x: x[1], reverse=True):
bar_length = int((value / max_value) * max_width) if max_value > 0 else 0
bar = '' * bar_length
print(f" {key:30} {Colors.GREEN}{bar}{Colors.RESET} {value}")
def analyze_by_category(index):
"""Analyze tools by category."""
print_bar_chart(index['stats']['by_category'], "Tools by Category")
def analyze_by_company(index):
"""Analyze tools by company."""
companies = defaultdict(int)
for tool in index['tools']:
company = tool.get('company', 'Unknown')
companies[company] += 1
print_bar_chart(dict(companies), "Tools by Company")
def analyze_by_type(index):
"""Analyze tools by type."""
print_bar_chart(index['stats']['by_type'], "Tools by Type")
def analyze_file_sizes(index):
"""Analyze file sizes and line counts."""
print(f"{Colors.BOLD}File Size Analysis{Colors.RESET}")
total_size = 0
largest_files = []
for tool in index['tools']:
for file in tool.get('files', []):
total_size += file['size']
largest_files.append((file['path'], file['size'], tool['name']))
# Sort and get top 10
largest_files.sort(key=lambda x: x[1], reverse=True)
print(f"\n Total Size: {total_size / 1024 / 1024:.2f} MB")
print(f"\n {Colors.BOLD}Top 10 Largest Files:{Colors.RESET}")
for path, size, tool_name in largest_files[:10]:
size_kb = size / 1024
print(f" {path:50} {size_kb:8.1f} KB ({tool_name})")
def analyze_models(index):
"""Analyze AI models used."""
print(f"{Colors.BOLD}AI Models Analysis{Colors.RESET}\n")
model_count = defaultdict(int)
for tool in index['tools']:
for model in tool.get('models', []):
model_count[model] += 1
if model_count:
print(" Models mentioned in tools:")
for model, count in sorted(model_count.items(), key=lambda x: x[1], reverse=True):
print(f" {model:30} {count} tool(s)")
else:
print(" No model information available in metadata")
def analyze_complexity(index):
"""Analyze complexity based on line count and file count."""
print(f"{Colors.BOLD}Complexity Analysis{Colors.RESET}\n")
# Sort by total lines
by_lines = sorted(index['tools'], key=lambda x: x.get('total_lines', 0), reverse=True)
print(f" {Colors.BOLD}Most Complex (by line count):{Colors.RESET}")
for i, tool in enumerate(by_lines[:10], 1):
lines = tool.get('total_lines', 0)
files = tool.get('file_count', 0)
print(f" {i:2}. {tool['name']:30} {lines:6,} lines, {files:2} files")
# Sort by file count
by_files = sorted(index['tools'], key=lambda x: x.get('file_count', 0), reverse=True)
print(f"\n {Colors.BOLD}Most Files:{Colors.RESET}")
for i, tool in enumerate(by_files[:10], 1):
files = tool.get('file_count', 0)
print(f" {i:2}. {tool['name']:30} {files:2} files")
def generate_comparison_table(index):
"""Generate a markdown comparison table."""
print(f"{Colors.BOLD}Generating Comparison Table (Markdown){Colors.RESET}\n")
md = "| Tool | Company | Category | Files | Lines | Models |\n"
md += "|------|---------|----------|-------|-------|--------|\n"
for tool in sorted(index['tools'], key=lambda x: x['name']):
name = tool['name']
company = tool.get('company', 'Unknown')
category = tool.get('category', 'Unknown')
files = tool.get('file_count', 0)
lines = tool.get('total_lines', 0)
models = ', '.join(tool.get('models', [])[:2]) if tool.get('models') else 'N/A'
if len(tool.get('models', [])) > 2:
models += '...'
md += f"| {name} | {company} | {category} | {files} | {lines:,} | {models} |\n"
# Save to file
output_path = "scripts/comparison_table.md"
with open(output_path, 'w', encoding='utf-8') as f:
f.write(md)
print(f" Saved to: {output_path}")
def main():
"""Run all analyses."""
index = load_index()
print_header("AI Tools Repository Analysis")
# Overall stats
print(f"{Colors.BOLD}Overall Statistics{Colors.RESET}")
print(f" Total Tools: {Colors.CYAN}{index['stats']['total_tools']}{Colors.RESET}")
print(f" Total Files: {Colors.CYAN}{index['stats']['total_files']}{Colors.RESET}")
print(f" Total Lines: {Colors.CYAN}{index['stats']['total_lines']:,}{Colors.RESET}")
print()
analyze_by_category(index)
print()
analyze_by_company(index)
print()
analyze_by_type(index)
print()
analyze_models(index)
print()
analyze_complexity(index)
print()
analyze_file_sizes(index)
print()
generate_comparison_table(index)
print(f"\n{Colors.GREEN}Analysis complete!{Colors.RESET}\n")
if __name__ == "__main__":
main()

420
scripts/generate_metadata.py Executable file
View File

@ -0,0 +1,420 @@
#!/usr/bin/env python3
"""
Generate metadata for all AI tools in the repository.
Creates an index.json file with comprehensive information about each tool.
"""
import os
import json
from pathlib import Path
from datetime import datetime
# Tool metadata - manually curated information about each tool
TOOL_INFO = {
"Amp": {
"name": "Amp",
"company": "Unknown",
"category": "AI Agent",
"type": "proprietary",
"description": "AI coding assistant",
"website": None,
"models": []
},
"Anthropic": {
"name": "Anthropic",
"company": "Anthropic",
"category": "Foundation Model",
"type": "proprietary",
"description": "Claude Sonnet 4.5 and Claude Code 2.0 system prompts",
"website": "https://anthropic.com",
"models": ["claude-sonnet-4.5", "claude-code-2.0"]
},
"Augment Code": {
"name": "Augment Code",
"company": "Augment",
"category": "Code Assistant",
"type": "proprietary",
"description": "AI-powered code completion and generation",
"website": "https://augmentcode.com",
"models": ["claude-4-sonnet", "gpt-5"]
},
"Claude Code": {
"name": "Claude Code",
"company": "Anthropic",
"category": "Code Assistant",
"type": "proprietary",
"description": "Claude's official coding interface system prompt and tools",
"website": "https://claude.ai/code",
"models": ["claude-sonnet-4.5"]
},
"Cluely": {
"name": "Cluely",
"company": "Cluely",
"category": "Code Assistant",
"type": "proprietary",
"description": "AI coding assistant with default and enterprise modes",
"website": None,
"models": []
},
"CodeBuddy Prompts": {
"name": "CodeBuddy",
"company": "CodeBuddy",
"category": "Code Assistant",
"type": "proprietary",
"description": "Chat and Craft mode prompts for code generation",
"website": None,
"models": []
},
"Comet Assistant": {
"name": "Comet Assistant",
"company": "Comet",
"category": "AI Assistant",
"type": "proprietary",
"description": "General purpose AI coding assistant",
"website": None,
"models": []
},
"Cursor Prompts": {
"name": "Cursor",
"company": "Cursor",
"category": "IDE",
"type": "proprietary",
"description": "AI-first code editor with multiple agent modes",
"website": "https://cursor.com",
"models": ["claude", "gpt-4"]
},
"Devin AI": {
"name": "Devin",
"company": "Cognition AI",
"category": "AI Agent",
"type": "proprietary",
"description": "Autonomous AI software engineer",
"website": "https://devin.ai",
"models": []
},
"Emergent": {
"name": "Emergent",
"company": "Emergent",
"category": "AI Agent",
"type": "proprietary",
"description": "AI coding agent with tools",
"website": None,
"models": []
},
"Junie": {
"name": "Junie",
"company": "Junie",
"category": "Code Assistant",
"type": "proprietary",
"description": "AI coding assistant",
"website": None,
"models": []
},
"Kiro": {
"name": "Kiro",
"company": "Kiro",
"category": "Code Assistant",
"type": "proprietary",
"description": "Multi-mode AI assistant (Spec, Vibe, Mode Classifier)",
"website": None,
"models": []
},
"Leap.new": {
"name": "Leap",
"company": "Leap",
"category": "Web Builder",
"type": "proprietary",
"description": "AI-powered web application builder",
"website": "https://leap.new",
"models": []
},
"Lovable": {
"name": "Lovable",
"company": "Lovable",
"category": "Web Builder",
"type": "proprietary",
"description": "AI-powered app builder",
"website": "https://lovable.dev",
"models": []
},
"Manus Agent Tools & Prompt": {
"name": "Manus",
"company": "Manus",
"category": "AI Agent",
"type": "proprietary",
"description": "Agent with loop, modules, and tools",
"website": None,
"models": []
},
"NotionAi": {
"name": "Notion AI",
"company": "Notion",
"category": "Document Assistant",
"type": "proprietary",
"description": "AI assistant integrated into Notion",
"website": "https://notion.so",
"models": []
},
"Open Source prompts": {
"name": "Open Source AI Tools",
"company": "Various",
"category": "Collection",
"type": "open-source",
"description": "Collection of open-source AI coding tools",
"website": None,
"models": [],
"subcategories": ["Bolt", "Cline", "Codex CLI", "Gemini CLI", "Lumo", "RooCode"]
},
"Orchids.app": {
"name": "Orchids",
"company": "Orchids",
"category": "AI Assistant",
"type": "proprietary",
"description": "AI assistant with decision-making capabilities",
"website": "https://orchids.app",
"models": []
},
"Perplexity": {
"name": "Perplexity",
"company": "Perplexity AI",
"category": "Search Assistant",
"type": "proprietary",
"description": "AI-powered search and answer engine",
"website": "https://perplexity.ai",
"models": []
},
"Poke": {
"name": "Poke",
"company": "Poke",
"category": "AI Agent",
"type": "proprietary",
"description": "Multi-part agent system (6 parts + agent)",
"website": None,
"models": []
},
"Qoder": {
"name": "Qoder",
"company": "Qoder",
"category": "Code Assistant",
"type": "proprietary",
"description": "Quest-based code assistant (Design, Action)",
"website": None,
"models": []
},
"Replit": {
"name": "Replit Agent",
"company": "Replit",
"category": "Cloud IDE",
"type": "proprietary",
"description": "AI agent for Replit cloud development environment",
"website": "https://replit.com",
"models": []
},
"Same.dev": {
"name": "Same",
"company": "Same",
"category": "Code Assistant",
"type": "proprietary",
"description": "AI coding assistant",
"website": "https://same.dev",
"models": []
},
"Trae": {
"name": "Trae",
"company": "Trae",
"category": "AI Agent",
"type": "proprietary",
"description": "Builder and chat modes for development",
"website": None,
"models": []
},
"Traycer AI": {
"name": "Traycer",
"company": "Traycer",
"category": "AI Agent",
"type": "proprietary",
"description": "Multi-mode agent (Phase, Plan)",
"website": None,
"models": []
},
"VSCode Agent": {
"name": "VSCode Copilot Agent",
"company": "Microsoft/GitHub",
"category": "IDE",
"type": "proprietary",
"description": "GitHub Copilot agent for VSCode",
"website": "https://code.visualstudio.com",
"models": ["gpt-4", "gpt-4.1", "gpt-5", "gpt-5-mini", "claude-sonnet-4", "gemini-2.5-pro"]
},
"Warp.dev": {
"name": "Warp",
"company": "Warp",
"category": "Terminal",
"type": "proprietary",
"description": "AI-powered terminal",
"website": "https://warp.dev",
"models": []
},
"Windsurf": {
"name": "Windsurf",
"company": "Codeium",
"category": "IDE",
"type": "proprietary",
"description": "AI-powered code editor (Wave 11)",
"website": "https://codeium.com/windsurf",
"models": []
},
"Xcode": {
"name": "Xcode AI",
"company": "Apple",
"category": "IDE",
"type": "proprietary",
"description": "AI features in Xcode (Document, Explain, Message, Playground, Preview)",
"website": "https://developer.apple.com/xcode/",
"models": []
},
"Z.ai Code": {
"name": "Z.ai Code",
"company": "Z.ai",
"category": "Code Assistant",
"type": "proprietary",
"description": "AI coding assistant",
"website": None,
"models": []
},
"dia": {
"name": "Dia",
"company": "Dia",
"category": "Code Assistant",
"type": "proprietary",
"description": "AI coding assistant",
"website": None,
"models": []
},
"v0 Prompts and Tools": {
"name": "v0",
"company": "Vercel",
"category": "Web Builder",
"type": "proprietary",
"description": "AI-powered UI generation tool",
"website": "https://v0.dev",
"models": []
}
}
def get_file_info(filepath):
"""Get metadata about a file."""
stat = os.stat(filepath)
return {
"name": os.path.basename(filepath),
"path": filepath,
"size": stat.st_size,
"type": os.path.splitext(filepath)[1],
"modified": datetime.fromtimestamp(stat.st_mtime).isoformat()
}
def analyze_directory(dir_path):
"""Analyze a directory and gather metadata."""
files = []
total_lines = 0
for root, dirs, filenames in os.walk(dir_path):
for filename in filenames:
if filename.endswith(('.txt', '.json', '.md')):
filepath = os.path.join(root, filename)
file_info = get_file_info(filepath)
# Count lines for text files
if file_info['type'] in ['.txt', '.md']:
try:
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
lines = len(f.readlines())
file_info['lines'] = lines
total_lines += lines
except Exception:
file_info['lines'] = 0
files.append(file_info)
return files, total_lines
def generate_index():
"""Generate comprehensive index of all tools."""
index = {
"generated": datetime.now().isoformat(),
"repository": "system-prompts-and-models-of-ai-tools",
"version": "2.0",
"stats": {
"total_tools": 0,
"total_files": 0,
"total_lines": 0,
"by_category": {},
"by_type": {}
},
"tools": []
}
# Scan all directories
for item in sorted(os.listdir('.')):
if os.path.isdir(item) and item not in ['.git', 'assets', '.github', 'scripts']:
# Get metadata
info = TOOL_INFO.get(item, {
"name": item,
"company": "Unknown",
"category": "Unknown",
"type": "unknown",
"description": "No description available",
"website": None,
"models": []
})
# Analyze files
files, total_lines = analyze_directory(item)
tool_data = {
**info,
"directory": item,
"files": files,
"file_count": len(files),
"total_lines": total_lines
}
index["tools"].append(tool_data)
index["stats"]["total_tools"] += 1
index["stats"]["total_files"] += len(files)
index["stats"]["total_lines"] += total_lines
# Update category stats
category = info.get("category", "Unknown")
index["stats"]["by_category"][category] = index["stats"]["by_category"].get(category, 0) + 1
# Update type stats
tool_type = info.get("type", "unknown")
index["stats"]["by_type"][tool_type] = index["stats"]["by_type"].get(tool_type, 0) + 1
return index
if __name__ == "__main__":
print("Generating metadata index...")
index = generate_index()
# Write to file
output_path = "scripts/index.json"
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(index, f, indent=2, ensure_ascii=False)
print(f"\n✓ Generated {output_path}")
print(f"\nStatistics:")
print(f" Total Tools: {index['stats']['total_tools']}")
print(f" Total Files: {index['stats']['total_files']}")
print(f" Total Lines: {index['stats']['total_lines']:,}")
print(f"\nBy Category:")
for cat, count in sorted(index['stats']['by_category'].items()):
print(f" {cat}: {count}")
print(f"\nBy Type:")
for typ, count in sorted(index['stats']['by_type'].items()):
print(f" {typ}: {count}")

153
scripts/search.py Executable file
View File

@ -0,0 +1,153 @@
#!/usr/bin/env python3
"""
Search and filter AI tools in the repository.
Usage:
python scripts/search.py --category "Code Assistant"
python scripts/search.py --company "Anthropic"
python scripts/search.py --text "agent"
python scripts/search.py --model "gpt-5"
"""
import json
import argparse
import os
from pathlib import Path
class Colors:
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RESET = '\033[0m'
BOLD = '\033[1m'
def load_index():
"""Load the metadata index."""
index_path = "scripts/index.json"
if not os.path.exists(index_path):
print(f"Error: {index_path} not found. Run 'python scripts/generate_metadata.py' first.")
exit(1)
with open(index_path, 'r', encoding='utf-8') as f:
return json.load(f)
def search_tools(index, category=None, company=None, text=None, model=None, tool_type=None):
"""Search tools based on criteria."""
results = []
for tool in index['tools']:
# Filter by category
if category and tool.get('category', '').lower() != category.lower():
continue
# Filter by company
if company and company.lower() not in tool.get('company', '').lower():
continue
# Filter by type
if tool_type and tool.get('type', '').lower() != tool_type.lower():
continue
# Filter by model
if model:
models = tool.get('models', [])
if not any(model.lower() in m.lower() for m in models):
continue
# Filter by text in name or description
if text:
searchable = f"{tool.get('name', '')} {tool.get('description', '')}".lower()
if text.lower() not in searchable:
continue
results.append(tool)
return results
def display_results(results, verbose=False):
"""Display search results."""
if not results:
print(f"{Colors.YELLOW}No results found.{Colors.RESET}")
return
print(f"\n{Colors.BOLD}Found {len(results)} tool(s):{Colors.RESET}\n")
for tool in results:
print(f"{Colors.BLUE}{Colors.BOLD}{tool['name']}{Colors.RESET}")
print(f" Company: {tool.get('company', 'Unknown')}")
print(f" Category: {tool.get('category', 'Unknown')}")
print(f" Type: {tool.get('type', 'unknown')}")
if tool.get('website'):
print(f" Website: {tool['website']}")
if tool.get('models'):
print(f" Models: {', '.join(tool['models'])}")
print(f" Files: {tool['file_count']} ({tool.get('total_lines', 0):,} lines)")
if verbose:
print(f" Description: {tool.get('description', 'N/A')}")
print(f" Directory: {tool['directory']}")
if tool.get('files'):
print(" File list:")
for file in tool['files']:
size_kb = file['size'] / 1024
print(f" - {file['name']} ({size_kb:.1f} KB)")
print()
def list_categories(index):
"""List all categories."""
categories = set(tool.get('category', 'Unknown') for tool in index['tools'])
print(f"\n{Colors.BOLD}Available Categories:{Colors.RESET}")
for cat in sorted(categories):
count = sum(1 for t in index['tools'] if t.get('category') == cat)
print(f" {cat} ({count})")
def list_companies(index):
"""List all companies."""
companies = set(tool.get('company', 'Unknown') for tool in index['tools'])
print(f"\n{Colors.BOLD}Available Companies:{Colors.RESET}")
for company in sorted(companies):
count = sum(1 for t in index['tools'] if t.get('company') == company)
print(f" {company} ({count})")
def main():
parser = argparse.ArgumentParser(description='Search AI tools in the repository')
parser.add_argument('--category', help='Filter by category')
parser.add_argument('--company', help='Filter by company')
parser.add_argument('--text', help='Search in name and description')
parser.add_argument('--model', help='Filter by AI model')
parser.add_argument('--type', help='Filter by type (proprietary/open-source)')
parser.add_argument('--verbose', '-v', action='store_true', help='Show detailed information')
parser.add_argument('--list-categories', action='store_true', help='List all categories')
parser.add_argument('--list-companies', action='store_true', help='List all companies')
args = parser.parse_args()
# Load index
index = load_index()
# Handle list commands
if args.list_categories:
list_categories(index)
return
if args.list_companies:
list_companies(index)
return
# Perform search
results = search_tools(
index,
category=args.category,
company=args.company,
text=args.text,
model=args.model,
tool_type=args.type
)
display_results(results, verbose=args.verbose)
if __name__ == "__main__":
main()

167
scripts/validate.py Executable file
View File

@ -0,0 +1,167 @@
#!/usr/bin/env python3
"""
Validate repository structure and content.
Checks for:
- Missing files
- Broken links in README
- Inconsistent naming
- Empty files
- Missing metadata
"""
import os
import re
from pathlib import Path
class Colors:
RED = '\033[91m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
BLUE = '\033[94m'
RESET = '\033[0m'
def check_readme_links():
"""Check all links in README.md point to valid directories."""
issues = []
with open('README.md', 'r', encoding='utf-8') as f:
content = f.read()
# Find all markdown links to directories
links = re.findall(r'\[.*?\]\((\.\/[^)]+)\)', content)
for link in links:
# Decode URL encoding
path = link.replace('%20', ' ')
path = path.replace('./', '')
path = path.rstrip('/')
if not os.path.exists(path) and path not in ['LICENSE.md', 'README.md']:
issues.append(f"Broken link: {link} -> {path} does not exist")
return issues
def check_directory_consistency():
"""Check all directories are listed in README."""
issues = []
# Get all directories
dirs = [d for d in os.listdir('.') if os.path.isdir(d) and d not in ['.git', 'assets', '.github', 'scripts']]
# Read README
with open('README.md', 'r', encoding='utf-8') as f:
readme_content = f.read()
for directory in dirs:
# Check if directory is mentioned in README (flexible matching)
if directory not in readme_content and directory.replace(' ', '%20') not in readme_content:
issues.append(f"Directory '{directory}' not listed in README.md")
return issues
def check_empty_files():
"""Check for empty files."""
issues = []
for root, dirs, files in os.walk('.'):
# Skip .git directory
if '.git' in root:
continue
for file in files:
if file.endswith(('.txt', '.json', '.md')):
filepath = os.path.join(root, file)
if os.path.getsize(filepath) == 0:
issues.append(f"Empty file: {filepath}")
return issues
def check_file_naming_consistency():
"""Check for inconsistent file naming patterns."""
warnings = []
for root, dirs, files in os.walk('.'):
if '.git' in root or 'scripts' in root:
continue
for file in files:
# Check for files without extensions that should have them
if not any(file.endswith(ext) for ext in ['.txt', '.json', '.md', '.png', '.jpg', '.svg']):
if file not in ['.gitignore', 'LICENSE']:
warnings.append(f"File without standard extension: {os.path.join(root, file)}")
# Check for inconsistent naming (mixing underscores and spaces)
if '_' in file and ' ' in file:
warnings.append(f"Inconsistent naming (mixed _ and space): {os.path.join(root, file)}")
return warnings
def check_directory_structure():
"""Check each directory has appropriate files."""
issues = []
for item in os.listdir('.'):
if os.path.isdir(item) and item not in ['.git', 'assets', '.github', 'scripts']:
files = os.listdir(item)
# Check if directory has any content files
has_content = any(f.endswith(('.txt', '.json', '.md')) for f in files)
if not has_content:
issues.append(f"Directory '{item}' has no .txt, .json, or .md files")
return issues
def main():
"""Run all validation checks."""
print(f"{Colors.BLUE}{'='*60}{Colors.RESET}")
print(f"{Colors.BLUE}Repository Validation{Colors.RESET}")
print(f"{Colors.BLUE}{'='*60}{Colors.RESET}\n")
all_issues = []
all_warnings = []
# Run checks
checks = [
("README links", check_readme_links, True),
("Directory consistency", check_directory_consistency, True),
("Empty files", check_empty_files, True),
("File naming", check_file_naming_consistency, False),
("Directory structure", check_directory_structure, True)
]
for check_name, check_func, is_error in checks:
print(f"Checking {check_name}...", end=" ")
results = check_func()
if results:
if is_error:
all_issues.extend(results)
print(f"{Colors.RED}{len(results)} issue(s){Colors.RESET}")
else:
all_warnings.extend(results)
print(f"{Colors.YELLOW}{len(results)} warning(s){Colors.RESET}")
else:
print(f"{Colors.GREEN}{Colors.RESET}")
# Print detailed results
if all_issues:
print(f"\n{Colors.RED}Issues found:{Colors.RESET}")
for issue in all_issues:
print(f" {Colors.RED}{Colors.RESET} {issue}")
if all_warnings:
print(f"\n{Colors.YELLOW}Warnings:{Colors.RESET}")
for warning in all_warnings:
print(f" {Colors.YELLOW}{Colors.RESET} {warning}")
# Summary
print(f"\n{Colors.BLUE}{'='*60}{Colors.RESET}")
if not all_issues and not all_warnings:
print(f"{Colors.GREEN}✓ All checks passed!{Colors.RESET}")
return 0
else:
print(f"Total: {Colors.RED}{len(all_issues)} error(s){Colors.RESET}, {Colors.YELLOW}{len(all_warnings)} warning(s){Colors.RESET}")
return 1 if all_issues else 0
if __name__ == "__main__":
exit(main())