An open API service indexing awesome lists of open source software.

https://github.com/kostiantyn-matsebora/canopy

AI skills as executable code, not prose. A declarative framework for writing skills as syntax trees of named operations, distributed as agentskills.io-format Agent Skills.
https://github.com/kostiantyn-matsebora/canopy

agent-skills ai-agent automation canopy claude claude-cli claude-code claude-skills copilot copilot-chat copilot-cli declarative framework llm prompt-engineering skills workflow

Last synced: about 19 hours ago
JSON representation

AI skills as executable code, not prose. A declarative framework for writing skills as syntax trees of named operations, distributed as agentskills.io-format Agent Skills.

Awesome Lists containing this project

README

          

# Canopy

[![Latest Release](https://img.shields.io/github/v/release/kostiantyn-matsebora/canopy?label=release&color=0969da)](https://github.com/kostiantyn-matsebora/canopy/releases/latest)
[![CI](https://img.shields.io/github/actions/workflow/status/kostiantyn-matsebora/canopy/ci.yml?branch=master&label=CI)](https://github.com/kostiantyn-matsebora/canopy/actions/workflows/ci.yml)
[![License](https://img.shields.io/badge/license-MIT-0969da)](../LICENSE)
[![VS Code Extension](https://vsmarketplacebadges.dev/version-short/canopy-ai.canopy-skills.svg?label=vscode)](https://marketplace.visualstudio.com/items?itemName=canopy-ai.canopy-skills)

[![agentskills.io](https://img.shields.io/badge/agentskills.io-compatible-0969da)](https://agentskills.io)
[![Claude Code](https://img.shields.io/badge/Claude%20Code-compatible-D97757?logo=anthropic&logoColor=white)](https://code.claude.com/docs/en/skills)
[![GitHub Copilot](https://img.shields.io/badge/GitHub%20Copilot-compatible-000?logo=githubcopilot&logoColor=white)](https://code.visualstudio.com/docs/copilot/customization/agent-skills)

**AI skills as executable code, not prose.**

AI skills written as prose are instructions. Instructions get interpreted. Interpretations
drift. When a skill fails, you're re-reading sentences trying to figure out which one was
misunderstood. When it works, you're not entirely sure why it did.

**Canopy makes skills programs.**

> ๐Ÿ“– **Full documentation:**

---

## Why Canopy?

```
Canopy
โ”œโ”€โ”€ ๐ŸŽฏ DETERMINISTIC
โ”‚ โ”œโ”€โ”€ skills run identically every time
โ”‚ โ””โ”€โ”€ the tree is explicit โ€” no interpretation, no drift
โ”‚
โ”œโ”€โ”€ โ™ป๏ธ REUSABLE OPS
โ”‚ โ”œโ”€โ”€ define DEPLOY, VERIFY, ROLLBACK once in ops.md
โ”‚ โ””โ”€โ”€ one change keeps every skill in sync
โ”‚
โ”œโ”€โ”€ ๐Ÿ”Ž TRANSPARENT
โ”‚ โ”œโ”€โ”€ the tree shows execution order before anything runs
โ”‚ โ””โ”€โ”€ when it fails, the failing node is obvious
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ ORGANIZED RESOURCES
โ”‚ โ”œโ”€โ”€ schemas ยท templates ยท constants ยท policies ยท verify
โ”‚ โ””โ”€โ”€ find what you need instantly
โ”‚
โ”œโ”€โ”€ ๐Ÿ”Œ AGENTSKILLS-NATIVE
โ”‚ โ”œโ”€โ”€ meta-framework on agentskills.io โ€” standard install + frontmatter
โ”‚ โ””โ”€โ”€ agents with zero canopy knowledge install and run skills
โ”‚
โ”œโ”€โ”€ ๐Ÿค– AUTONOMOUS-AGENT READY
โ”‚ โ”œโ”€โ”€ workflow engines (LangGraph, CrewAI) drive trees, not prompts
โ”‚ โ””โ”€โ”€ the LLM picks branches; the engine traces them deterministically
โ”‚
โ”œโ”€โ”€ ๐ŸŒ CROSS-PLATFORM
โ”‚ โ”œโ”€โ”€ write once; runs on Claude Code and GitHub Copilot unchanged
โ”‚ โ””โ”€โ”€ the interpreter adapts at runtime โ€” same SKILL.md
โ”‚
โ”œโ”€โ”€ โœจ EDITOR-NATIVE
โ”‚ โ”œโ”€โ”€ VS Code: completions, hover docs, go-to-def, live diagnostics
โ”‚ โ””โ”€โ”€ broken op refs and signature errors surface before run
โ”‚
โ””โ”€โ”€ ๐Ÿš€ ZERO LEARNING CURVE
โ”œโ”€โ”€ /canopy scaffolds, validates, improves, and converts for you
โ””โ”€โ”€ no syntax to memorize before you ship your first skill
```

---

## How it works

> The tree is the source of truth. The platform is just a detail.

Every Canopy skill is a `SKILL.md` file (uppercase, exact spelling per the agentskills.io spec) โ€” platform-agnostic by design. When a skill runs, the `canopy` agent detects whether you're on Claude Code or GitHub Copilot, loads the matching runtime spec, then executes the tree using platform-appropriate primitives. The same skill file works on both platforms without modification.

Here's a complete skill โ€” frontmatter, execution tree, and all:

```markdown
---
name: release
description: Bump version and update changelog.
compatibility: Requires canopy-runtime โ€” kostiantyn-matsebora/canopy
metadata:
argument-hint: "[major|minor|patch]"
---

> **Runtime required.** canopy-runtime must be active.

Parse `$ARGUMENTS` for bump tier (defaults to `patch`).

## Tree
* release
* **EXPLORE_TARGET** >> ctx
* SWITCH << $ARGUMENTS
* CASE << major
* BUMP_MAJOR << ctx.version >> new
* CASE << minor
* BUMP_MINOR << ctx.version >> new
* DEFAULT
* BUMP_PATCH << ctx.version >> new
* SHOW_PLAN >> new | ctx.files | changelog
* ASK << Proceed? | Yes | No
* IF << No
* END Cancelled.
* PARALLEL
* **WRITE_VERSION** << ctx.files | new
* **WRITE_CHANGELOG** << new
* VERIFY_EXPECTED << assets/verify/release.md

## Rules
* Never write without SHOW_PLAN + ASK confirmation.

## Response: new | files_bumped | changelog_status
```

> Subagent dispatch via `**OP_NAME**` markers, multi-way `SWITCH/CASE`, parallel writes via `PARALLEL`, plus a plan/confirm gate and post-execution verify โ€” this is **Canopy** in action.

---

## Quick Start

**Claude Code** โ€” inside a session, no external CLI needed:

```
/plugin marketplace add kostiantyn-matsebora/canopy
/plugin install canopy@canopy
```

**GitHub Copilot** โ€” one-shot install script:

```bash
curl -sSL https://raw.githubusercontent.com/kostiantyn-matsebora/canopy/master/install.sh | bash -s -- --target copilot
```

```powershell
irm https://raw.githubusercontent.com/kostiantyn-matsebora/canopy/master/install.ps1 | iex -Target copilot
```

Both install all three skills (`canopy-runtime`, `canopy`, `canopy-debug`) and self-activate the runtime on first agent load. After install, run `/canopy help` to see what's available.

For all install paths, flags, and the authoring-vs-execution split, see **[Getting Started](GETTING_STARTED.md)**.

Want a working project to copy from instead? **[canopy-examples](https://github.com/kostiantyn-matsebora/canopy-examples)** ships ready-to-run example skills with the framework vendored โ€” clone it and the skills work in both Claude Code and GitHub Copilot without extra setup.

---

## Where to next

- **[Getting Started](GETTING_STARTED.md)** โ€” full install paths, the `/canopy` operations reference, and a first-skill walkthrough.
- **[Concepts](CONCEPTS.md)** โ€” how Canopy thinks about skills: tree, ops, subagents, execution model, the runtime/authoring split.
- **[Terminology](TERMINOLOGY.md)** โ€” glossary of Canopy terms with one-sentence definitions and links to the relevant deep-dive.
- **[Cheatsheet](CHEATSHEET.md)** โ€” one-page reference: skill anatomy, primitives, op syntax, category dirs.
- **[Reference](reference/)** โ€” formal spec: framework grammar, primitives (auto-mirrored from canopy-runtime), per-platform runtime rules.
- **[VS Code Extension](VSCODE.md)** โ€” IntelliSense, semantic diagnostics, hover docs, and go-to-definition for canopy skills.
- **[Examples](https://github.com/kostiantyn-matsebora/canopy-examples)** โ€” a working project to learn from.

---

## License

MIT โ€” see [LICENSE](../LICENSE).