Settings

Theme

Show HN: Enact – A package manager for AI agent tools

enact.tools

6 points by keithgroves 4 months ago · 2 comments · 1 min read

Reader

I built a tool registry for AI agents.

Problem: Agents need tools, but the current options are awkward. You either wire up tools manually in your codebase, or you spin up MCP servers that bundle more than you need. Neither is discoverable, shareable, or safe to run.

Enact is a package manager for executable tools:

  enact search "web scraping"
  enact run enact/firecrawl --args '{"url": "https://example.com"}'
Each tool is a SKILL.md manifest (typed input/output schemas) plus code in any language. Tools run in containers, so dependencies are declared and execution is isolated.

Key differences from MCP: - Tools, not servers. Install one capability, not a bundle. - Registry with discovery. Agents can search for tools at runtime. - Containerized. Run untrusted tools safely. - Sigstore signing for trust.

Live registry: https://enact.tools

CLI: npm install -g enact-cli

Source: https://github.com/EnactProtocol/enact

Would love feedback on the manifest format and whether this solves a real problem for folks building agents.

scls19fr 4 months ago

Looks interesting but why not respecting spec from https://agentskills.io/specification Calling this SKILL.md could lead to confusion.

## Enact vs agentskills.io Spec — Key Differences

*1. Invalid `name` format* - Spec allows only: lowercase letters, numbers, hyphens (`my-skill`) - Enact uses: namespaced names with slashes (`enact/hello-python`)

*2. Non-standard frontmatter fields* - Spec defines: `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` - Enact adds proprietary fields: `version`, `from`, `build`, `command`, `inputSchema`, `outputSchema`

*3. Different philosophy* - *agentskills.io* = Instructions for agents to read and interpret - *Enact* = Executable package manifest with Docker images, typed I/O schemas, and containerized execution

*4. Directory structure* - Spec expects: `scripts/`, `references/`, `assets/` subdirectories - Enact allows: arbitrary files (`main.py`, `requirements.txt`)

*Bottom line:* Enact borrows the SKILL.md filename but extends it into something fundamentally different — a package manager format rather than an agent instruction format. It's not spec-compliant; it's a conceptual fork.

  • keithgrovesOP 4 months ago

    I really appreciate this feedback!

    I made enact independently and realized how similar it was to skills when they were released, so tried to go with the flow rather than ask people to understand yet another new concept. Enact.md -> Skill.md

    Not really sure what the path forward is but this feedback is very helpful.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection