Skill Development
Luminarys skills are sandboxed modules that expose callable methods. They can be as simple as a string echo or as complex as a full language runtime — the same SDK and toolchain covers both.
Skills are written in any language that compiles to WebAssembly. SDKs are available for AssemblyScript, Go, and Rust.
What skills can do
Every skill has access to the same set of host capabilities through the SDK:
- File system — read, write, search, glob, copy files within allowed directories
- HTTP — outbound GET, POST, and custom requests to allowed URLs
- TCP — raw TCP and TLS connections to allowed hosts
- Shell — execute allowed commands in restricted directories
- Inter-skill calls — invoke methods of other skills
- Archive — create and extract tar.gz/zip archives
- File transfer — copy files between cluster nodes
- System — read host info, current time, disk usage, environment variables
- Logging — emit structured log messages to the host
What each skill can actually use is controlled by its deployment manifest — permissions are deny-by-default.
From simple to complex
Lightweight skills
Small, focused skills that wrap a single capability:
| Skill | Description | Languages | Source |
|---|---|---|---|
| echo | Echo, ping, reverse — ABI smoke test | AS, Go, Rust | ~30 lines |
| fs | File system operations (read, write, edit, search) | AS, Go, Rust | ~200 lines |
| web | HTTP/HTTPS outbound requests | AS, Go, Rust | ~80 lines |
| git | Git repository operations via shell | AS, Go, Rust | ~150 lines |
These skills demonstrate core SDK capabilities and serve as starting templates.
Complex skills
Skills that embed entire runtimes or ML models:
| Skill | Description | Source |
|---|---|---|
| js-engine | Sandboxed JavaScript execution. | Go |
| python-engine | Sandboxed Python 3 execution. | Rust |
| tree-sitter | Source code parsing to AST and symbol extraction. 11 built-in language grammars (Go, Python, JS, TS, Rust, C, Java, JSON, Bash, HTML, CSS). | Rust |
| intent-classifier | ML-based intent classification for request routing. Embeds an ONNX model via Tract. Multilingual (EN/RU). | Rust |
These demonstrate that skills are not limited to simple wrappers — you can embed interpreters, parsers, and neural networks while staying within the sandboxed execution model.
Toolchain
The lmsk CLI handles the full skill lifecycle:
| Command | Purpose |
|---|---|
lmsk genkey | Generate a developer signing key |
lmsk generate | Generate dispatch code from annotated source |
lmsk sign | Sign a compiled skill into a .skill package |
lmsk info | Inspect a .skill package (metadata, methods, signature) |
SDKs
| Language | Package | Install |
|---|---|---|
| AssemblyScript | @luminarys/sdk-as | npm install @luminarys/sdk-as |
| Go | sdk-go | go get github.com/LuminarysAI/sdk-go |
| Rust | luminarys-sdk | cargo add luminarys-sdk |
Next steps
- Quick Start — create your first skill in 5 minutes
- Annotations — skill metadata and method declarations
- Manifest — deployment permissions reference
- Skill Examples — complete working examples in all three languages