---
title: "Share output from GitHub Copilot — Krowk setup"
canonical_url: "https://krowk.com/docs/copilot"
last_updated: "2026-10-01T21:55:44.205Z"
meta:
  description: "Install the krowk binary, add one line to .github/copilot-instructions.md, and Copilot publishes screenshots and recordings to permalinks that unfurl in Slack, Basecamp and Linear, not only in the pull request."
  "og:description": "Install the krowk binary, add one line to .github/copilot-instructions.md, and Copilot publishes screenshots and recordings to permalinks that unfurl in Slack, Basecamp and Linear, not only in the pull request."
  "og:title": "Share output from GitHub Copilot — Krowk setup"
---

**Docs**

# **Krowk in GitHub Copilot**

Install the binary, add one line to the instructions file, and Copilot publishes the screen it changed rather than telling you about it.

[The CLI reference](https://krowk.com/docs/cli) [MCP setup](https://krowk.com/docs/mcp)

**Setup**

## **Two commands.**

1 — install

```
$ curl -fsSL https://krowk.com/install | bash
```

2 — check it landed

```
$ krowk doctor
```

Same two pieces as any other harness: put the binary on the path, then tell the agent when to use it. Copilot reads standing instructions from `.github/copilot-instructions.md`, so the instruction is the whole integration.

## The instruction

Put this in `.github/copilot-instructions.md`. Copilot in the editor and the Copilot coding agent both read it.

.github/copilot-instructions.md

```
After any visual change, capture it (screenshot if static, a short screen recording if it is an interaction) and publish it with the krowk skill. If the skill is missing or fails, run `krowk help --json`, then `krowk push FILE --title "what changed" --json`, and paste `paste.url` where you report the work.
```

It names a fallback on purpose. There is no skill for the agent to find here, so it reads `krowk help --json` and works from that rather than inventing a flag.

## The coding agent

The Copilot coding agent runs in GitHub Actions, and its results land in the pull request. The pull request is the one place a screenshot already reaches; a Krowk link is for everyone who reads Slack, Basecamp or Linear and never opens GitHub. Install the binary in `.github/workflows/copilot-setup-steps.yml` so it is on the path before the agent starts:

.github/workflows/copilot-setup-steps.yml

```
steps:
  - uses: actions/checkout@v4
  - run: curl -fsSL https://krowk.com/install | bash
    env:
      KROWK_SKIP_SKILL: "1"
```

Add `KROWK_TOKEN` as a Copilot environment secret and pushes land in your workspace with no expiry. `KROWK_SKIP_SKILL=1` installs the binaries and nothing else: a runner's home directory is thrown away, so writing a skill into it achieves nothing.

## What it records

Inside the coding agent the harness is detected as `github-actions` and the session is the run ID, because that is what the runner exposes. Set `KROWK_AGENT=copilot` in the workflow to name the harness instead. Git supplies the rest — repository, commit, branch, dirty flag. In the editor nothing is detected on its own; set `KROWK_AGENT` there too if you want the card to say so.

## MCP, if you would rather

Copilot speaks MCP. Add `krowk-mcp` as a stdio server and the agent gets `krowk_push` as a tool instead of a command — same client, same refusals.

.vscode/mcp.json

```
{
  "servers": {
    "krowk": { "type": "stdio", "command": "krowk-mcp" }
  }
}
```

## **One line in the instructions file, and the evidence reaches the people who never open GitHub.**

No account needed for the first push.

[The CLI reference](https://krowk.com/docs/cli) [See the pricing](https://krowk.com/pricing)