npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@agent-loom/loom

v1.1.0

Published

CLI for sharing and applying coding agent workspace templates across Copilot, Claude Code, and more

Downloads

323

Readme

Loom

Template engine for coding agent workspaces. Share and apply workspace configurations — instructions, skills, prompts, MCP servers, agents, and repos — across GitHub Copilot, Claude Code, and Cursor.

Loom lets teams maintain reusable workspace templates in a GitHub repository and apply them with a single chat command. No database, no server — just Git and GitHub Pages.

Demo

https://github.com/user-attachments/assets/8c937a54-cd23-45e6-9eb8-f7e2c86ec3f6

Why Loom?

Coding agents (Copilot, Claude Code, Cursor) rely on workspace-level configuration: instruction files, skill definitions, MCP servers, prompt files, and repository references. Teams often need to share and reuse these configurations across projects:

  • Onboarding — new team members get a ready-to-go agent workspace in seconds
  • Consistency — shared instructions and skills stay in sync across projects
  • Multi-agent support — one template renders to Copilot, Claude Code, or Cursor format
  • Personal setups — host your own templates on a personal GitHub repo

Quick Start

1. Install

npm install -g @agent-loom/loom

2. Set up a registry

loom registry add my-templates https://github.com/<your-org>/<your-templates>

3. Search and apply templates

In your coding agent's chat (Copilot, Claude Code, etc.):

Search for available Loom templates
Apply the functions-dev template to this workspace

The agent handles the whole workflow — searching, selecting, and applying the template to your workspace.

Launch an agent (loom <agent>)

Once a template is applied (or in any workspace with .github/agents/<id>.agent.md files), start a single agent in your terminal:

# From inside a workspace (walks up to find .github/agents/)
loom my-agent

# Pass extra args through to the runtime after `--`
loom my-agent -- --model=claude-sonnet-4.5

# Or use the dedicated --model / --add-dir flags directly:
loom my-agent --model=claude-sonnet-4.5

# Launch from anywhere by pointing at a workspace
loom my-agent --workspace /path/to/workspace

# Launch an agent that isn't in any local workspace — stages it from a
# configured registry into ~/.loom/sessions/<id>/workspace/
loom some-registry-agent

# Headless single-shot execution (no TTY): give a prompt, exit when done
loom my-agent -p "investigate failing test" --no-interactive

The verb-less form (loom <agent>) is the interactive surface — it inherits your tty and lets you talk to the agent (mirrors the copilot CLI). For scripted / structured one-shot execution, use either the loom run subcommand or the run() SDK from @agent-loom/loom/run, both of which capture stdout, honor a hard timeout, and return structured results (SESSION:, REPORT:, PROGRESS: artifact paths).

# Run a template-instantiated agent headlessly and collect artifacts
loom run my-template my-agent \
  --prompt "what's broken?" \
  --work-dir /tmp/loom-run-1 \
  --timeout-ms 300000

Every launch is recorded under ~/.loom/sessions/<id>/. Inspect past runs:

loom sessions list              # recent sessions
loom sessions show <id>         # full metadata
loom sessions tag <id> bug-repro
loom sessions note <id> "this one reproduced #1234"

Escape hatches: --no-session (skip recording), --no-registry-fallback (disable the registry fallback), --registry <name> (restrict to one registry).

Available Skills

Loom ships with 5 skills that teach your coding agent how to use the system:

| Skill | Purpose | |-------|---------| | loom-setup | Install CLI, configure registries, verify setup | | loom-search | Search and discover templates across registries | | loom-apply | Apply templates to scaffold workspaces | | loom-scaffold | Create new templates from existing projects | | loom-workspaces | Manage workspace history and navigate past projects |

All skills are bundled with the Craft catalog. Install them with npx @agent-loom/craft add <skill-name>.

How It Works

Template Registry (GitHub repo)
  ├── index.yaml              ← auto-generated template index
  ├── shared/                 ← reusable instructions, MCP, repos, prompts
  └── templates/
      └── my-template/
          └── manifest.yaml   ← declarative workspace definition
              ↓
          loom apply
              ↓
      ┌──── Target: Copilot ──────────────────┐
      │ .github/copilot-instructions.md        │
      │ .github/instructions/*.instructions.md │
      │ .github/agents/*.agent.md              │
      │ .github/skills/*/SKILL.md              │
      │ .github/prompts/*.prompt.md            │
      │ .vscode/mcp.json                       │
      └────────────────────────────────────────┘
      ┌──── Target: Claude Code ──────────────┐
      │ CLAUDE.md                              │
      │ .claude/agents/*.md                    │
      │ .claude/skills/*/SKILL.md              │
      │ .claude/settings.json                  │
      │ .mcp.json                              │
      └────────────────────────────────────────┘

Templates are declarative manifest.yaml files. Shared resources (instructions, MCP servers, repos, prerequisites) live in shared/ and are referenced via $ref. Loom resolves all references, fetches registry skills, and renders target-specific files.

Template Registries

A template registry is a GitHub repository with a specific layout:

my-registry/
  ├── index.yaml
  ├── shared/
  │   ├── instructions/
  │   ├── mcp/
  │   ├── repos/
  │   ├── prerequisites/
  │   └── prompts/
  └── templates/
      ├── template-a/
      │   └── manifest.yaml
      └── template-b/
          └── manifest.yaml

Create a GitHub repository with a template registry layout. See the documentation for a working example with CI/CD and a GitHub Pages catalog.

Catalog UI

Registries can publish a browsable catalog site to GitHub Pages using @agent-loom/loom-ui. The catalog is a static Next.js export that displays all templates with their full manifest details, built and deployed automatically via CI/CD.

Documentation

Packages

| Package | Description | |---------|-------------| | @agent-loom/loom | CLI + core library | | @agent-loom/loom-ui | Static catalog site generator (Next.js) |

Development

npm install
npm run build
npm test
node dist/cli.js --help

Working on a branch

To dogfood a local build globally:

cd <your-loom-worktree>
npm run build
npm link                        # exposes `loom` from this worktree on PATH
loom some-agent                 # uses your local build

# When done:
npm unlink -g @agent-loom/loom  # restore the published `loom`

npm link pins loom to the current worktree path. If you switch branches or blow away node_modules, re-run npm run build (no need to re-link).

License

ISC