Publish Your AI Tool

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

๐Ÿš€

Use Our Package Generator

The fastest way to create a TPMJS tool package! Our CLI generator scaffolds a production-ready package with 2-3 tools, complete setup, and best practices built-in.

npx @tpmjs/create-basic-tools

Manual Setup

Prefer to set up manually? Follow these steps:

  1. Create a new NPM package
  2. Add tpmjs 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 keyword to your package.json. This is required for automatic discovery.

{
  "name": "@yourname/my-awesome-tool",
  "version": "1.0.0",
  "keywords": ["tpmjs", "ai", "text"],
  ...
}

Step 2: Add TPMJS Metadata

Add a tpmjs field to your package.json. TPMJS automatically extracts parameter schemas from your tool code, so you only need to provide basic metadata.

โœจ

Automatic Schema Extraction

TPMJS automatically extracts your tool's input schema by analyzing your code. You don't need to manually document parameters, returns, or AI agent guidance in package.json - we extract it from your Zod schema automatically.

๐Ÿ”

Auto-Discovery of Tools

You can omit the tools array entirely! TPMJS will automatically scan your package exports and register any export that has description and execute properties (standard AI SDK tool format).

Minimal (Auto-Discovery)Let TPMJS find your tools
{
  "name": "@yourname/my-awesome-tool",
  "keywords": ["tpmjs"],
  "tpmjs": {
    "category": "text-analysis"
  }
}

That's it! Tools and parameters are automatically discovered and extracted.

With Explicit ToolsOverride auto-discovery with explicit tools
{
  "name": "@yourname/sentiment-tool",
  "keywords": ["tpmjs"],
  "tpmjs": {
    "category": "text-analysis",
    "frameworks": ["vercel-ai", "langchain"],
    "env": [
      {
        "name": "SENTIMENT_API_KEY",
        "description": "API key for sentiment analysis service",
        "required": true
      }
    ],
    "tools": [
      {
        "name": "sentimentAnalysisTool",
        "description": "Advanced sentiment analysis with emotion detection"
      }
    ]
  }
}

Add tools to explicitly register specific tools. Add env for API keys and frameworks for compatibility info.

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", "blog", "content"],
  "tpmjs": {
    "category": "text-analysis",
    "frameworks": ["vercel-ai", "langchain"],
    "tools": [
      {
        "name": "createBlogPostTool",
        "description": "Creates structured blog posts with frontmatter and SEO metadata"
      }
    ]
  }
}

Note: Parameters are automatically extracted from the tool code - no need to list them in package.json! You can also omit the tools array entirely for auto-discovery.

Tips for Success

๐Ÿ“

Use descriptive names

Make your package name clear and searchable

โœจ

Good Zod schemas

Add descriptions to your Zod schema fields - they get auto-extracted

๐Ÿ“š

Good documentation

Add documentation URL to package.json homepage or repository fields

๐Ÿ”„

Active maintenance

Regular updates boost download counts

๐Ÿ”‘

Document env vars

List required API keys in the env field so users know what they need

Ready to Publish?

Follow the steps above and your tool will be live on TPMJS within 15 minutes.