Publish Your AI Tool
Share your tool with the world. Automatic discovery, quality scoring, and AI agent integration.
Quick Start
- Create a new NPM package
- Add
tpmjs-toolto keywords - Add a
tpmjsfield with metadata - Publish to NPM
- Your tool appears on tpmjs.com within 15 minutes!
Step 1: Add Required Keyword
Add the tpmjs-tool keyword to your package.json. This is required for automatic discovery.
{
"name": "@yourname/my-awesome-tool",
"version": "1.0.0",
"keywords": ["tpmjs-tool", "ai", "text"],
...
}Step 2: Add TPMJS Metadata
There are three tiers of metadata. Higher tiers get better visibility and quality scores.
{
"tpmjs": {
"category": "text-analysis",
"description": "A concise description of what your tool does",
"example": "const result = await myTool({ input: 'hello' });"
}
}Quality Score: 1x base multiplier
{
"tpmjs": {
"category": "text-analysis",
"description": "Analyzes sentiment in text",
"example": "const result = await analyzeSentiment({ text: 'I love this!' });",
"parameters": [
{
"name": "text",
"type": "string",
"description": "The text to analyze",
"required": true
},
{
"name": "language",
"type": "string",
"description": "Language code (e.g., 'en')",
"required": false,
"default": "en"
}
],
"returns": {
"type": "SentimentResult",
"description": "Object with score and label"
}
}
}Quality Score: 2x base multiplier
{
"tpmjs": {
"category": "text-analysis",
"description": "Advanced sentiment analysis with emotion detection",
"example": "const result = await analyzeSentiment({ text: 'I love this!', includeEmotions: true });",
"parameters": [...],
"returns": {...},
"authentication": {
"type": "api-key",
"required": true
},
"pricing": {
"model": "pay-per-use",
"cost": "$0.001 per request"
},
"frameworks": ["vercel-ai", "langchain"],
"links": {
"documentation": "https://docs.example.com",
"repository": "https://github.com/yourname/tool",
"homepage": "https://yourwebsite.com"
},
"tags": ["sentiment", "nlp", "emotions"],
"status": "stable",
"aiAgent": {
"useCase": "Use when users need to analyze sentiment or detect emotions",
"limitations": "English and Spanish only. Max 10,000 characters",
"examples": [
"Analyze customer review sentiment",
"Detect emotions in feedback"
]
}
}
}Quality Score: 4x base multiplier 🚀
Available Categories
text-analysisNLP, sentiment, summarization
code-generationCode generation and transformation
data-processingData manipulation and transformation
image-generationImage creation and editing
audio-processingAudio/speech processing
searchSearch and retrieval
integrationThird-party integrations
otherAnything else
Step 3: Publish to NPM
Build your package and publish it to NPM. Your tool will be automatically discovered within 15 minutes.
# Build your package
npm run build
# Publish to NPM (use --access public for scoped packages)
npm publish --access public
# That's it! Your tool will appear on tpmjs.com soonQuality Score
Your tool gets a quality score based on three factors:
Tier
- Rich: 4x multiplier
- Basic: 2x multiplier
- Minimal: 1x multiplier
Downloads
Logarithmic scale based on monthly NPM downloads
GitHub Stars
Logarithmic scale based on repository stars
Real Example
Here is a complete example from @tpmjs/createblogpost:
{
"name": "@tpmjs/createblogpost",
"version": "0.2.0",
"keywords": ["tpmjs-tool", "blog", "content"],
"tpmjs": {
"category": "text-analysis",
"description": "Creates structured blog posts with frontmatter and SEO metadata",
"example": "const post = await createBlogPost({ title: 'My Post', author: 'John', content: 'Hello' });",
"parameters": [
{
"name": "title",
"type": "string",
"description": "The title of the blog post",
"required": true
},
{
"name": "content",
"type": "string",
"description": "The main content",
"required": true
}
],
"returns": {
"type": "BlogPost",
"description": "Structured blog post with frontmatter"
},
"frameworks": ["vercel-ai", "langchain"],
"tags": ["blog", "content", "markdown"],
"status": "stable"
}
}Tips for Success
Use descriptive names
Make your package name clear and searchable
Complete metadata
Rich tier tools get 4x better visibility
Good documentation
Link to docs in the links.documentation field
Active maintenance
Regular updates boost download counts
AI-friendly descriptions
Write aiAgent.useCase as guidance for AI agents
Ready to Publish?
Follow the steps above and your tool will be live on TPMJS within 15 minutes.