Sandbox
@stakpak/paks

Package manager for AgentSkills and agent registries

Paks is a package manager for AgentSkills, the reusable instruction bundles that work across AI coding agents. You use the CLI to create skills, install them from a registry or git repo, validate their structure, and publish them for others to use. The web app gives you a place to browse published skills and check their details.

64 stars7 forksTypeScriptUpdated 2mo ago
Who it's for

Builders who want one way to create, install, and share skills across multiple coding agents.

What it delivers

You can standardize agent skills across projects instead of re-explaining the same context in every tool.

What it does

Create skills

`paks create <name>` scaffolds a new skill with `SKILL.md` and optional `scripts`, `references`, and `assets` folders.

Install skills

`paks install <source>` installs from the registry, a Git repo URL, or a local path, with agent and scope options.

Validate skill structure

`paks validate <path>` checks the skill layout and metadata, with `--strict` for warnings as errors.

Publish skills

`paks publish [path]` uploads a skill to the registry, with dry-run and version bump options.

Browse the registry

The web registry lets you search skills, read their documentation, and view stats and version history.

Manage agent targets

`paks agent ...` lets you list, add, remove, and set default agents with their skill directories.

How to get it

  1. 1Run
    brew tap stakpak/stakpak
    brew install paks
  2. 2Pre-built binaries are available for all major platforms on the Releases page
    # Example: Download and install on Linux x86_64
    curl -L https://github.com/stakpak/paks/releases/latest/download/paks-linux-x86_64.tar.gz | tar xz
    sudo mv paks /usr/local/bin/
  3. 3Run
    paks --version
    paks --help
  4. 4Run
    # Create a new skill
    paks create my-awesome-skill
    
    # Or with optional directories
    paks create my-awesome-skill --with-scripts --with-references
  5. 5This generates
    my-awesome-skill/
    ├── SKILL.md          # Skill manifest and instructions
    ├── scripts/          # (optional) Helper scripts
    ├── references/       # (optional) Reference documentation
    └── assets/           # (optional) Static assets
  6. 6Run
    paks validate my-awesome-skill
    
    # Strict mode (warnings become errors)
    paks validate my-awesome-skill --strict

README

📦 Paks

The package manager for AI Agent Skills

Create, install, publish, and share skills across AI coding agents.

License: Apache 2.0 Rust

InstallationQuick StartCLI ReferenceRegistryContributing

⭐ Help us reach more developers and grow the Paks community. Star this repo!


What is Paks?

Paks is a CLI-first package manager for Agent Skills — reusable instruction sets that enhance AI coding agents like Stakpak, Claude Code, Cursor, OpenCode, GitHub Copilot, Goose, and more.

The CLI is your primary interface for:

  • 🛠️ Creating new skills with proper structure
  • 📥 Installing skills from the registry, git repos, or local paths
  • 🚀 Publishing skills to share with the community
  • 🔍 Managing skills across multiple AI agents

The Web Registry provides a browsable interface to discover and explore published skills.

Why Paks?

AI coding agents are powerful, but they need context. Skills provide that context — coding standards, deployment procedures, API patterns, and domain knowledge. Paks makes it easy to:

  • Share expertise — Package your team's best practices as installable skills
  • Stay consistent — Install the same skills across all your AI agents
  • Build on others' work — Discover and use community-created skills
  • Version and iterate — Semantic versioning for skill updates

Installation

Homebrew (macOS & Linux)

brew tap stakpak/stakpak
brew install paks

Download Binary

Pre-built binaries are available for all major platforms on the Releases page:

PlatformArchitectureDownload
macOSApple Silicon (M1/M2/M3)paks-darwin-aarch64.tar.gz
macOSIntelpaks-darwin-x86_64.tar.gz
Linuxx86_64paks-linux-x86_64.tar.gz
LinuxARM64paks-linux-aarch64.tar.gz
Windowsx86_64paks-windows-x86_64.zip
# Example: Download and install on Linux x86_64
curl -L https://github.com/stakpak/paks/releases/latest/download/paks-linux-x86_64.tar.gz | tar xz
sudo mv paks /usr/local/bin/

From Source (Rust)

# Clone the repository
git clone https://github.com/stakpak/paks.git
cd paks

# Build the CLI
cargo build --release -p paks-cli

# The binary will be at ./target/release/paks
# Move it to your PATH
cp ./target/release/paks ~/.local/bin/

Verify Installation

paks --version
paks --help

Quick Start

1. Create Your First Skill

# Create a new skill
paks create my-awesome-skill

# Or with optional directories
paks create my-awesome-skill --with-scripts --with-references

This generates:

my-awesome-skill/
├── SKILL.md          # Skill manifest and instructions
├── scripts/          # (optional) Helper scripts
├── references/       # (optional) Reference documentation
└── assets/           # (optional) Static assets

2. Edit Your Skill

The SKILL.md file is the heart of your skill. It uses YAML frontmatter for metadata and Markdown for instructions:

---
name: my-awesome-skill
description: A skill that helps with awesome things
version: 0.1.0
license: MIT
keywords:
  - awesome
  - productivity
---

# My Awesome Skill

## When to use this skill

Describe when this skill should be activated.

## Instructions

Add your instructions here. The AI agent will follow these
when the skill is active.

3. Validate Your Skill

paks validate my-awesome-skill

# Strict mode (warnings become errors)
paks validate my-awesome-skill --strict

4. Install Skills

# Install from registry
paks install kubernetes-deploy

# Install for a specific agent
paks install kubernetes-deploy --agent claude-code

# Install to project directory (instead of global)
paks install kubernetes-deploy --scope project

# Install from GitHub (just paste the URL from your browser)
paks install https://github.com/user/repo/tree/main/path/to/skill

# Install specific version
paks install kubernetes-deploy --version 1.2.0

# Force reinstall
paks install kubernetes-deploy --force

5. Publish Your Skill

# Dry run first
paks publish my-awesome-skill --dry-run

# Publish with version bump
paks publish my-awesome-skill --bump patch

# Publish (requires login)
paks login
paks publish my-awesome-skill

CLI Reference

Core Commands

CommandDescription
paks create <name>Create a new skill from template
paks install <source>Install a skill
paks publish [path]Publish a skill to the registry
paks validate [path]Validate skill structure
paks listList installed skills
paks remove <name>Remove an installed skill
paks search <query>Search the registry
paks info <skill>Show skill details

Create Command

paks create <name> [OPTIONS]

Options:
  -o, --output <DIR>       Output directory (defaults to ./<name>)
  -t, --template <TYPE>    Template type: basic, devops, coding
      --with-scripts       Include scripts/ directory
      --with-references    Include references/ directory
      --with-assets        Include assets/ directory

Examples:

# Basic skill
paks create my-skill

# DevOps skill with all directories
paks create deploy-helper --template devops --with-scripts --with-references

# Specify output location
paks create my-skill --output ~/skills/my-skill

Install Command

paks install <source> [OPTIONS]

Options:
  -a, --agent <AGENT>      Target agent (stakpak, claude-code, cursor, vscode, copilot, goose, opencode)
  -s, --scope <SCOPE>      Installation scope: global or project
  -d, --dir <PATH>         Custom install directory (overrides agent and scope)
  -v, --version <VERSION>  Specific version to install
  -f, --force              Force reinstall if exists

Scope:

  • global (default): Installs to user directory (e.g., ~/.claude/skills)
  • project: Installs to project directory (e.g., ./.claude/skills)

Examples:

# Install from registry (global scope by default)
paks install terraform-best-practices

# Install for Claude Code
paks install terraform-best-practices --agent claude-code

# Install to project directory (scope: project)
paks install terraform-best-practices --scope project

# Install from GitHub/GitLab (just paste the browser URL)
paks install https://github.com/org/repo/tree/main/skills/my-skill

# Install to custom directory
paks install my-skill --dir ~/custom/skills

Publish Command

paks publish [path] [OPTIONS]

Options:
      --bump <LEVEL>       Version bump: patch, minor, major
      --skip-validation    Skip validation before publishing
      --dry-run            Show what would be published

Examples:

# Validate and show what would be published
paks publish --dry-run

# Publish with patch version bump (0.1.0 → 0.1.1)
paks publish --bump patch

# Publish with minor version bump (0.1.0 → 0.2.0)
paks publish --bump minor

# Publish specific directory
paks publish ./my-skill --bump patch

List Command

paks list [OPTIONS]

Options:
  -a, --agent <AGENT>      List skills for specific agent
  -s, --scope <SCOPE>      Scope to list from: global or project
      --all                List skills from all agents
  -f, --format <FORMAT>    Output format: table, json, yaml

Examples:

# List skills for default agent (global scope by default)
paks list

# List project-scoped skills
paks list --scope project

# List all skills across all agents
paks list --all

# List as JSON
paks list --format json

# List for specific agent
paks list --agent cursor

Agent Management

paks agent list              # List configured agents
paks agent add <name> -d <dir> [-p <project-dir>]  # Add custom agent
paks agent remove <name>     # Remove custom agent
paks agent default <name>    # Set default agent
paks agent show [name]       # Show agent details

Built-in Agents:

AgentGlobal DirectoryProject Directory
stakpak~/.stakpak/skills.stakpak/skills
claude-code~/.claude/skills.claude/skills
cursor~/.cursor/skills.cursor/skills
vscode~/.vscode/skills.vscode/skills
copilot~/.copilot/skills.copilot/skills
goose~/.config/goose/skills.goose/skills
opencode~/.config/opencode/skill.opencode/skill

Examples:

# Add a custom agent with both global and project directories
paks agent add my-agent --dir ~/my-agent/skills --project-dir .my-agent/skills

# Set as default
paks agent default my-agent

# View all agents
paks agent show

Authentication

paks login [--token <TOKEN>]  # Login to registry
paks logout                    # Logout from registry

Skill Structure

SKILL.md Frontmatter

The SKILL.md file uses YAML frontmatter following the Agent Skills specification:

---
# Required fields
name: my-skill                    # 1-64 chars, lowercase + hyphens
description: What this skill does # 1-1024 chars

# Optional (Agent Skills spec)
license: MIT
compatibility: Requires Node.js 18+
metadata:
  author: Your Name
  website: https://example.com
allowed-tools: |                  # Experimental
  - read_file
  - write_file

# Paks extensions (for package management)
version: 1.0.0                    # Semantic version
authors:
  - Your Name <you@example.com>
repository: https://github.com/you/skill
homepage: https://your-skill.dev
keywords:
  - devops
  - kubernetes
categories:
  - deployment
dependencies:
  - name: base-skill
    version: ">=1.0.0"
---

Directory Structure

my-skill/
├── SKILL.md              # Required: Manifest + instructions
├── scripts/              # Optional: Helper scripts
│   ├── deploy.sh
│   └── validate.py
├── references/           # Optional: Reference docs
│   ├── api-docs.md
│   └── examples/
└── assets/               # Optional: Static files
    └── templates/

Registry

Web Interface

The Paks Registry web interface provides:

  • 🔍 Browse — Discover skills by category, keyword, or popularity
  • 📖 Read — View skill documentation and instructions
  • 📊 Stats — See download counts and version history
  • 👤 Profiles — View publisher profiles and their skills

Visit the registry at: http://localhost:3001 (development)

API

The registry exposes a REST API for programmatic access:

# Search skills
GET /api/skills?q=kubernetes

# Get skill details
GET /api/skills/:name

# Get specific version
GET /api/skills/:name/:version

Configuration

Global Configuration

Paks stores global configuration at ~/.paks/config.toml:

# Default agent when --agent is not specified
default_agent = "stakpak"

# Default installation scope: "global" or "project"
default_scope = "global"

# Custom agents
[agents.my-custom-agent]
name = "My Custom Agent"
skills_dir = "/path/to/skills"
project_skills_dir = ".my-agent/skills"  # Relative to project root
description = "Custom agent for my workflow"

# Registry configuration
[registries.default]
url = "https://registry.paks.dev"

Project Configuration

You can also create a project-level configuration at .paks/config.toml in your project root:

# Project-level config overrides global config
default_scope = "project"  # Make project scope the default for this project
default_agent = "claude-code"

Configuration priority (highest to lowest):

  1. CLI flags (--scope, --agent, --dir)
  2. Project config (.paks/config.toml)
  3. Global config (~/.paks/config.toml)
  4. Built-in defaults

This allows teams to standardize skill installations across all developers by committing .paks/config.toml to version control.


Project Structure

paks/
├── apps/
│   ├── cli/              # Rust CLI application
│   │   ├── src/
│   │   │   ├── commands/ # CLI command implementations
│   │   │   │   ├── create.rs
│   │   │   │   ├── install.rs
│   │   │   │   ├── publish.rs
│   │   │   │   ├── validate.rs
│   │   │   │   └── ...
│   │   │   └── main.rs
│   │   └── Cargo.toml
│   ├── web/              # Registry web interface
│   │   └── src/
│   │       ├── routes/   # TanStack Router pages
│   │       └── components/
│   └── docs/             # Documentation site
├── packages/
│   ├── core/             # Shared Rust library
│   └── config/           # Shared TypeScript config
├── Cargo.toml            # Rust workspace
├── package.json          # Node.js workspace
└── turbo.json            # Turborepo config

Development

Prerequisites

  • Rust 2024 edition (nightly)
  • Node.js 18+
  • pnpm 8+

Setup

# Install dependencies
pnpm install

# Build everything
pnpm run build

# Development mode
pnpm run dev

Available Scripts

ScriptDescription
pnpm run devStart all apps in development mode
pnpm run buildBuild all applications
pnpm run dev:webStart only the web application
pnpm run check-typesTypeScript type checking
pnpm run checkRun Oxlint and Oxfmt

Rust Development

# Build CLI
cargo build -p paks-cli

# Run CLI
cargo run -p paks-cli -- --help

# Run tests
cargo test

# Format code
cargo fmt

# Lint
cargo clippy

Need Support Creating Your First Pak?

If this is your first time writing a Pak, you don’t have to figure it out alone. Our community is actively building and sharing skills, and we’re happy to help you:

  • Write your first SKILL.md
  • Review structure and metadata
  • Decide what belongs in a Pak (and what doesn’t)
  • Validate and publish with confidence

Join the Stakpak Discord to ask questions, get feedback, and see how others are using Paks

Join the community: https://discord.gg/QTZjETP7GB


Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Guidelines

  • Follow the existing code style
  • Add tests for new functionality
  • Update documentation as needed
  • Keep commits atomic and well-described

License

Apache 2.0 License — see LICENSE for details.


Built with ❤️ by Stakpak

WebsiteDocumentationDiscord

Files in the repo

Repository payload21 top-level entries
  • .github
  • apps
  • packages
  • .gitignore
  • .oxfmtrc.json
  • .oxlintrc.json
  • amplify.yml
  • bts.jsonc
  • Cargo.lock
  • Cargo.toml
  • cliff.toml
  • clippy.toml
  • LICENSE
  • package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • README.md
  • release.sh
  • ROADMAP.md
  • THIRD-PARTY-NOTICES.md
  • turbo.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k