---
name: claudskills-install
description: Install Claude Code skills from claudskills.com on the user's request. Fetches SKILL.md by slug from the catalog and writes it to ~/.claude/skills/<slug>/SKILL.md. Pairs with Claude Code Channels (Telegram, Discord, iMessage) so "install <slug> from claudskills" works from any messaging platform. Use only on explicit user request with a specific slug.
user-invokable: true
allowed-tools: Bash, Write, Read
license: CC-BY-4.0
author: Adam Lankamer
source: https://claudskills.com
homepage: https://claudskills.com/learn/channels-integration/
---

# claudskills-install

A meta-skill that installs other Claude Code skills from the open [ClaudSkills catalog](https://claudskills.com) on demand. Particularly useful when paired with [Claude Code Channels](https://code.claude.com/docs/en/channels-reference) — say "install &lt;slug&gt; from claudskills" from your Telegram / Discord / iMessage bridge and the skill lands in `~/.claude/skills/&lt;slug&gt;/SKILL.md` on your local machine.

## When to use

Use this skill **only when the user explicitly requests installing a Claude Code skill from claudskills.com**. Trigger phrases include:

- "Install &lt;slug&gt; from claudskills"
- "Install the &lt;slug&gt; skill"
- "Get &lt;slug&gt; from the ClaudSkills catalog"
- "Add &lt;slug&gt; to my skills"

## When NOT to use

- The user is asking about a skill's content, not requesting install. **Browse + describe instead, no file writes.**
- The user has not provided a specific slug. **Ask which one.**
- The slug doesn't match the catalog format (lowercase alphanumeric + hyphens). **Confirm with the user before fetching.**
- The user appears to be testing or exploring without intent to install. **Confirm explicitly before any disk write.**

## Install procedure

For a slug `<slug>`:

### 1. Verify the skill exists in the catalog

```bash
curl -fsI "https://claudskills.com/skills/<slug>/SKILL.md" -o /dev/null
```

If the request returns 200, the skill exists. If 404, tell the user the slug isn't in the catalog and suggest browsing [claudskills.com](https://claudskills.com) or running an inline search via `@claudskills_bot <topic>` in Telegram.

### 2. Fetch the SKILL.md content

```bash
mkdir -p ~/.claude/skills/<slug>
curl -fsSL "https://claudskills.com/skills/<slug>/SKILL.md" -o ~/.claude/skills/<slug>/SKILL.md
```

### 3. Verify the install

```bash
ls -l ~/.claude/skills/<slug>/SKILL.md
head -20 ~/.claude/skills/<slug>/SKILL.md
```

Confirm:

- The file is at least 200 bytes (smaller files are stubs and should be rejected — delete and report to the user)
- The frontmatter is intact (`---` at the top of the file)
- The skill `name:` field matches the slug

### 4. Confirm to the user

Tell the user the install succeeded. Include:

- The full path to the installed SKILL.md
- A 1-line summary of what the skill does (from its `description:` frontmatter field)
- A reminder that they need to restart Claude Code to pick up the new skill (or it'll be available next session)

## Edge cases

**Skill already installed**: silently overwrite the existing `~/.claude/skills/<slug>/SKILL.md` with the freshly-fetched version from the catalog. ClaudSkills regenerates SKILL.md nightly via its miner (catalog source updates, frontmatter backfills, license metadata) so re-installing always pulls the latest. After overwrite, tell the user "Refreshed &lt;name&gt; to the latest catalog version" so the action is visible.

**Slug normalization**: catalog slugs are lowercase, hyphen-separated, ASCII only. If the user provides `Fast MCP Server`, normalize to `fast-mcp-server` before fetching. If `fast-mcp-server` doesn't match, try fuzzy variants and ask the user to confirm.

**Catalog URL changes**: this skill hard-codes `https://claudskills.com/skills/<slug>/SKILL.md`. If that URL ever changes, this skill needs an update — the user will get a 404 and should be directed to [claudskills.com/learn/channels-integration/](https://claudskills.com/learn/channels-integration/) for the current install URL.

**Sandboxed environments**: on MAS (Mac App Store) builds of Claude Code, write access to `~/.claude/` may be sandboxed. If the write fails with EPERM or similar, instruct the user to run from a non-sandboxed Claude Code instance, or use the [ClaudSkills desktop app](https://claudskills.com/install/) which handles sandboxing explicitly.

## Pairing with Claude Code Channels

This skill is most useful when paired with Anthropic's Channels research preview. With the Telegram Channel plugin installed and your personal bot wired up:

1. DM your bot from any device: `Claude, install fastmcp-server from claudskills`
2. The Telegram Channel forwards your message to Claude Code as `<channel source="telegram">`
3. Claude reads the message, recognizes the install intent, and runs this skill
4. The SKILL.md lands at `~/.claude/skills/fastmcp-server/SKILL.md` on your local machine
5. Next Claude Code session picks it up automatically

Same flow works with Discord, iMessage, or the fakechat demo Channel.

## Why this skill (vs. a custom Channel)

We considered shipping a custom ClaudSkills Channel plugin. We chose this meta-skill instead because:

1. **Anthropic's Telegram / Discord / iMessage Channels already exist.** We don't need to duplicate the bridge — we just need Claude to know how to install our skills when asked.
2. **Custom Channel plugins are gated behind `--dangerously-load-development-channels` during the research preview.** A meta-skill ships through the normal catalog with no gating.
3. **One skill works across every Channel.** Telegram, Discord, iMessage — same install command, same flow.

## Source

- Catalog: [claudskills.com](https://claudskills.com)
- Channels docs: [code.claude.com/docs/en/channels-reference](https://code.claude.com/docs/en/channels-reference)
- This skill on GitHub: [github.com/kinkyb/claudskills/blob/master/skills/claudskills-install/SKILL.md](https://github.com/kinkyb/claudskills/blob/master/skills/claudskills-install/SKILL.md)
