npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@synaptic-ai/atm

v0.0.8

Published

ATM (Agent Tool Manager) CLI By Synaptic - Build, Publish and Share your awesome AI Agent tools

Readme

ATM By Synaptic

ATM helps you build, publish, and manage your tools with simple commands. Whether you're building a calculator, a text analyzer, or any other AI capability, ATM makes it easy to build and share your tools.

Learn more at Synaptic ATM

Installation

You'll need two packages:

  • @synaptic-ai/atm - The CLI tool for building and publishing
  • @synaptic-ai/toolmaker - The SDK for creating tools
# Install the CLI globally
npm install -g @synaptic-ai/atm

# Install the toolmaker in your project
npm install @synaptic-ai/toolmaker

Usage

Login

Before using ATM commands, you need to authenticate:

atm login

This will open your browser for authentication. After successful login, your credentials will be saved locally.

Building a Tool

Manual Creation with Toolmaker

The @synaptic-ai/toolmaker package provides two main classes for creating tools:

  1. Tool - The main class that represents your tool:

    • name: The display name of your tool
    • description: A clear description of what your tool does
    • addCapability(): Method to add capabilities to your tool
  2. ToolCapability - Represents a specific function your tool can perform:

    • name: Name of the capability
    • description: What this capability does
    • schema: Input parameters schema using Zod
    • runner: Async function that executes the capability

Here's a complete example of manually creating a tool:

import { Tool, ToolCapability } from '@synaptic-ai/toolmaker';
import { z } from 'zod';

// 1. Define your input schema using Zod
const greetSchema = z.object({
  name: z.string().describe("Name of the person to greet")
}).describe("Parameters for greeting");

// 2. Create a capability
export const greetCapability = new ToolCapability({
  name: 'Greet',
  description: 'Greets a person by name',
  schema: greetSchema,
  runner: async (params) => {
    return {
      message: `Hello, ${params.name}!`,
      timestamp: new Date().toISOString()
    };
  }
});

// 3. Create your tool
const tool = new Tool({
  name: 'Hello World',
  description: 'A simple tool to demonstrate ATM capabilities'
});

// 4. Add capabilities to your tool
tool.addCapability(greetCapability);

export default tool;

Your tool should follow this directory structure:

your-tool/
├── src/
│   ├── capabilities/
│   │   └── greet/
│   │       ├── schema.ts      # Contains your Zod schema
│   │       └── runner.ts      # Contains the runner function
│   └── index.ts              # Exports your tool

Quick Start with Template

For a faster setup, you can use our hello-world template:

atm init

This will create a new directory with a pre-configured tool structure and example capability.

Publishing a Tool

To publish a tool to ATM:

  1. First, build your tool:
atm build
  1. Then publish it:
atm publish

The tool will be published to ATM and you'll receive a URL where you can view your published tool.

Commands

  • atm login - Authenticate with ATM
  • atm init - Create a new tool from template
  • atm build - Build your tool for publishing
  • atm publish - Publish your tool to ATM