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

agentdom

v3.7.0

Published

Universal agent-to-software runtime. Any AI agent controls any software through a single protocol.

Readme


About

AgentDOM is the missing infrastructure layer between AI agents and the internet.

  • Runtime (npm | pip): Routes any intent to the right execution layer — REST API, browser, desktop, or CLI
  • Publisher SDK (npx agentdom-publisher): Expose your software to AI agents via .well-known/agentdom.json in minutes
  • mcp-use bridge (npx agentdom-publisher mcpuse): Turn any manifest into a working Claude/Cursor MCP server instantly

Quick Start

As a CLI

npm install -g agentdom

agentdom doctor              # check system health
agentdom auth github.com     # authenticate with a provider
agentdom tokens              # list authed providers
agentdom validate --all      # validate bundled manifests
agentdom serve               # start the MCP server (stdio)
agentdom serve --http        # start the HTTP API server instead

Run agentdom --help for the full list of subcommands.

As a Library

npm install agentdom
const { auth, registry, compiler } = require('agentdom');

const config = registry.resolve('github.com');
const token  = await auth.token('github.com');

Top-level exports: auth, keychain, registry, runtime, planner, policy, memory, resilience, connectionPool, tokenCache, compiler, discover, platform. Each subtree is lazy-loaded — only the modules you touch are required.

As an MCP Server (Claude Desktop / Cursor)

Add to claude_desktop_config.json (or the equivalent for your IDE):

{
  "mcpServers": {
    "agentdom": { "command": "agentdom", "args": ["serve"] }
  }
}

Install

# No install needed — use npx directly
npx agentdom@latest onboard

# Or install globally
npm install -g agentdom

Python:

pip install agentdom
# or: pip install "agentdom[flask]"  pip install "agentdom[fastapi]"

Runtime: Node 18+

Quick start

# Step 1 — Guided setup wizard (one-time)
npx agentdom@latest onboard

# Step 2 — Connect integrations
npx agentdom@latest setup github.com      # Device flow — enter code at URL
npx agentdom@latest setup linear.app      # OAuth PKCE — browser opens once
npx agentdom@latest setup resend.com      # API key — paste once

# Step 3 — Run goals autonomously
npx agentdom@latest run "Create a Linear ticket for the iOS crash and assign to @alice"
npx agentdom@latest run "Send a weekly digest email to [email protected] via Resend"
npx agentdom@latest run "Open a GitHub PR for branch fix/login and request review from @bob"

# Health check
npx agentdom@latest doctor

How intent routing works

dispatch_intent("issues.create", args, "github.com")
        │
        ├─ 1. API manifest?    → instant REST call (< 200ms)
        ├─ 2. CLI tool?        → local command execution
        ├─ 3. Web UI only?     → Chrome CDP + DOM automation
        └─ 4. Desktop app?     → macOS Accessibility bridge

No screenshots. No coordinate clicking. No hand-written integrations.

Supported integrations (ready today)

| Provider | Auth | Capabilities | |---|---|---| | github.com | Device Flow | repos, issues, PRs, actions (811) | | stripe.com | API Key | payments, customers, subscriptions (442) | | linear.app | OAuth 2.0 | issues, teams, cycles, comments (8) | | hubspot.com | OAuth 2.0 | contacts, deals, companies (8) | | vercel.com | API Key | deployments, projects, env vars (8) | | slack.com | OAuth 2.0 | messages, channels, reactions (6) | | notion.so | OAuth 2.0 | pages, databases, blocks (6) | | supabase.com | API Key | projects, secrets, SQL (7) | | resend.com | API Key | emails, domains, broadcasts (5) | | cal.com | OAuth 2.0 | bookings, availability (6) | | openai.com | API Key | chat, embeddings, images (5) | | anthropic.com | API Key | messages, models (2) | | openrouter.ai | API Key | 300+ LLMs via one key (3) |

Claude Desktop & Cursor (MCP)

claude mcp add agentdom -- node $(npm root -g)/agentdom/desktop-mcp-server.js

Or manually in claude_desktop_config.json:

{
  "mcpServers": {
    "agentdom": {
      "command": "node",
      "args": ["/path/to/agentdom/desktop-mcp-server.js"]
    }
  }
}

Embed in your own app

Express:

const { agentdom } = require('agentdom/express');

app.use(agentdom({
  host: 'api.myapp.com',
  capabilities: [{
    intent: 'todos.create',
    description: 'Create a todo item',
    args: { title: { type: 'string', required: true } },
    handler: async (req, body) => db.todos.create(body.title),
  }],
}));
// Serves: GET  /.well-known/agentdom.json
//         POST /api/agentdom/todos.create

Next.js (App Router):

// app/api/agentdom/[...intent]/route.js
import { AgentDOM } from 'agentdom/nextjs';

export const { GET, POST } = AgentDOM({
  host: 'myapp.com',
  capabilities: [{
    intent: 'users.invite',
    description: 'Invite a team member',
    args: { email: { type: 'string', required: true } },
    handler: async (req, body) => inviteUser(body.email),
  }],
});

Python (Flask / FastAPI):

from agentdom import AgentDOM

agent = AgentDOM(host="api.myapp.com")

@agent.capability("orders.ship", description="Ship a pending order",
                  args={"order_id": {"type": "string", "required": True}})
async def ship_order(args):
    return await shipping_service.ship(args["order_id"])

agent.register(app)   # Flask or FastAPI

Generate a mcp-use server from any manifest

# Generates a full TypeScript mcp-use server scaffold from any AgentDOM host
npx agentdom-publisher mcpuse --host=github.com --out=./github-mcp

# Python variant
npx agentdom-publisher mcpuse --host=github.com --lang=python

cd ./github-mcp && npm install && npm start
# → Inspector: http://localhost:3000/inspector
# → Connect to Claude Desktop or any MCP client

Publisher SDK — add AI agent support to your API

# Generate manifest from your OpenAPI spec
npx agentdom-publisher init --openapi=./openapi.json --host=api.myapp.com

# Validate locally
npx agentdom-publisher validate

# Verify live deployment
npx agentdom-publisher verify --host=api.myapp.com

# Test a real dispatch
npx agentdom-publisher test --host=api.myapp.com --intent=contacts.list --token=sk-...

# Submit to the AgentDOM public registry
npx agentdom-publisher submit --host=api.myapp.com

# Generate mcp-use server scaffold
npx agentdom-publisher mcpuse --host=api.myapp.com --out=./my-mcp-server

CI / Docker / serverless (headless)

# Export credentials as a portable base64 string (human runs this once)
agentdom wallet export --base64 --providers=linear.app,resend.com
# → AGENTDOM_WALLET_B64=eyJ3YWxsZXQi...

# Agent receives it at runtime — no human needed
docker run -e AGENTDOM_WALLET_B64=$AGENTDOM_WALLET_B64 \
           -e OPENROUTER_API_KEY=$OPENROUTER_API_KEY \
           your-agent-image

Policy engine

agentdom policy show                    # view current rules
agentdom policy set external=allow      # allow all external API calls
agentdom policy set send=prompt         # ask before emails/messages
agentdom approve <id>                   # approve a pending action
agentdom deny <id>                      # deny it

Deploy to AWS

./deploy-aws.sh sk-or-v1-YOUR_KEY

One command: ECS Fargate + ALB + CloudFront + S3 + Secrets Manager + CloudWatch. See AWS-DEPLOY.md.

All CLI commands

npx agentdom@latest onboard              Interactive setup wizard
npx agentdom@latest setup <provider>     One-time credential setup
npx agentdom@latest run "<goal>"         Execute a natural language goal
npx agentdom@latest doctor               Health check
npx agentdom@latest wallet list          Show stored credentials
npx agentdom@latest wallet export        Export for CI/Docker
npx agentdom@latest policy show          View policy rules
npx agentdom@latest approve <id>         Approve a pending action
npx agentdom@latest memory stats         Episodic memory stats
npx agentdom@latest launch               Browser REPL (interactive)
npx agentdom@latest --version            Print version
npx agentdom@latest --help               Show this help

Security

Credentials are stored in ~/.agentdom/wallet.json (mode 0600) or OS Keychain. Never logged, never sent to AgentDOM servers. See SECURITY.md.

License

MIT © Ragavendhra Machikatla