add-linear
Skill1 starsChanged 6 months agoMITView on GitHub
Add Linear channel integration via Chat SDK. Issue comment threads as conversations.
- Reads credentials
- Installs packages
7 other projects use a version of this, 7 of them edited.
Adopted by
Most recently taken up by
- nanocoai/nanoclawedited, first seen Nov 15, 2026
- ss2code/nanoclaw-opsedited, first seen Oct 15, 2026
- prathish-ks/isthmusedited, first seen Oct 12, 2026
- gavrielc/nanoclawedited, first seen Oct 8, 2026
- qwibitai/nanoclawedited, first seen Oct 8, 2026
- TomGranot/groupguardedited, first seen Sep 3, 2026
Used with
Projects with it also use add-anydoc, add-clidash and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
TomGranotSkilladd-anydoc
Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when agents need to read attached Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, or text-based PDF files without uploading them to a hosted parser.
Also in 5 projects that use this
TomGranotSkilladd-clidash
Add clidash — a zero-dependency, read-only web dashboard that derives its tabs and tables at runtime from any CLI that lists resources as JSON. Ships pre-wired for NanoClaw's ncl CLI (agent groups, sessions, channels, users, roles), plus message-activity charts, a log tail, and a read-only file viewer for group skills/CLAUDE.md/profiles.
Also in 5 projects that use this
qwibitaiSkilladd-iron-proxy
Install or refresh Iron Proxy and its official Iron Control web console for NanoClaw. Use when selecting the Iron gateway, adding its management UI, configuring credentials and grants, or restoring the proxy, approval bridge, and agent guidance.
Also in 4 projects that use this
qwibitaiSkilladd-mattermost
Add a self-hosted or cloud Mattermost bot channel through the Chat SDK bridge, reusing a healthy server when available and linking to official server setup guidance when needed.
Also in 4 projects that use this
b1rdmaniaSkillmigrate-memory
Migrate from monolith CLAUDE.md to the three-file memory system (identity + state + log). Non-destructive — backs up the original first.
Also in 6 projects that use this
nanocoaiSkilladd-cursor
Use Cursor (local Agent SDK) as a full agent provider — planning, tool orchestration, MCP tools, session resume — alongside or instead of Claude. Cursor-account sign-in or API key, held by the credential gateway. Per-group via `ncl groups config update --provider cursor`. Distinct from using Cursor as a cloud agent (those run on Cursor VMs and are not this provider).
Also in 3 projects that use this
- +5 more from TomGranot
- +1 more from qwibitai
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 7
- nanocoai/nanoclaw★ 31k24% same
- gavrielc/nanoclaw★ 31k24% same
- qwibitai/nanoclaw★ 31k24% same
- microsoft/amplifier-app-nanoclaw★ 593% same
- TomGranot/groupguard★ 325% same
- prathish-ks/isthmus★ 225% same
- ss2code/nanoclaw-ops★ 171% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository42 other files it gives its agents.
- AGENTS.mdAGENTS.md
- container/AGENTS.mdAGENTS.md
- add-atomic-chat-toolSkill
- add-dashboardSkill
- add-discordSkill
- add-emacsSkill
- add-gcal-toolSkill
- add-gchatSkill
- add-githubSkill
- add-gmail-toolSkill
- add-imessageSkill
- add-karpathy-llm-wikiSkill
- add-macos-statusbarSkill
- add-matrixSkill
- add-ollama-providerSkill
- add-ollama-toolSkill
- add-parallelSkill
- add-resendSkill
- add-signalSkill
- add-slackSkill
- add-teamsSkill
- add-telegramSkill
- add-vercelSkill
- add-webexSkill
- add-wechatSkill
- add-whatsapp-cloudSkill
- add-whatsappSkill
- clawSkill
- convert-to-apple-containerSkill
- customizeSkill
- debugSkill
- get-qodo-rulesSkill
- init-first-agentSkill
- manage-channelsSkill
- manage-mountsSkill
- migrate-from-openclawSkill
- migrate-clawbridgeSkill
- qodo-pr-resolverSkill
- setupSkill
- update-clawbridgeSkill
- update-skillsSkill
- x-integrationSkill
The file
We split this skill into the rules it gives an agent
10 rules. 3 are common, 1 is distinctive, and 6 are very specific to this project.
3
Common
Most of the 7 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Common: line 12
Recommended: Create a Linear OAuth application so the agent posts as an app identity, not as you.
- Common: line 15
Create an app (e.g. "ClawBridge Bot")
- Common: line 18
After creating, click the app and enable Client credentials under grant types
- Very specific: line 21
Alternative: Use a Personal API Key (LINEAR_API_KEY) for simpler setup.
- Very specific: line 62
4a.: Add catchAll?: boolean to the ChatSdkBridgeConfig interface:
- Very specific: line 73
4b.: Add this handler block right after the chat.onNewMention(...) block (before the DMs block):
- Distinctive: line 136
Ask the user: Is this a private or public Linear workspace?
- Very specific: line 141
Run /manage-channels to wire the Linear channel to an agent group, or insert manually:
- Very specific: line 157
If you're in the middle of /setup, return to the setup flow now.
- Very specific: line 168
default-isolation: Use per-thread session mode.
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Add Linear Channel
Adds Linear support via the Chat SDK bridge. The agent participates in issue comment threads. Every comment on a Linear issue triggers the agent — no @-mention needed.
Prerequisites
Recommended: Create a Linear OAuth application so the agent posts as an app identity, not as you. This prevents the adapter from filtering your own comments as self-messages.
- Go to Linear Settings > API > OAuth Applications
- Create an app (e.g. "ClawBridge Bot")
- Developer URL: your repo URL (e.g.
https://github.com/your-org/clawbridge) - Callback URL:
http://localhost
- Developer URL: your repo URL (e.g.
- After creating, click the app and enable Client credentials under grant types
- Copy the Client ID and Client Secret
Alternative: Use a Personal API Key (LINEAR_API_KEY) for simpler setup. The agent will post as you, and your own comments will be filtered (other team members' comments still work).
Install
ClawBridge doesn't ship channels in trunk. This skill copies the Linear adapter in from the channels branch and patches the Chat SDK bridge to support catch-all message forwarding (Linear OAuth apps can't be @-mentioned).
Pre-flight (idempotent)
Skip to Credentials if all of these are already in place:
src/channels/linear.tsexistssrc/channels/index.tscontainsimport './linear.js';@chat-adapter/linearis listed inpackage.jsondependenciessrc/channels/chat-sdk-bridge.tscontainscatchAll
Otherwise continue. Every step below is safe to re-run.
1. Fetch the channels branch
git fetch origin channels2. Copy the adapter
git show origin/channels:src/channels/linear.ts > src/channels/linear.ts3. Append the self-registration import
Append to src/channels/index.ts (skip if the line is already present):
import './linear.js';4. Patch the Chat SDK bridge for catch-all message forwarding
Linear OAuth apps can't be @-mentioned, so the bridge's onNewMention handler never fires. Add catchAll support to src/channels/chat-sdk-bridge.ts:
4a. Add catchAll?: boolean to the ChatSdkBridgeConfig interface:
/**
* Forward ALL messages in unsubscribed threads, not just @-mentions.
* Use for platforms where the bot identity can't be @-mentioned (e.g.
* Linear OAuth apps). The thread is auto-subscribed on first message.
*/
catchAll?: boolean;4b. Add this handler block right after the chat.onNewMention(...) block (before the DMs block):
// Catch-all for platforms where @-mention isn't possible (e.g. Linear
// OAuth apps). Forward every unsubscribed message and auto-subscribe.
if (config.catchAll) {
chat.onNewMessage(/.*/, async (thread, message) => {
const channelId = adapter.channelIdFromThreadId(thread.id);
await setupConfig.onInbound(channelId, thread.id, await messageToInbound(message));
await thread.subscribe();
});
}5. Install the adapter package (pinned)
pnpm install @chat-adapter/linear@4.26.06. Build
pnpm run buildCredentials
1. Set up a webhook
- Go to Linear Settings > API > Webhooks > New webhook
- Label:
ClawBridge - URL:
https://your-domain/webhook/linear(the shared webhook server, default port 3000) - Team: select the team you want to monitor
- Events: check Comment
- Save — copy the signing secret
Note: Linear webhook delivery may be delayed 1-5 minutes for new webhooks. This is normal.
2. Configure environment
Add to .env:
# OAuth app (recommended)
LINEAR_CLIENT_ID=your-client-id
LINEAR_CLIENT_SECRET=your-client-secret
# OR Personal API key (simpler, but agent posts as you)
# LINEAR_API_KEY=lin_api_...
LINEAR_WEBHOOK_SECRET=your-webhook-signing-secret
LINEAR_BOT_USERNAME=ClawBridge Bot
LINEAR_TEAM_KEY=ENGLINEAR_BOT_USERNAME: display name for the bot (used for self-message detection when using a Personal API Key)LINEAR_TEAM_KEY: the Linear team key (e.g.ENG,NAN). Find it in Linear under Settings > Teams. All issues in this team route to one messaging group.
Sync to container: mkdir -p data/env && cp .env data/env/env
Wiring
Ask the user: Is this a private or public Linear workspace?
- Private workspace — use
unknown_sender_policy: 'public'. Only workspace members can comment. - Public workspace — use
unknown_sender_policy: 'strict'and add trusted members (see GitHub skill for member registration example).
Run /manage-channels to wire the Linear channel to an agent group, or insert manually:
-- Create messaging group (one per team)
INSERT INTO messaging_groups (id, channel_type, platform_id, name, is_group, unknown_sender_policy, created_at)
VALUES ('mg-linear-eng', 'linear', 'linear:ENG', 'Engineering', 1, 'public', datetime('now'));
-- Wire to agent group
INSERT INTO messaging_group_agents (id, messaging_group_id, agent_group_id, trigger_rules, response_scope, session_mode, priority, created_at)
VALUES ('mga-linear-eng', 'mg-linear-eng', '<your-agent-group-id>', '', 'all', 'per-thread', 10, datetime('now'));The platform_id must be linear:<TEAM_KEY> matching the LINEAR_TEAM_KEY env var. Use per-thread session mode so each issue comment thread 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 (systemctl --user restart clawbridge or launchctl kickstart -k gui/$(id -u)/com.clawbridge) to pick up the new channel.
Channel Info
- type:
linear - terminology: Linear has "teams" containing "issues." Each issue's comment thread is a separate conversation.
- how-to-find-id: The platform ID is
linear:<TEAM_KEY>(e.g.linear:ENG). Find your team key in Linear under Settings > Teams. Each issue becomes its own thread automatically. - supports-threads: yes (issue comment threads are native conversations)
- typical-use: Webhook-driven — the agent receives all issue comment events and responds automatically. No @-mention needed (Linear OAuth apps can't be @-mentioned).
- default-isolation: Use
per-threadsession mode. Each issue comment thread gets its own isolated agent session.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

