> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whim.run/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub, Skills & Plugins

> Connect GitHub, create custom skills, and extend agents with plugins.

## GitHub App Setup

Whim connects to GitHub through a dedicated **Whim GitHub App** that provides secure, scoped access to your repositories — so agents can clone, branch, commit, and open PRs on your behalf.

### Installing the GitHub App

The GitHub App is installed at the **team** level. Once installed, all workspaces in the team can access the granted repositories.

<Steps>
  <Step title="Open team settings">
    Navigate to your workspace → **Settings** → **GitHub**.
  </Step>

  <Step title="Install the GitHub App">
    Click **Install GitHub App**. You'll be redirected to GitHub to authorize the Whim app.
  </Step>

  <Step title="Select repositories">
    Choose **All repositories** or select specific ones. You can change this anytime from GitHub App settings.
  </Step>

  <Step title="Confirm installation">
    After authorizing, you're redirected back to Whim. Repositories become available in your workspaces.
  </Step>
</Steps>

<Note>
  You must be a **team admin or owner** to install or manage the GitHub App.
</Note>

### Repository Permissions

| Permission              | Access       | Purpose                                        |
| ----------------------- | ------------ | ---------------------------------------------- |
| **Repository contents** | Read & write | Clone repos, create branches, push commits     |
| **Pull requests**       | Read & write | Create and update PRs from tasks               |
| **Webhooks**            | Read         | Receive push, PR, and branch-delete events     |
| **Metadata**            | Read         | List repositories and detect organization type |

Modify repository access anytime from GitHub → **Applications** → **Whim**.

### Linking Repos to Workspaces

1. Open your workspace → **Settings → Repositories**.
2. Select a repository from your team's GitHub App installation.
3. Tasks in the workspace automatically get access to the repo code.

Whim can also **create new repositories** directly from workspace settings — new repos are private by default.

### Webhook Events

<AccordionGroup>
  <Accordion title="Push events">
    When code is pushed to a linked repository, Whim syncs the mirror so tasks always have the latest code. If the push modifies container-relevant files (e.g., `Dockerfile`, `whim.json`, `package.json`), Whim reconciles tracked branch images.
  </Accordion>

  <Accordion title="Pull request events">
    Whim tracks PRs on `whim-*` branches. Tracked actions: `opened`, `reopened`, `closed`, `ready_for_review`, `converted_to_draft`, `synchronize`. PR state is visible directly on the task in Whim.
  </Accordion>

  <Accordion title="Branch delete events">
    When a branch is deleted on GitHub, Whim removes tracked branch state across workspaces using that repository.
  </Accordion>
</AccordionGroup>

All webhook payloads are verified using **HMAC-SHA256** signatures for security.

***

## Skills & Slash Commands

Skills are custom instructions that extend what your AI agents can do. Each skill is a Markdown file that gets injected into the agent's context when invoked via a **slash command** (e.g., `/code-review`).

### Anatomy of a Skill

```markdown theme={null}
---
name: code-review
description: Review code changes with detailed feedback
user_invocable: true
argument_hint: <pr-number>
allowed_tools: Read, Grep, Glob
context: fork
model: claude-sonnet-4.6
---

Review the provided code changes for correctness, style,
performance, and security issues...
```

### Frontmatter Fields

| Field                      | Default       | Description                                            |
| -------------------------- | ------------- | ------------------------------------------------------ |
| `name`                     | auto-inferred | Slash command identifier                               |
| `description`              | auto-inferred | Short description shown in the skill catalog           |
| `user_invocable`           | `true`        | Whether users can invoke via slash command             |
| `argument_hint`            | —             | Usage hint (e.g., `<pr-number>`)                       |
| `allowed_tools`            | —             | Comma-separated list of tools the skill can use        |
| `context`                  | `default`     | `default` runs inline; `fork` runs in isolated context |
| `agent`                    | —             | Agent type when `context` is `fork`                    |
| `model`                    | —             | Model override (e.g., `claude-opus-4.8`)               |
| `disable_model_invocation` | `false`       | Prevent agent from invoking this skill on its own      |

### Built-in Skills

<AccordionGroup>
  <Accordion title="Development">
    `commit-message`, `fix-issue`, `pr-summary`, `api-design`
  </Accordion>

  <Accordion title="Code Quality">
    `code-review`, `refactor`, `test-generation`, `security-review`
  </Accordion>

  <Accordion title="Productivity">
    `debug`, `document`, `explain-code`
  </Accordion>

  <Accordion title="DevOps">
    `deploy-checklist`, `performance-audit`
  </Accordion>
</AccordionGroup>

### Creating Custom Skills

1. Go to **Settings → Skills**.
2. Click **Add Skill** and fill in the name, description, and instructions.
3. Optionally set `context`, `allowed_tools`, `model`, and other frontmatter fields.
4. Save — it's immediately available as a slash command.

You can also import skills by uploading Markdown files or pasting Claude Code `settings.json` content. Multi-file skills (up to 50 files, 2 MB total) use a `SKILL.md` entry point.

### Skill Scope & Resolution

Skills can be configured at **workspace** and **user** levels. Resolution order:

1. Workspace skills (all enabled)
2. Minus any the user has individually disabled
3. Plus user's personal skills (override workspace skills with the same name)

Enable built-in skills from the catalog in **Settings → Skills** — toggle on/off and optionally customize content.

| Constraint                 | Limit |
| -------------------------- | ----- |
| Skills per config          | 100   |
| Files per multi-file skill | 50    |
| Total size per skill       | 2 MB  |

***

## Plugins

Plugins are published packages from plugin marketplaces that add entire tool ecosystems to your AI agents — integrations, language servers, code quality tools, and more.

### How Plugins Work

Plugins use a `name@marketplace` format (e.g., `github@claude-plugins-official`). Enable a plugin and its tools become available to agents in your workspace.

<Note>
  Plugins are available for Claude and CCR providers. They are not currently supported for Codex.
</Note>

### Available Marketplaces

<CardGroup cols={2}>
  <Card title="Claude Code Plugins" icon="robot">
    Anthropic's first-party plugins — development workflows, testing tools, and agent capabilities.
  </Card>

  <Card title="Claude Plugins Official" icon="store">
    Anthropic's official registry — integrations, language servers, infrastructure tools, and more.
  </Card>
</CardGroup>

You can also define **custom marketplaces** pointing to GitHub repositories for private or org-specific plugins.

### Plugin Catalog

<AccordionGroup>
  <Accordion title="Agent capabilities (Claude Code Plugins)">
    `frontend-design`, `code-review`, `commit-commands`, `e2e-testing`, `add-testids`, `code-simplifier`, `questions`, `codex`, `explore`, `plan`
  </Accordion>

  <Accordion title="Language servers">
    `lsp-typescript`, `lsp-python`, `lsp-rust`, `lsp-go`, `lsp-java`, `lsp-csharp`, `lsp-ruby`, `lsp-php`, `lsp-swift`, `lsp-kotlin`, `lsp-html-css`, `lsp-yaml`, `lsp-json`
  </Accordion>

  <Accordion title="Integrations">
    `github`, `slack`, `linear`, `jira`, `notion`, `confluence`, `google-drive`, `google-sheets`, `google-calendar`, `stripe`, `supabase`, `sentry`, `datadog`, `pagerduty`
  </Accordion>

  <Accordion title="Infrastructure & DevOps">
    `docker`, `kubernetes`, `terraform`, `aws`, `azure`, `gcp`, `vercel`, `netlify`, `cloudflare`
  </Accordion>

  <Accordion title="Code quality & testing">
    `eslint`, `prettier`, `stylelint`, `jest`, `vitest`, `pytest`, `snyk`, `sonarqube`, `dependabot`
  </Accordion>

  <Accordion title="Data">
    `postgres`, `redis`, `mongodb`
  </Accordion>
</AccordionGroup>

### Enabling Plugins

1. Go to **Settings → Plugins** in your workspace or user preferences.
2. Search by name or filter by category.
3. Toggle plugins on or off. Changes take effect for new tasks.

### Plugin Scope & Resolution

Like skills, plugins merge across levels:

1. Workspace plugins (all enabled)
2. Minus any the user has disabled
3. Plus user's personal plugins

### Custom Marketplaces

Add custom marketplace definitions in **Settings → Plugins** under advanced configuration:

```json theme={null}
{
  "my-org-plugins": {
    "source": {
      "source": "github",
      "repo": "my-org/claude-plugins"
    }
  }
}
```

Reference plugins as `plugin-name@my-org-plugins`.

| Constraint          | Limit |
| ------------------- | ----- |
| Plugins per config  | 100   |
| Custom marketplaces | 50    |
