Publish Your AI Tool

Share your tool with the world. Automatic discovery, quality scoring, and AI agent integration.

Quick Start

  1. Create a new NPM package
  2. Add tpmjs-tool to keywords
  3. Add a tpmjs field with metadata
  4. Publish to NPM
  5. 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.

Tier 1: MinimalRequired fields only
{ "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

Tier 2: BasicAdd parameter & return info
{ "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

Tier 3: RichFull documentation
{ "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-analysis

NLP, sentiment, summarization

code-generation

Code generation and transformation

data-processing

Data manipulation and transformation

image-generation

Image creation and editing

audio-processing

Audio/speech processing

search

Search and retrieval

integration

Third-party integrations

other

Anything 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 soon

Quality 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.