Agent skill

GitHub Channel for NanoClaw

by nanocoai in nanocoai/nanoclaw

Lets a NanoClaw agent join GitHub pull request and issue comment threads as conversations, using a dedicated bot account and the Chat SDK bridge.

MITAuto-check: notesProductivity & Automation

Install GitHub Channel for NanoClaw

skills CLI
$ npx skills add nanocoai/nanoclaw --skill add-github -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nanocoai/nanoclaw add-github --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-github .claude/skills/add-github && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
add-github
GitHub stars
31k
Token cost
~2.2k tokens
SKILL.md length
1,002 words
Files
3
Skills in repo
59
Repo updated
First seen
Licence
MIT

At a glance

Lets a NanoClaw agent join GitHub pull request and issue comment threads as conversations, using a dedicated bot account and the Chat SDK bridge.

  • Works in 7 steps: Copy the adapter → Register the adapter → Install the adapter package → …
  • Having an agent reply in pull request or issue comment threads
  • SKILL.md covers Prerequisites, Apply, Credentials and Wiring, plus 3 more sections
  • Calls openssl, gh and pnpm; needs GITHUB_WEBHOOK_SECRET and GITHUB_TOKEN

What it does

The agent takes part in pull request and issue comment threads on GitHub, treating each thread as a conversation. It needs a dedicated GitHub bot account instead of your personal one, invited as a collaborator with write access to the repositories to watch, because the adapter posts replies as that account and ignores its own messages so it cannot loop.

Setup copies the GitHub adapter from the `channels` branch, registers it in `src/channels/index.ts`, installs `@chat-adapter/github` pinned to an exact version and builds, with a registration test as the one automated check. Credentials start with a personal access token created while logged in as the bot, and a webhook setup follows. End-to-end delivery on a real repository is checked manually.

When your agent uses it

  • Having an agent reply in pull request or issue comment threads
  • Setting up a bot account to monitor specific repositories
  • Wiring GitHub webhooks to a NanoClaw channel

Example prompts

  • “Add the GitHub channel to NanoClaw so the agent answers comments on our pull requests.”
  • “Walk me through creating the personal access token for the bot account.”
  • “Install the GitHub adapter and run its registration test.”

Requirements

  • A NanoClaw installation with pnpm
  • A dedicated GitHub bot account with write access to the repositories
  • A personal access token for the bot

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Copy the adapter
  2. Register the adapter
  3. Install the adapter package
  4. Build and validate
  5. Create a Personal Access Token for the bot account
  6. Set up a webhook on each repo
  7. Configure environment

What it can do on your machine

Read from SKILL.md and the folder at commit 66f0823. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • openssl
    • gh
    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GITHUB_WEBHOOK_SECRET
    • GITHUB_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

GitHub Channel for NanoClaw loads about 2.2k tokens when it runs. Until then it costs about 26 tokens; SKILL.md has 1,002 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~26
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:97
    ed `ncl` or the OneCLI vault instead of `.env` by swapping only the consumer.
  • NoteMentions a .env fileSKILL.md:98
    Here they go to `.env` (set-if-absent — a value you've already filled in is
  • NoteMentions a .env fileSKILL.md:186
    ps) so it loads the adapter and the new `.env` values.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nanocoai/nanoclaw at commit 66f0823, republished under its MIT licence (© nanocoai). 1,002 words, ~2,178 tokens.

Download SKILL.mdSave it as .claude/skills/add-github/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
add-github
description
Add GitHub channel integration via Chat SDK. PR and issue comment threads as conversations.

Add GitHub Channel

Adds GitHub support via the Chat SDK bridge. The agent participates in PR and issue comment threads. NanoClaw doesn't ship channels in trunk — this skill copies the GitHub adapter in from the channels branch.

The mechanical steps under Apply carry nc: directive fences: an agent reads the prose and applies them, and a parser can apply them deterministically from the same document. Every directive is idempotent, so the whole skill is safe to re-run; anything a parser can't apply falls back to the prose beside it.

Prerequisites

You need a dedicated GitHub bot account (not your personal account). The adapter uses this account to post replies and filters out its own messages to avoid loops. Create a free GitHub account for your bot (e.g. my-org-bot), then invite it as a collaborator with write access to the repos you want monitored.

Apply

1. Copy the adapter

Fetch the channels branch and copy the GitHub adapter into src/channels/ (overwrite — the branch is canonical):

nccopy
src/channels/github.ts
src/channels/github-registration.test.ts
2. Register the adapter

Append the self-registration import to the channel barrel (skipped if the line is already present). This one line is the skill's only reach-in into core:

ncappend
import './github.js';
3. Install the adapter package

Pinned to an exact version — the supply-chain policy rejects ranges and latest:

ncdep
@chat-adapter/github@4.29.0
4. Build and validate

The build guards the typed createChatSdkBridge(...) core call and proves the dependency is installed (the adapter import throws if @chat-adapter/github isn't present):

ncrun
pnpm run build
ncrun
pnpm exec vitest run src/channels/github-registration.test.ts

github-registration.test.ts imports the real channel barrel and asserts the registry contains github. It goes red if the import line is deleted or drifts, if the barrel fails to evaluate, or if @chat-adapter/github isn't installed (the import throws) — so it also covers the dependency from step 3.

End-to-end message delivery against a real GitHub repo is verified manually once the service is running — see Next Steps and the webhook setup below.

Credentials

1. Create a Personal Access Token for the bot account

Log in as your bot account, then:

  1. Go to Settings > Developer Settings > Personal Access Tokens
  2. Create a Fine-grained token with:
    • Repository access: select the repos you want the bot to monitor
    • Permissions: Pull requests (Read & Write), Issues (Read & Write)
  3. Copy the token
2. Set up a webhook on each repo

On each repo (logged in as the repo owner/admin):

  1. Go to Settings > Webhooks > Add webhook
  2. Payload URL: https://your-domain/webhook/github (the shared webhook server, default port 3000)
  3. Content type: application/json
  4. Secret: generate a random string (e.g. openssl rand -hex 20)
  5. Events: select Issue comments and Pull request review comments
3. Configure environment

Capture the three values, then write them. prompt only asks and binds the answer to a name; a separate directive consumes it — so the same prompts could feed ncl or the OneCLI vault instead of .env by swapping only the consumer. Here they go to .env (set-if-absent — a value you've already filled in is never overwritten):

ncprompt
Paste the Fine-grained Personal Access Token for the bot account — starts with `github_pat_`.
ncprompt
Paste the webhook secret you generated for the repo webhook(s).
ncprompt
Enter the bot account's GitHub username exactly (used for @-mention detection).
ncenv-set
GITHUB_TOKEN={{github_token}}
GITHUB_WEBHOOK_SECRET={{webhook_secret}}
GITHUB_BOT_USERNAME={{bot_username}}

GITHUB_BOT_USERNAME must match the bot account's GitHub username exactly. This is used for @-mention detection — the agent responds when someone writes @your-bot-username in a PR or issue comment.

Wiring

Ask the user: Is this a private or public repo?

  • Private repo — use unknown_sender_policy: 'public'. Only collaborators can comment anyway, so it's safe to let all comments through.
  • Public repo — use unknown_sender_policy: 'strict'. Only registered members can trigger the agent, preventing strangers from consuming agent resources. Add trusted collaborators as members (see below).

Run /manage-channels to wire the GitHub channel to an agent group, or create the rows directly with ncl. The host service must be running — ncl connects to it over a Unix socket:

bash
# Create messaging group (one per repo)
ncl messaging-groups create --channel-type github --platform-id "github:owner/repo" \
  --name "owner/repo" --is-group 1 --unknown-sender-policy <policy>

# Wire to agent group (engage mode/pattern default to the GitHub adapter's
# declared channel defaults; grab the mg id from the create output above)
ncl wirings create --messaging-group-id <mg-id> --agent-group-id <your-agent-group-id> \
  --session-mode per-thread

Replace <policy> with public or strict based on the user's choice above.

Show full SKILL.md (395 more words)Show less
Adding members (for strict mode)

When using strict, add each GitHub user who should be able to trigger the agent:

bash
# Add user (kind = 'github', id = 'github:<numeric-user-id>')
ncl users create --id "github:<user-id>" --kind github --display-name "<username>"

# Grant membership to the agent group
ncl members add --user "github:<user-id>" --group "<agent-group-id>"

To find a GitHub user's numeric ID: gh api users/<username> --jq .id

Use per-thread session mode so each PR/issue gets its own agent session.

Next Steps

If you're in the middle of /setup, return to the setup flow now.

Otherwise, restart the service to pick up the new channel.

Run from your NanoClaw project root:

bash
source setup/lib/install-slug.sh
launchctl kickstart -k gui/$(id -u)/$(launchd_label)  # macOS
systemctl --user restart $(systemd_unit)              # Linux

Channel Info

  • type: github
  • terminology: GitHub has "repositories" containing "pull requests" and "issues." Each PR or issue comment thread is a separate conversation.
  • how-to-find-id: The platform ID is github:owner/repo (e.g. github:acme/backend). Each PR/issue becomes its own thread automatically.
  • supports-threads: yes (PR and issue comment threads are native conversations)
  • typical-use: Webhook-driven — the agent receives PR and issue comment events and responds in comment threads when @-mentioned. After the first mention, the thread is subscribed and the agent responds to all follow-up comments.
  • default-isolation: Use per-thread session mode. Each PR or issue gets its own isolated agent session. Typically wire to a dedicated agent group if the repo contains sensitive code.

Troubleshooting

API calls return 401/403 with the token. The token must be a fine-grained PAT starting github_pat_, created while logged in as the bot account (Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens), with the monitored repos selected under Repository access and both Pull requests and Issues set to Read & Write. A classic ghp_ token, or one minted on your personal account, is the usual miss.

Webhook deliveries show red in the repo settings. Open Settings → Webhooks → Recent Deliveries on the repo: a 401 response means the secret in the webhook form doesn't match GITHUB_WEBHOOK_SECRET; a timeout means https://your-domain/webhook/github isn't publicly reachable on the shared webhook port (3000). Fix, then use Redeliver to retest without writing a new comment.

Comments never trigger the agent. The @-mention must match GITHUB_BOT_USERNAME exactly, and the webhook must subscribe to Issue comments and Pull request review comments (not just pushes). Comments authored by the bot account itself are filtered by design — test from a different account than the bot.

Adapter installed but the channel is dead. Run pnpm exec vitest run src/channels/github-registration.test.ts — red means the barrel import or the @chat-adapter/github install drifted, so re-run the Apply steps. If green, restart the service (see Next Steps) so it loads the adapter and the new .env values.

© nanocoai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in .claude/skills/add-github of nanocoai/nanoclaw.

  • SKILL.md
  • REMOVE.md
  • apply-fixtures.json

Open the folder on GitHubat commit 66f0823

Compare with similar skills

GitHub Channel for NanoClaw next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

GitHub Channel for NanoClaw compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
GitHub Channel for NanoClaw this skillnanocoai/nanoclaw31k—~2.2kAutomated safety check: NotesMIT
Process PR Reviewsnexu-io/nexu3.3k—~2.5kAutomated safety check: PassMIT
OpenObserve PR Briefopenobserve/openobserve22k—~1.8kAutomated safety check: PassAGPL-3.0
GitHub Automationdavila7/claude-code-templates32k5 repos~2.8kAutomated safety check: PassMIT
Last30days CnJesseovo/last30days-skill-cn1.9k—~2.4kAutomated safety check: NotesMIT
Openloomi Connectorsmelandlabs/openloomi1k—~3.3kAutomated safety check: PassApache-2.0

Similar skills

  • Process PR Reviews

    nexu-io/nexu

    A skill your agent uses when the user asks to process, triage, fetch, view, count, list, or resolve review feedback in a GitHub PR.

    3.3k GitHub stars~2.5k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • OpenObserve PR Brief

    openobserve/openobserve

    Produces a read-only morning brief of your open pull requests across the openobserve GitHub org, with a next step for each and a reminder for idle ones.

    22k GitHub stars~1.8k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • GitHub Automation

    davila7/claude-code-templates

    Automate GitHub repositories, issues, pull requests, branches, CI/CD, and permissions via Rube MCP (Composio).

    32k GitHub starsUsed in 5 repos~2.8k tokens
    Productivity & AutomationAuto-check passed
  • Last30days Cn

    Jesseovo/last30days-skill-cn

    Research what Chinese internet users actually said in the last 30 days across Weibo, Xiaohongshu (RED), Bilibili, Zhihu, Douyin, WeChat public accounts, Baidu and Toutiao: engagement-weighted…

    1.9k GitHub stars~2.4k tokensUpdated yesterday
    Productivity & AutomationAuto-check: notes
  • Openloomi Connectors

    melandlabs/openloomi

    openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google…

    1k GitHub stars~3.3k tokensUpdated 13 days ago
    Productivity & AutomationAuto-check passed
  • Agent Reach

    EdisonChenAI/agent-reach

    Use the internet: search, read, and interact with 13+ platforms including Twitter/X, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu (小红书), Douyin (抖音), WeChat Articles (微信公众号), LinkedIn, Boss直聘…

    104 GitHub starsUsed in 1 repo~1.3k tokens
    Productivity & AutomationAuto-check passed

More from nanocoai/nanoclaw

All 59 skills in this repo
  • Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.

    31k GitHub stars~4.6k tokensUpdated yesterday
    Auto-check: notes
  • Agent Browser

    nanocoai/nanoclaw

    Drives a web browser from the shell with the agent-browser CLI: open pages, read an element snapshot, click and fill by reference, grab text and screenshots.

    31k GitHub starsUsed in 3 repos~1.6k tokens
    Auto-check passed
  • Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.

    31k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check: notes
  • Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.

    31k GitHub stars~6k tokensUpdated yesterday
    Auto-check: notes
  • Wires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line.

    31k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • NanoClaw LLM Wiki Setup

    nanocoai/nanoclaw

    Adds a persistent wiki knowledge base to a NanoClaw group following Karpathy's LLM Wiki pattern, with folders, a tailored container skill and a CLAUDE.md section.

    31k GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed

Works with

Questions about GitHub Channel for NanoClaw

What does GitHub Channel for NanoClaw do?

Lets a NanoClaw agent join GitHub pull request and issue comment threads as conversations, using a dedicated bot account and the Chat SDK bridge. The agent takes part in pull request and issue comment threads on GitHub, treating each thread as a conversation. It needs a dedicated GitHub bot account instead of your personal one, invited as a collaborator with write access to the repositories to watch, because the adapter posts replies as that account and ignores its own messages so it cannot loop.

When should I use GitHub Channel for NanoClaw?

GitHub Channel for NanoClaw fits situations like: having an agent reply in pull request or issue comment threads; setting up a bot account to monitor specific repositories; wiring GitHub webhooks to a NanoClaw channel.

How do I install GitHub Channel for NanoClaw in Claude Code?

Run `npx skills add nanocoai/nanoclaw --skill add-github -a claude-code`. Or copy the skill folder (.claude/skills/add-github in nanocoai/nanoclaw) into .claude/skills/add-github in your project. Claude Code loads it when a task matches its description.

How do I install GitHub Channel for NanoClaw in Codex?

Run `npx skills add nanocoai/nanoclaw --skill add-github -a codex`. Or copy the skill folder (.claude/skills/add-github in nanocoai/nanoclaw) into .agents/skills/add-github in your project. Codex loads it when a task matches its description.

Can I use GitHub Channel for NanoClaw in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nanocoai/nanoclaw --skill add-github -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-github, .gemini/skills/add-github, .github/skills/add-github and .opencode/skills/add-github in your project.

What does GitHub Channel for NanoClaw need to run?

Going by SKILL.md and its folder, GitHub Channel for NanoClaw needs the command-line tools its instructions call (openssl, gh and pnpm) and credentials named GITHUB_WEBHOOK_SECRET and GITHUB_TOKEN. Our summary lists: A NanoClaw installation with pnpm; A dedicated GitHub bot account with write access to the repositories; A personal access token for the bot.

Does GitHub Channel for NanoClaw access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is GitHub Channel for NanoClaw safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does GitHub Channel for NanoClaw use?

GitHub Channel for NanoClaw is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does GitHub Channel for NanoClaw use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to GitHub Channel for NanoClaw?

Skills that share tags, products or a category with GitHub Channel for NanoClaw: Process PR Reviews (nexu-io/nexu, 3.3k stars), OpenObserve PR Brief (openobserve/openobserve, 22k stars), GitHub Automation (davila7/claude-code-templates, 32k stars) and Last30days Cn (Jesseovo/last30days-skill-cn, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains GitHub Channel for NanoClaw?

nanocoai (a GitHub organization) maintains it in nanocoai/nanoclaw, which has 30,883 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on October 6, 2026.

Source: nanocoai/nanoclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.