Skip to content
Skillv1.0.0

enact-docs-guide

LLM guide for creating, publishing, and running Enact tools

by aiskillstore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from aiskillstore/marketplace (skills/enactprotocol/enact-docs-guide/SKILL.md). Install upstream with npx skills add aiskillstore/marketplace --skill enact-docs-guide. Copyright stays with the author (MIT).

Enact LLM Guide

Enact: Containerized tools with structured I/O for AI agents.

Commands

enact run ./tool --input "key=value"      # Run local tool
enact run ./tool --args '{"key":"value"}' # Run with JSON
enact run author/tool --input "x=y"       # Run installed tool
enact install author/tool                 # Install to project
enact install author/tool -g              # Install globally
enact search "query"                      # Find tools
enact sign ./tool && enact publish ./tool # Publish

Tool Structure

my-tool/
├── enact.md    # Required: YAML frontmatter + docs
└── main.py     # Your code (any language)

enact.md Template

---
enact: "2.0.0"
name: "namespace/category/tool-name"
version: "1.0.0"
description: "What it does"
from: "python:3.12-slim"
build: "pip install requests pandas"
command: "python /workspace/main.py ${input}"
timeout: "30s"

inputSchema:
  type: object
  properties:
    input:
      type: string
      description: "Input description"
  required: [input]

outputSchema:
  type: object
  properties:
    result:
      type: string

env:
  API_KEY:
    description: "API key"
    secret: true
  LOG_LEVEL:
    description: "Log level"
    default: "info"

tags: [category, keywords]
---

# Tool Name

Documentation here.

Field Reference

Field Required Description
name Yes namespace/category/tool
description Yes What it does
command No* Shell command with ${param} substitution
from No Docker image (default: alpine:latest)
build No Build commands (string or array), cached
inputSchema No JSON Schema for inputs
outputSchema No JSON Schema for outputs
env No Environment vars (secret: true for keyring)
timeout No Max runtime (default: 30s)
version No Semver version
tags No Discovery keywords

*Tools without command are LLM instruction tools (markdown interpreted by AI).

Examples by Language

Python

from: "python:3.12-slim"
build: "pip install pandas"
command: "python /workspace/main.py ${input}"

Node.js

from: "node:20-alpine"
build: "npm install"
command: "node /workspace/index.js ${input}"

Rust

from: "rust:1.83-slim"
build: "rustc /workspace/main.rs -o /workspace/app"
command: "/workspace/app ${input}"

Go

from: "golang:1.22-alpine"
build: "go build -o /workspace/app /workspace/main.go"
command: "/workspace/app ${input}"

Shell (no build)

command: "echo 'Hello ${name}'"

Source Code Pattern

Always output JSON matching outputSchema:

#!/usr/bin/env python3
import sys, json

input_val = sys.argv[1]
result = {"result": input_val.upper()}
print(json.dumps(result))

Secrets

env:
  API_KEY:
    description: "API key"
    secret: true  # Stored in OS keyring, not .env

User sets: enact env set API_KEY --secret --namespace myorg/tools

Access in code via environment variable: os.environ['API_KEY']

Two Tool Types

  1. Container tools (has command): Runs in Docker, deterministic
  2. Instruction tools (no command): Markdown body interpreted by LLM

Workflow

# 1. Create
mkdir my-tool && cd my-tool
# Create enact.md + source files

# 2. Test
enact run . --input "test=value"

# 3. Publish
enact auth login
enact sign .
enact publish .

Checklist

  • name: namespace/category/tool format
  • description: clear, searchable
  • inputSchema: validates inputs
  • outputSchema: documents output
  • from: pinned image version (not latest)
  • build: installs dependencies
  • command: uses ${param} for inputs
  • Source outputs valid JSON

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/aiskillstore-marketplace-enact-docs-guide/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

aiskillstore-marketplace-enact-docs-guide.ocm.jsonjson
{
  "ocm": "1",
  "id": "aiskillstore-marketplace-enact-docs-guide",
  "kind": "skill",
  "name": "enact-docs-guide",
  "description": "LLM guide for creating, publishing, and running Enact tools",
  "publisher": "aiskillstore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "documentation",
      "guide",
      "llm",
      "tutorial",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "LLM guide for creating, publishing, and running Enact tools"
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/aiskillstore/marketplace",
      "path": "skills/enactprotocol/enact-docs-guide/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/aiskillstore/marketplace/blob/HEAD/skills/enactprotocol/enact-docs-guide/SKILL.md",
      "key": "aiskillstore/marketplace/skills/enactprotocol/enact-docs-guide/SKILL.md"
    },
    "license": "MIT"
  },
  "instructions": "# Enact LLM Guide\n\nEnact: Containerized tools with structured I/O for AI agents.\n\n## Commands\n\n```bash\nenact run ./tool --input \"key=value\"      # Run local tool\nenact run ./tool --args '{\"key\":\"value\"}' # Run with JSON\nenact run author/tool --input \"x=y\"       # Run installed tool\nenact install author/tool                 # Install to project\nenact install author/tool -g              # Install globally\nenact search \"query\"                      # Find tools\nenact sign ./tool && enact publish ./tool # Publish\n```\n\n## Tool Structure\n\n```\nmy-tool/\n├── enact.md    # Required: YAML frontmatter + do",
  "cost": {
    "context_tokens": 949
  }
}

Fetch it by URL: GET /api/v1/registry/aiskillstore-marketplace-enact-docs-guide/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.