Skip to main content

Quick Start

Create your first Luminarys skill in 5 minutes.

Prerequisites

Download luminarys and lmsk from releases. Generate a developer signing key (once):

lmsk genkey

1. Create a project

mkdir my-skill && cd my-skill
npm init -y
npm install --save-dev assemblyscript
npm install @luminarys/sdk-as
npx asinit .

Replace the generated asconfig.json with:

asconfig.json
{
"targets": {
"release": {
"outFile": "dist/my-skill.wasm",
"optimizeLevel": 3,
"shrinkLevel": 1,
"exportRuntime": false,
"runtime": "incremental"
}
}
}

2. Write a handler

assembly/skill.ts
import { Context } from "@luminarys/sdk-as";

/**
* @skill:id my-company.my-skill
* @skill:name "My Skill"
* @skill:version 1.0.0
* @skill:desc "My first skill."
*/

// @skill:method greet "Greet by name."
// @skill:param name required "User name"
// @skill:result "Greeting text"
export function greet(_ctx: Context, name: string): string {
return "Hello, " + name + "!";
}

3. Generate dispatch code

lmsk generate -lang as -out assembly .
# Creates assembly/lib.ts

4. Build & sign

npx asc assembly/lib.ts --target release
lmsk sign dist/my-skill.wasm
# → my-company.my-skill.skill

Verify the package:

lmsk info my-company.my-skill.skill

5. Deploy

Create a manifest and add it to your host config:

config/skills/my-skill.yaml
id: my-skill
path: skills/my-company.my-skill.skill
permissions:
fs: { enabled: false }
invoke_policy:
can_invoke: []
can_be_invoked_by: ["*"]
mcp:
mapping: per_method
config/host.yaml
http:
addr: ":8080"

skills:
- skills/my-skill.yaml

Start the host:

luminarys -config config/host.yaml

Your skill is now available at http://localhost:8080/mcp. Connect any MCP client and call my-skill/greet with {"name": "World"}.

Using LLM for skill development

Each SDK repository includes an AGENTS.md file — a system prompt for AI coding assistants. It contains the full annotation syntax, SDK API reference, build instructions, and manifest format for the corresponding language.

Copy AGENTS.md into your project root or point your LLM agent to it so it can generate correct skill code out of the box.

SDKAGENTS.md
AssemblyScriptsdk-as/AGENTS.md
Gosdk-go/AGENTS.md
Rustsdk-rust/AGENTS.md

Next steps