Initialize SmartTools Registry structure

- Add README.md with usage instructions
- Add CONTRIBUTING.md with publishing guidelines
- Add categories/categories.yaml with 9 tool categories
- Create tools/official/ directory for official namespace

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
rob 2025-12-31 21:37:16 -04:00
commit 9a838f2407
4 changed files with 261 additions and 0 deletions

115
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,115 @@
# Contributing to SmartTools Registry
Thank you for contributing to the SmartTools ecosystem!
## Publishing a Tool
### Prerequisites
1. Install SmartTools: `pip install smarttools`
2. Create an account at the registry website
3. Generate an API token from your dashboard
4. Configure your token: `smarttools config set-token YOUR_TOKEN`
### Tool Structure
Your tool directory should contain:
```
my-tool/
├── config.yaml # Required: Tool definition
└── README.md # Recommended: Documentation
```
### config.yaml Format
```yaml
name: my-tool
version: "1.0.0"
description: A brief description of what your tool does
category: text-processing # See categories below
tags:
- ai
- productivity
arguments:
- flag: --max-length
variable: max_length
default: "500"
description: Maximum output length
steps:
- type: prompt
prompt: |
Summarize the following text in {max_length} characters or less:
{input}
provider: claude
output_var: response
output: "{response}"
```
### Categories
Choose one of these categories:
- `text-processing` - Text manipulation and analysis
- `code` - Code review, generation, analysis
- `data` - Data transformation and analysis
- `media` - Image, audio, video processing
- `productivity` - General productivity tools
- `writing` - Writing assistance and editing
- `translation` - Language translation
- `research` - Research and information gathering
### Publishing
```bash
cd my-tool/
smarttools registry publish
```
Use `--dry-run` to validate without publishing:
```bash
smarttools registry publish --dry-run
```
## Guidelines
### Do's
- Write clear, concise descriptions
- Include usage examples in your README
- Use semantic versioning (MAJOR.MINOR.PATCH)
- Test your tool before publishing
- Choose an appropriate category
### Don'ts
- Don't include secrets or API keys in prompts
- Don't publish tools that duplicate existing official tools
- Don't use misleading names or descriptions
- Don't publish empty or non-functional tools
## Versioning
Once a version is published, it cannot be modified. To make changes:
1. Update your tool locally
2. Bump the version in config.yaml
3. Run `smarttools registry publish`
## Deprecation
To deprecate a tool version, add to your config.yaml:
```yaml
deprecated: true
deprecated_message: "Use v2.0.0 instead - security fix"
replacement: "username/toolname@2.0.0"
```
## Questions?
Open an issue on the [SmartTools repository](https://gitea.brrd.tech/rob/SmartTools/issues).

52
README.md Normal file
View File

@ -0,0 +1,52 @@
# SmartTools Registry
The official registry of tools for [SmartTools](https://gitea.brrd.tech/rob/SmartTools) - a lightweight personal tool builder for AI-powered CLI commands.
## Browse Tools
Visit the web UI: https://registry.smarttools.dev (or your self-hosted instance)
Or use the CLI:
```bash
smarttools registry browse
smarttools registry search <query>
```
## Install a Tool
```bash
smarttools registry install official/summarize
```
## Publish Your Own Tool
1. Create an account at the registry website
2. Generate an API token from your dashboard
3. Run `smarttools registry publish` in your tool directory
See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
## Repository Structure
```
SmartTools-Registry/
├── tools/ # All published tools
│ ├── official/ # Official namespace
│ │ ├── summarize/
│ │ │ ├── config.yaml
│ │ │ └── README.md
│ │ └── translate/
│ │ ├── config.yaml
│ │ └── README.md
│ └── {username}/ # User namespaces
│ └── {toolname}/
│ ├── config.yaml
│ └── README.md
├── categories/
│ └── categories.yaml # Category definitions
└── index.json # Auto-generated search index
```
## License
Tools in this registry are published under their individual licenses as specified in each tool's config.yaml or README.md.

View File

@ -0,0 +1,94 @@
categories:
- name: text-processing
description: Tools for manipulating and analyzing text
icon: "📝"
keywords:
- text
- string
- parse
- format
- clean
- extract
- name: code
description: Tools for code review, generation, and analysis
icon: "💻"
keywords:
- code
- programming
- debug
- review
- refactor
- lint
- name: data
description: Tools for data transformation and analysis
icon: "📊"
keywords:
- data
- json
- csv
- transform
- convert
- analyze
- name: media
description: Tools for image, audio, and video processing
icon: "🎨"
keywords:
- image
- audio
- video
- media
- picture
- sound
- name: productivity
description: General productivity and automation tools
icon: "⚡"
keywords:
- productivity
- automate
- workflow
- task
- organize
- name: writing
description: Writing assistance and editing tools
icon: "✍️"
keywords:
- write
- edit
- grammar
- spelling
- proofread
- draft
- name: translation
description: Language translation tools
icon: "🌍"
keywords:
- translate
- language
- localize
- i18n
- name: research
description: Research and information gathering tools
icon: "🔍"
keywords:
- research
- search
- find
- lookup
- information
- name: summarization
description: Tools for summarizing content
icon: "📋"
keywords:
- summarize
- summary
- tldr
- brief
- condense

0
tools/official/.gitkeep Normal file
View File