Skip to content

Release Notes - v0.7.0

Release Date: 2026-04-26

Overview

This release adds the pack/ package for embedding markdown skill bundles into Go modules. Skill packs enable zero-dependency distribution of OpenClaw-compatible skills.

Installation

go get github.com/plexusone/omniskill@v0.7.0

Requires Go 1.24+ and MCP Go SDK v1.5.0+.

Highlights

  • New pack/ package for skill pack interfaces
  • SkillPack interface for embedding markdown skills via go:embed
  • Zero-dependency distribution of skill bundles

What's New

SkillPack Interface

The pack.SkillPack interface defines the contract for markdown skill bundles:

package pack

import "embed"

type SkillPack interface {
    // Name returns the pack identifier (e.g., "omniagent-skills").
    Name() string

    // Version returns the pack version or source commit hash.
    Version() string

    // FS returns the embedded filesystem containing skills.
    // Skills are expected at skills/<name>/SKILL.md.
    FS() embed.FS
}

Creating a Skill Pack

Use go:embed to bundle skills into a Go module:

package skills

import (
    "embed"
    _ "embed"

    "github.com/plexusone/omniskill/pack"
)

//go:embed skills/*
var skillsFS embed.FS

//go:embed VERSION
var version string

type Pack struct{}

func (Pack) Name() string    { return "my-skills" }
func (Pack) Version() string { return version }
func (Pack) FS() embed.FS    { return skillsFS }

func Default() *Pack { return &Pack{} }

// Ensure Pack implements pack.SkillPack
var _ pack.SkillPack = (*Pack)(nil)

Directory Structure

Skill packs expect skills at skills/<name>/SKILL.md:

my-skill-pack/
├── go.mod
├── pack.go          # SkillPack implementation
├── VERSION          # Version or source commit hash
└── skills/
    ├── github/
    │   └── SKILL.md
    ├── weather/
    │   └── SKILL.md
    └── tmux/
        └── SKILL.md

Using with OmniAgent

Skill packs integrate with OmniAgent via the WithSkillPack option:

import (
    "github.com/plexusone/omniagent/agent"
    skills "github.com/plexusone/omniagent-skills"
)

agent, err := agent.New(config,
    agent.WithSkillPack(skills.Default().FS()),
    agent.WithSkillIncludes("github", "weather"),
)

Package Structure

github.com/plexusone/omniskill
├── skill/           # Core skill types
├── registry/        # Skill registry
├── pack/            # NEW: Skill pack interface
│   └── pack.go      # SkillPack interface
└── mcp/             # MCP integration

Use Cases

Distributing Skill Bundles

Create reusable skill packs that can be imported by any omniskill-compatible agent:

// github.com/example/my-skills
import skills "github.com/example/my-skills"

// Use with any agent
agent.WithSkillPack(skills.Default().FS())

OpenClaw Compatibility

Skills use the OpenClaw SKILL.md format with YAML frontmatter:

---
name: github
description: GitHub CLI operations
metadata:
  openclaw:
    requires:
      bins: ["gh"]
---

# GitHub Skill

Use the `gh` CLI to interact with GitHub...

Contributors

  • John Wang
  • Claude Opus 4.5