Everything you need to run your own AI tool registry. See it live: enact.tools
Enact is a verified, portable standard for defining, discovering, and safely executing AI-ready tools.
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
# Install globally
npm install -g enact-cli
# Or using bun
bun install -g enact-cli# 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"}'$ enact learn enact/hello-python
enact/hello-python@1.0.3
───────────────────────────
---
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.$ 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.12An 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 provides native Model Context Protocol (MCP) support, allowing AI agents like Claude to discover and run tools from the registry.
claude mcp add enact --transport stdio -- npx -y @enactprotocol/mcp-serverOnce connected, Claude can use Enact tools directly. The MCP server provides:
enact_search— Search the registry for toolsenact_learn— Get tool documentationenact_run— Execute any tool from the registry
Run enact mcp install for configuration instructions for Claude Desktop, Cursor, VS Code, and other MCP clients.
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 publishThis 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
- Getting Started: GETTING-STARTED.md
- Development Setup: DEV-SETUP.md
- Deployment Guide: DEPLOYMENT.md
- API Reference: docs/API.md
- Trust System: docs/TRUST.md
- Roadmap: ROADMAP.md
See DEV-SETUP.md for full instructions.
Run CLI in development mode:
cd packages/cli
bun run dev -- search calculatorType checking & cleanup:
bun run typecheck # Type checking
bun run clean # Remove build artifacts and node_modulesRegistry 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.
User-facing command-line interface. Commands include:
enact setup— Initial configurationenact search— Discover toolsenact install— Install toolsenact run— Execute toolsenact get/inspect/list— Metadata and installed tools Status: Core commands implemented and stable.
Execution engine with sandboxing and resource isolation using Dagger. Status: Core execution engine complete with container support.
MCP server enabling AI agents to discover and invoke tools via the Model Context Protocol. Status: Complete with search, learn, run, and install meta-tools.
Secure credential storage using system keyring (macOS Keychain, Windows Credential Manager, Linux Secret Service). Status: Full implementation complete with namespace resolution.
Supabase Edge Functions backend for the registry with PostgreSQL database and R2 storage. Status: Production-ready with full search, publish, trust, and attestation APIs.
Core utilities, types, and business logic shared across all packages. Status: Complete with manifest parsing, validation, tool resolution, and registry management.
Sigstore integration for signing and verifying tool attestations. Status: Complete with certificate-based identity verification and policy evaluation.
React-based web UI for managing environments, secrets, and configuration. Status: Complete with Supabase authentication and environment management.
- Bun 1.0+
- Docker (execution engine)
- Supabase CLI (local registry)
bun install
bun run build
bun test
bun run typecheck
bun run lintLocal 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 --watchWe welcome contributions!
- Fork the repository
- Create a feature branch
- Implement your changes with tests
- Run
bun run lintandbun test - Submit a pull request
Apache-2.0 — see LICENSE.
- Website: https://enact.tools
- Registry API: https://siikwkfgsmouioodghho.supabase.co/functions/v1
- Issues: https://github.com/EnactProtocol/enact-cli-2.0/issues
- Discussions: https://github.com/EnactProtocol/enact-cli-2.0/discussions