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

@enactprotocol/enact

v2.2.4

Published

Enact CLI (thin wrapper that loads the correct platform binary)

Downloads

2,318

Readme

Enact

Everything you need to run your own AI tool registry. See it live: enact.tools

Enact is a verified, portable protocol for defining, discovering, and safely executing AI-ready tools — inspired by npm.

Overview

Enact provides end-to-end infrastructure for creating, publishing, and running containerized tools designed for AI agents and automation workflows. It combines a tool registry, trust and attestation system, and secure execution engine into a unified platform.

Key Features

  • 📦 Tool Registry — Discover, publish, and share executable tools
  • 🔐 Trust System — Sigstore-based signing, verification, and attestations
  • 🐳 Containerized Execution — Isolated and reproducible runs powered by Dagger
  • 🌐 Web UI — Manage environments, secrets, and configuration
  • 🤖 MCP Integration — Native Model Context Protocol support for AI agents

Quick Start

Installation

# Install globally
npm install -g enact-cli

# Or using bun
bun install -g enact-cli

Basic Usage

# Search for tools
enact search greeting

# Learn about a tool (view its SKILL.md documentation)
enact learn enact/hello-python

# Run a tool
enact run enact/hello-python --args '{"name": "World"}'

Example: What enact learn Shows

$ enact learn enact/hello-python

enact/[email protected]
───────────────────────────

---
name: "enact/hello-python"
version: "1.0.3"
description: "A simple Python greeting tool"
from: "python:3.12-slim"

inputSchema:
  type: object
  properties:
    name:
      type: string
      description: "Name to greet"
      default: "World"

command: "python /workspace/hello.py ${name}"
---

# Hello Python

A simple Python tool that greets you by name.

Example: Running a Tool

$ enact run enact/hello-python --args '{"name": "Anthropic"}'

◇  ✓ Resolved: enact/hello-python
◐  Running enact/hello-python (python:3.12-slim)...
◇  ✓ Execution complete

Hello, Anthropic! 🐍
Generated at: 2025-12-19T15:33:38
Python version: 3.12.12

Example Tool Structure

An Enact tool is a directory with a SKILL.md manifest and your code:

my-tool/
├── SKILL.md          # Tool manifest (required) - defines inputs, outputs, and execution
├── main.py           # Your code (any language)
└── requirements.txt  # Dependencies (optional)

SKILL.md is a Markdown file with YAML frontmatter that defines your tool:

---
name: acme/hello-python
version: 1.0.0
description: A friendly greeting tool
from: python:3.12-slim
build: pip install -r requirements.txt
command: python /workspace/main.py ${name}

inputSchema:
  type: object
  properties:
    name:
      type: string
      description: Name to greet
      default: World
---

# Hello Python

This tool greets you by name. Pass a `name` parameter to customize the greeting.

Create a new tool with enact init --tool, test with enact run ./, and publish with enact publish.


Enact Registry

https://enact.tools is the official Enact registry where you can:

  • Browse tools — Explore the catalog of published tools
  • Sign up — Create an account to start publishing your own tools
  • Publish tools — Push your tools to the registry with enact publish
  • Manage your profile — Track your published tools and usage
# Login to the registry
enact login

# Publish your tool
enact publish

Architecture

This monorepo contains all core Enact components:

packages/
├── api           # Registry API client
├── cli           # Command-line interface
├── execution     # Dagger-based execution engine
├── mcp-server    # MCP server for AI integrations
├── secrets       # Secure credential storage
├── server        # Supabase Edge Functions (registry backend)
├── shared        # Core utilities and business logic
├── trust         # Sigstore integration & attestations
└── web           # Web UI for configuration and secrets

Documentation


Developer Guide

See DEV-SETUP.md for full instructions.

Run CLI in development mode:

cd packages/cli
bun run dev -- search calculator

Type checking & cleanup:

bun run typecheck     # Type checking
bun run clean         # Remove build artifacts and node_modules

Packages

@enactprotocol/api

Registry API client for tool discovery and installation. Features:

  • Tool search and metadata retrieval
  • Bundle download and caching
  • Authentication support
  • Rate limiting & error handling Status: Core functionality complete.

@enactprotocol/cli

User-facing command-line interface. Commands include:

  • enact setup — Initial configuration
  • enact search — Discover tools
  • enact install — Install tools
  • enact run — Execute tools
  • enact get / inspect / list — Metadata and installed tools Status: Core commands implemented and stable.

@enactprotocol/execution

Execution engine with sandboxing and resource isolation using Dagger. Status: Core execution engine complete with container support.

@enactprotocol/mcp-server

MCP server enabling AI agents to discover and invoke tools. Status: Not yet started.

@enactprotocol/secrets

Secure credential storage using system keyring (macOS Keychain, Windows Credential Manager, Linux Secret Service). Status: Full implementation complete with namespace resolution.

@enactprotocol/server

Supabase Edge Functions backend for the registry with PostgreSQL database and R2 storage. Status: Production-ready with full search, publish, trust, and attestation APIs.

@enactprotocol/shared

Core utilities, types, and business logic shared across all packages. Status: Complete with manifest parsing, validation, tool resolution, and registry management.

@enactprotocol/trust

Sigstore integration for signing and verifying tool attestations. Status: Complete with certificate-based identity verification and policy evaluation.

@enactprotocol/web

React-based web UI for managing environments, secrets, and configuration. Status: Complete with Supabase authentication and environment management.

Development

Prerequisites

  • Bun 1.0+
  • Docker (execution engine)
  • Supabase CLI (local registry)

Setup

bun install
bun run build
bun test
bun run typecheck
bun run lint

Local development workflow:

# Start the local registry
cd packages/server
supabase start

# Develop CLI
cd packages/cli
bun run dev -- search calculator

# Watch tests
bun test --watch

Contributing

We welcome contributions!

  1. Fork the repository
  2. Create a feature branch
  3. Implement your changes with tests
  4. Run bun run lint and bun test
  5. Submit a pull request

License

Apache-2.0 — see LICENSE.


Community