mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2025-12-16 21:45:14 +00:00
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:
parent
0d60d27a55
commit
cb8bb88b4f
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal 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
42
Anthropic/README.md
Normal 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
106
CHANGELOG.md
Normal 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
198
CONTRIBUTING.md
Normal 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
65
Cursor Prompts/README.md
Normal 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](../)
|
||||||
77
Open Source prompts/README.md
Normal file
77
Open Source prompts/README.md
Normal 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
232
README.md
@ -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
230
scripts/README.md
Normal 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
181
scripts/analyze.py
Executable 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
420
scripts/generate_metadata.py
Executable 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
153
scripts/search.py
Executable 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
167
scripts/validate.py
Executable 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())
|
||||||
Loading…
Reference in New Issue
Block a user