pllan 2026.3.43 → 2026.3.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/package.json +1 -1
  2. package/skills/1password/SKILL.md +3 -3
  3. package/skills/apple-notes/SKILL.md +2 -2
  4. package/skills/apple-reminders/SKILL.md +5 -5
  5. package/skills/bear-notes/SKILL.md +1 -1
  6. package/skills/blogwatcher/SKILL.md +1 -1
  7. package/skills/blucli/SKILL.md +1 -1
  8. package/skills/bluebubbles/SKILL.md +3 -3
  9. package/skills/camsnap/SKILL.md +1 -1
  10. package/skills/canvas/SKILL.md +15 -15
  11. package/skills/clawhub/SKILL.md +2 -2
  12. package/skills/coding-agent/SKILL.md +7 -7
  13. package/skills/discord/SKILL.md +1 -1
  14. package/skills/eightctl/SKILL.md +1 -1
  15. package/skills/gemini/SKILL.md +1 -1
  16. package/skills/gh-issues/SKILL.md +13 -13
  17. package/skills/gifgrep/SKILL.md +1 -1
  18. package/skills/github/SKILL.md +1 -1
  19. package/skills/gog/SKILL.md +1 -1
  20. package/skills/goplaces/SKILL.md +1 -1
  21. package/skills/healthcheck/SKILL.md +36 -36
  22. package/skills/himalaya/SKILL.md +1 -1
  23. package/skills/imsg/SKILL.md +2 -2
  24. package/skills/mcporter/SKILL.md +1 -1
  25. package/skills/model-usage/SKILL.md +1 -1
  26. package/skills/nano-pdf/SKILL.md +1 -1
  27. package/skills/node-connect/SKILL.md +22 -22
  28. package/skills/notion/SKILL.md +1 -1
  29. package/skills/obsidian/SKILL.md +1 -1
  30. package/skills/openai-image-gen/SKILL.md +2 -2
  31. package/skills/openai-whisper/SKILL.md +1 -1
  32. package/skills/openai-whisper-api/SKILL.md +2 -2
  33. package/skills/openhue/SKILL.md +1 -1
  34. package/skills/oracle/SKILL.md +1 -1
  35. package/skills/ordercli/SKILL.md +1 -1
  36. package/skills/peekaboo/SKILL.md +1 -1
  37. package/skills/sag/SKILL.md +1 -1
  38. package/skills/session-logs/SKILL.md +7 -7
  39. package/skills/sherpa-onnx-tts/SKILL.md +6 -6
  40. package/skills/skill-creator/scripts/test_quick_validate.py +1 -1
  41. package/skills/slack/SKILL.md +4 -4
  42. package/skills/songsee/SKILL.md +1 -1
  43. package/skills/sonoscli/SKILL.md +1 -1
  44. package/skills/spotify-player/SKILL.md +1 -1
  45. package/skills/summarize/SKILL.md +1 -1
  46. package/skills/things-mac/SKILL.md +3 -3
  47. package/skills/tmux/SKILL.md +1 -1
  48. package/skills/tmux/scripts/find-sessions.sh +2 -2
  49. package/skills/trello/SKILL.md +2 -2
  50. package/skills/video-frames/SKILL.md +1 -1
  51. package/skills/voice-call/SKILL.md +4 -4
  52. package/skills/wacli/SKILL.md +2 -2
  53. package/skills/weather/SKILL.md +1 -1
  54. package/skills/xurl/SKILL.md +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pllan",
3
- "version": "2026.3.43",
3
+ "version": "2026.3.44",
4
4
  "description": "Multi-channel AI gateway by NxAI",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/nxai/pllan",
@@ -4,7 +4,7 @@ description: Set up and use 1Password CLI (op). Use when installing the CLI, ena
4
4
  homepage: https://developer.1password.com/docs/cli/get-started/
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "🔐",
10
10
  "requires": { "bins": ["op"] },
@@ -48,9 +48,9 @@ The shell tool uses a fresh TTY per command. To avoid re-prompts and failures, a
48
48
  Example (see `tmux` skill for socket conventions, do not reuse old session names):
49
49
 
50
50
  ```bash
51
- SOCKET_DIR="${OPENCLAW_TMUX_SOCKET_DIR:-${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/openclaw-tmux-sockets}}"
51
+ SOCKET_DIR="${PLLAN_TMUX_SOCKET_DIR:-${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/pllan-tmux-sockets}}"
52
52
  mkdir -p "$SOCKET_DIR"
53
- SOCKET="$SOCKET_DIR/openclaw-op.sock"
53
+ SOCKET="$SOCKET_DIR/pllan-op.sock"
54
54
  SESSION="op-auth-$(date +%Y%m%d-%H%M%S)"
55
55
 
56
56
  tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: apple-notes
3
- description: Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
3
+ description: Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks Pllan to add a note, list notes, search notes, or manage note folders.
4
4
  homepage: https://github.com/antoniorodr/memo
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "📝",
10
10
  "os": ["darwin"],
@@ -4,7 +4,7 @@ description: Manage Apple Reminders via remindctl CLI (list, add, edit, complete
4
4
  homepage: https://github.com/steipete/remindctl
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "⏰",
10
10
  "os": ["darwin"],
@@ -40,11 +40,11 @@ Use `remindctl` to manage Apple Reminders directly from the terminal.
40
40
 
41
41
  ❌ **DON'T use this skill when:**
42
42
 
43
- - Scheduling OpenClaw tasks or alerts → use `cron` tool with systemEvent instead
43
+ - Scheduling Pllan tasks or alerts → use `cron` tool with systemEvent instead
44
44
  - Calendar events or appointments → use Apple Calendar
45
45
  - Project/work task management → use Notion, GitHub Issues, or task queue
46
46
  - One-time notifications → use `cron` tool for timed alerts
47
- - User says "remind me" but means an OpenClaw alert → clarify first
47
+ - User says "remind me" but means an Pllan alert → clarify first
48
48
 
49
49
  ## Setup
50
50
 
@@ -112,7 +112,7 @@ Accepted by `--due` and date filters:
112
112
 
113
113
  User: "Remind me to check on the deploy in 2 hours"
114
114
 
115
- **Ask:** "Do you want this in Apple Reminders (syncs to your phone) or as an OpenClaw alert (I'll message you here)?"
115
+ **Ask:** "Do you want this in Apple Reminders (syncs to your phone) or as an Pllan alert (I'll message you here)?"
116
116
 
117
117
  - Apple Reminders → use this skill
118
- - OpenClaw alert → use `cron` tool with systemEvent
118
+ - Pllan alert → use `cron` tool with systemEvent
@@ -4,7 +4,7 @@ description: Create, search, and manage Bear notes via grizzly CLI.
4
4
  homepage: https://bear.app
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "🐻",
10
10
  "os": ["darwin"],
@@ -4,7 +4,7 @@ description: Monitor blogs and RSS/Atom feeds for updates using the blogwatcher
4
4
  homepage: https://github.com/Hyaxia/blogwatcher
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "📰",
10
10
  "requires": { "bins": ["blogwatcher"] },
@@ -4,7 +4,7 @@ description: BluOS CLI (blu) for discovery, playback, grouping, and volume.
4
4
  homepage: https://blucli.sh
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "🫐",
10
10
  "requires": { "bins": ["blu"] },
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: bluebubbles
3
3
  description: Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
4
- metadata: { "openclaw": { "emoji": "🫧", "requires": { "config": ["channels.bluebubbles"] } } }
4
+ metadata: { "pllan": { "emoji": "🫧", "requires": { "config": ["channels.bluebubbles"] } } }
5
5
  ---
6
6
 
7
7
  # BlueBubbles Actions
8
8
 
9
9
  ## Overview
10
10
 
11
- BlueBubbles is OpenClaw’s recommended iMessage integration. Use the `message` tool with `channel: "bluebubbles"` to send messages and manage iMessage conversations: send texts and attachments, react (tapbacks), edit/unsend, reply in threads, and manage group participants/names/icons.
11
+ BlueBubbles is Pllan’s recommended iMessage integration. Use the `message` tool with `channel: "bluebubbles"` to send messages and manage iMessage conversations: send texts and attachments, react (tapbacks), edit/unsend, reply in threads, and manage group participants/names/icons.
12
12
 
13
13
  ## Inputs to collect
14
14
 
@@ -28,7 +28,7 @@ If the user is vague ("text my mom"), ask for the recipient handle or chat guid
28
28
  "action": "send",
29
29
  "channel": "bluebubbles",
30
30
  "target": "+15551234567",
31
- "message": "hello from OpenClaw"
31
+ "message": "hello from Pllan"
32
32
  }
33
33
  ```
34
34
 
@@ -4,7 +4,7 @@ description: Capture frames or clips from RTSP/ONVIF cameras.
4
4
  homepage: https://camsnap.ai
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "📸",
10
10
  "requires": { "bins": ["camsnap"] },
@@ -1,6 +1,6 @@
1
1
  # Canvas Skill
2
2
 
3
- Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android).
3
+ Display HTML content on connected Pllan nodes (Mac app, iOS, Android).
4
4
 
5
5
  ## Overview
6
6
 
@@ -40,7 +40,7 @@ The canvas host server binds based on `gateway.bind` setting:
40
40
  **Key insight:** The `canvasHostHostForBridge` is derived from `bridgeHost`. When bound to Tailscale, nodes receive URLs like:
41
41
 
42
42
  ```
43
- http://<tailscale-hostname>:18793/__openclaw__/canvas/<file>.html
43
+ http://<tailscale-hostname>:18793/__pllan__/canvas/<file>.html
44
44
  ```
45
45
 
46
46
  This is why localhost URLs don't work - the node receives the Tailscale hostname from the bridge!
@@ -57,7 +57,7 @@ This is why localhost URLs don't work - the node receives the Tailscale hostname
57
57
 
58
58
  ## Configuration
59
59
 
60
- In `~/.openclaw/openclaw.json`:
60
+ In `~/.pllan/pllan.json`:
61
61
 
62
62
  ```json
63
63
  {
@@ -106,13 +106,13 @@ HTML
106
106
  Check how your gateway is bound:
107
107
 
108
108
  ```bash
109
- cat ~/.openclaw/openclaw.json | jq '.gateway.bind'
109
+ cat ~/.pllan/pllan.json | jq '.gateway.bind'
110
110
  ```
111
111
 
112
112
  Then construct the URL:
113
113
 
114
- - **loopback**: `http://127.0.0.1:18793/__openclaw__/canvas/<file>.html`
115
- - **lan/tailnet/auto**: `http://<hostname>:18793/__openclaw__/canvas/<file>.html`
114
+ - **loopback**: `http://127.0.0.1:18793/__pllan__/canvas/<file>.html`
115
+ - **lan/tailnet/auto**: `http://<hostname>:18793/__pllan__/canvas/<file>.html`
116
116
 
117
117
  Find your Tailscale hostname:
118
118
 
@@ -123,7 +123,7 @@ tailscale status --json | jq -r '.Self.DNSName' | sed 's/\.$//'
123
123
  ### 3. Find connected nodes
124
124
 
125
125
  ```bash
126
- openclaw nodes list
126
+ pllan nodes list
127
127
  ```
128
128
 
129
129
  Look for Mac/iOS/Android nodes with canvas capability.
@@ -137,7 +137,7 @@ canvas action:present node:<node-id> target:<full-url>
137
137
  **Example:**
138
138
 
139
139
  ```
140
- canvas action:present node:mac-63599bc4-b54d-4392-9048-b97abd58343a target:http://peters-mac-studio-1.sheep-coho.ts.net:18793/__openclaw__/canvas/snake.html
140
+ canvas action:present node:mac-63599bc4-b54d-4392-9048-b97abd58343a target:http://peters-mac-studio-1.sheep-coho.ts.net:18793/__pllan__/canvas/snake.html
141
141
  ```
142
142
 
143
143
  ### 5. Navigate, snapshot, or hide
@@ -156,9 +156,9 @@ canvas action:hide node:<node-id>
156
156
 
157
157
  **Debug steps:**
158
158
 
159
- 1. Check server bind: `cat ~/.openclaw/openclaw.json | jq '.gateway.bind'`
159
+ 1. Check server bind: `cat ~/.pllan/pllan.json | jq '.gateway.bind'`
160
160
  2. Check what port canvas is on: `lsof -i :18793`
161
- 3. Test URL directly: `curl http://<hostname>:18793/__openclaw__/canvas/<file>.html`
161
+ 3. Test URL directly: `curl http://<hostname>:18793/__pllan__/canvas/<file>.html`
162
162
 
163
163
  **Solution:** Use the full hostname matching your bind mode, not localhost.
164
164
 
@@ -168,7 +168,7 @@ Always specify `node:<node-id>` parameter.
168
168
 
169
169
  ### "node not connected" error
170
170
 
171
- Node is offline. Use `openclaw nodes list` to find online nodes.
171
+ Node is offline. Use `pllan nodes list` to find online nodes.
172
172
 
173
173
  ### Content not updating
174
174
 
@@ -180,14 +180,14 @@ If live reload isn't working:
180
180
 
181
181
  ## URL Path Structure
182
182
 
183
- The canvas host serves from `/__openclaw__/canvas/` prefix:
183
+ The canvas host serves from `/__pllan__/canvas/` prefix:
184
184
 
185
185
  ```
186
- http://<host>:18793/__openclaw__/canvas/index.html → ~/clawd/canvas/index.html
187
- http://<host>:18793/__openclaw__/canvas/games/snake.html → ~/clawd/canvas/games/snake.html
186
+ http://<host>:18793/__pllan__/canvas/index.html → ~/clawd/canvas/index.html
187
+ http://<host>:18793/__pllan__/canvas/games/snake.html → ~/clawd/canvas/games/snake.html
188
188
  ```
189
189
 
190
- The `/__openclaw__/canvas/` prefix is defined by `CANVAS_HOST_PATH` constant.
190
+ The `/__pllan__/canvas/` prefix is defined by `CANVAS_HOST_PATH` constant.
191
191
 
192
192
  ## Tips
193
193
 
@@ -3,7 +3,7 @@ name: clawhub
3
3
  description: Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawhub CLI.
4
4
  metadata:
5
5
  {
6
- "openclaw":
6
+ "pllan":
7
7
  {
8
8
  "requires": { "bins": ["clawhub"] },
9
9
  "install":
@@ -73,5 +73,5 @@ clawhub publish ./my-skill --slug my-skill --name "My Skill" --version 1.2.0 --c
73
73
  Notes
74
74
 
75
75
  - Default registry: https://clawhub.com (override with CLAWHUB_REGISTRY or --registry)
76
- - Default workdir: cwd (falls back to OpenClaw workspace); install dir: ./skills (override with --workdir / --dir / CLAWHUB_WORKDIR)
76
+ - Default workdir: cwd (falls back to Pllan workspace); install dir: ./skills (override with --workdir / --dir / CLAWHUB_WORKDIR)
77
77
  - Update command hashes local files, resolves matching version, and upgrades to latest unless --version is set
@@ -3,7 +3,7 @@ name: coding-agent
3
3
  description: 'Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.'
4
4
  metadata:
5
5
  {
6
- "openclaw": { "emoji": "🧩", "requires": { "anyBins": ["claude", "codex", "opencode", "pi"] } },
6
+ "pllan": { "emoji": "🧩", "requires": { "anyBins": ["claude", "codex", "opencode", "pi"] } },
7
7
  }
8
8
  ---
9
9
 
@@ -129,7 +129,7 @@ bash pty:true workdir:~/project background:true command:"codex --yolo 'Refactor
129
129
 
130
130
  ### Reviewing PRs
131
131
 
132
- **⚠️ CRITICAL: Never review PRs in OpenClaw's own project folder!**
132
+ **⚠️ CRITICAL: Never review PRs in Pllan's own project folder!**
133
133
  Clone to temp folder or use git worktree.
134
134
 
135
135
  ```bash
@@ -242,8 +242,8 @@ git worktree remove /tmp/issue-99
242
242
  5. **--full-auto for building** - auto-approves changes
243
243
  6. **vanilla for reviewing** - no special flags needed
244
244
  7. **Parallel is OK** - run many Codex processes at once for batch work
245
- 8. **NEVER start Codex in ~/.openclaw/** - it'll read your soul docs and get weird ideas about the org chart!
246
- 9. **NEVER checkout branches in ~/Projects/openclaw/** - that's the LIVE OpenClaw instance!
245
+ 8. **NEVER start Codex in ~/.pllan/** - it'll read your soul docs and get weird ideas about the org chart!
246
+ 9. **NEVER checkout branches in ~/Projects/pllan/** - that's the LIVE Pllan instance!
247
247
 
248
248
  ---
249
249
 
@@ -265,13 +265,13 @@ This prevents the user from seeing only "Agent failed before reply" and having n
265
265
 
266
266
  ## Auto-Notify on Completion
267
267
 
268
- For long-running background tasks, append a wake trigger to your prompt so OpenClaw gets notified immediately when the agent finishes (instead of waiting for the next heartbeat):
268
+ For long-running background tasks, append a wake trigger to your prompt so Pllan gets notified immediately when the agent finishes (instead of waiting for the next heartbeat):
269
269
 
270
270
  ```
271
271
  ... your task here.
272
272
 
273
273
  When completely finished, run this command to notify me:
274
- openclaw system event --text "Done: [brief summary of what was built]" --mode now
274
+ pllan system event --text "Done: [brief summary of what was built]" --mode now
275
275
  ```
276
276
 
277
277
  **Example:**
@@ -279,7 +279,7 @@ openclaw system event --text "Done: [brief summary of what was built]" --mode no
279
279
  ```bash
280
280
  bash pty:true workdir:~/project background:true command:"codex --yolo exec 'Build a REST API for todos.
281
281
 
282
- When completely finished, run: openclaw system event --text \"Done: Built todos REST API with CRUD endpoints\" --mode now'"
282
+ When completely finished, run: pllan system event --text \"Done: Built todos REST API with CRUD endpoints\" --mode now'"
283
283
  ```
284
284
 
285
285
  This triggers an immediate wake event — Skippy gets pinged in seconds, not 10 minutes.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: discord
3
3
  description: "Discord ops via the message tool (channel=discord)."
4
- metadata: { "openclaw": { "emoji": "🎮", "requires": { "config": ["channels.discord.token"] } } }
4
+ metadata: { "pllan": { "emoji": "🎮", "requires": { "config": ["channels.discord.token"] } } }
5
5
  allowed-tools: ["message"]
6
6
  ---
7
7
 
@@ -4,7 +4,7 @@ description: Control Eight Sleep pods (status, temperature, alarms, schedules).
4
4
  homepage: https://eightctl.sh
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "🛌",
10
10
  "requires": { "bins": ["eightctl"] },
@@ -4,7 +4,7 @@ description: Gemini CLI for one-shot Q&A, summaries, and generation.
4
4
  homepage: https://ai.google.dev/
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "✨",
10
10
  "requires": { "bins": ["gemini"] },
@@ -3,14 +3,14 @@ name: gh-issues
3
3
  description: "Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]"
4
4
  user-invocable: true
5
5
  metadata:
6
- { "openclaw": { "requires": { "bins": ["curl", "git", "gh"] }, "primaryEnv": "GH_TOKEN" } }
6
+ { "pllan": { "requires": { "bins": ["curl", "git", "gh"] }, "primaryEnv": "GH_TOKEN" } }
7
7
  ---
8
8
 
9
9
  # gh-issues — Auto-fix GitHub Issues with Parallel Sub-agents
10
10
 
11
11
  You are an orchestrator. Follow these 6 phases exactly. Do not skip phases.
12
12
 
13
- IMPORTANT — No `gh` CLI dependency. This skill uses curl + the GitHub REST API exclusively. The GH_TOKEN env var is already injected by OpenClaw. Pass it as a Bearer token in all API calls:
13
+ IMPORTANT — No `gh` CLI dependency. This skill uses curl + the GitHub REST API exclusively. The GH_TOKEN env var is already injected by Pllan. Pass it as a Bearer token in all API calls:
14
14
 
15
15
  ```
16
16
  curl -s -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github+json" ...
@@ -79,13 +79,13 @@ echo $GH_TOKEN
79
79
  If empty, read from config:
80
80
 
81
81
  ```
82
- cat ~/.openclaw/openclaw.json | jq -r '.skills.entries["gh-issues"].apiKey // empty'
82
+ cat ~/.pllan/pllan.json | jq -r '.skills.entries["gh-issues"].apiKey // empty'
83
83
  ```
84
84
 
85
- If still empty, check `/data/.clawdbot/openclaw.json`:
85
+ If still empty, check `/data/.clawdbot/pllan.json`:
86
86
 
87
87
  ```
88
- cat /data/.clawdbot/openclaw.json | jq -r '.skills.entries["gh-issues"].apiKey // empty'
88
+ cat /data/.clawdbot/pllan.json | jq -r '.skills.entries["gh-issues"].apiKey // empty'
89
89
  ```
90
90
 
91
91
  Export as GH_TOKEN for subsequent commands:
@@ -114,7 +114,7 @@ If in watch mode: Also filter out any issue numbers already in the PROCESSED_ISS
114
114
  Error handling:
115
115
 
116
116
  - If curl returns an HTTP 401 or 403 → stop and tell the user:
117
- > "GitHub authentication failed. Please check your apiKey in the OpenClaw dashboard or in ~/.openclaw/openclaw.json under skills.entries.gh-issues."
117
+ > "GitHub authentication failed. Please check your apiKey in the Pllan dashboard or in ~/.pllan/pllan.json under skills.entries.gh-issues."
118
118
  - If the response is an empty array (after filtering) → report "No issues found matching filters" and stop (or loop back if in watch mode).
119
119
  - If curl fails or returns any other error → report the error verbatim and stop.
120
120
 
@@ -212,7 +212,7 @@ Run these checks sequentially via exec:
212
212
 
213
213
  If HTTP status is not 200, stop with:
214
214
 
215
- > "GitHub authentication failed. Please check your apiKey in the OpenClaw dashboard or in ~/.openclaw/openclaw.json under skills.entries.gh-issues."
215
+ > "GitHub authentication failed. Please check your apiKey in the Pllan dashboard or in ~/.pllan/pllan.json under skills.entries.gh-issues."
216
216
 
217
217
  5. **Check for existing PRs:**
218
218
  For each confirmed issue number N, run:
@@ -288,7 +288,7 @@ Run these checks sequentially via exec:
288
288
 
289
289
  ```
290
290
  CURSOR_FILE="/data/.clawdbot/gh-issues-cursor-{SOURCE_REPO_SLUG}.json"
291
- # SOURCE_REPO_SLUG = owner-repo with slashes replaced by hyphens (e.g., openclaw-openclaw)
291
+ # SOURCE_REPO_SLUG = owner-repo with slashes replaced by hyphens (e.g., pllan-pllan)
292
292
  ```
293
293
 
294
294
  Read the cursor file (create if missing):
@@ -346,7 +346,7 @@ You are a focused code-fix agent. Your task is to fix a single GitHub issue and
346
346
  IMPORTANT: Do NOT use the gh CLI — it is not installed. Use curl with the GitHub REST API for all GitHub operations.
347
347
 
348
348
  First, ensure GH_TOKEN is set. Check: `echo $GH_TOKEN`. If empty, read from config:
349
- GH_TOKEN=$(cat ~/.openclaw/openclaw.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty') || GH_TOKEN=$(cat /data/.clawdbot/openclaw.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty')
349
+ GH_TOKEN=$(cat ~/.pllan/pllan.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty') || GH_TOKEN=$(cat /data/.clawdbot/pllan.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty')
350
350
 
351
351
  Use the token in all GitHub API calls:
352
352
  curl -s -H "Authorization: Bearer $GH_TOKEN" -H "Accept: application/vnd.github+json" ...
@@ -375,13 +375,13 @@ Follow these steps in order. If any step fails, report the failure and stop.
375
375
  0. SETUP — Ensure GH_TOKEN is available:
376
376
  ```
377
377
 
378
- export GH_TOKEN=$(node -e "const fs=require('fs'); const c=JSON.parse(fs.readFileSync('/data/.clawdbot/openclaw.json','utf8')); console.log(c.skills?.entries?.['gh-issues']?.apiKey || '')")
378
+ export GH_TOKEN=$(node -e "const fs=require('fs'); const c=JSON.parse(fs.readFileSync('/data/.clawdbot/pllan.json','utf8')); console.log(c.skills?.entries?.['gh-issues']?.apiKey || '')")
379
379
 
380
380
  ```
381
381
  If that fails, also try:
382
382
  ```
383
383
 
384
- export GH_TOKEN=$(cat ~/.openclaw/openclaw.json 2>/dev/null | node -e "const fs=require('fs');const d=JSON.parse(fs.readFileSync(0,'utf8'));console.log(d.skills?.entries?.['gh-issues']?.apiKey||'')")
384
+ export GH_TOKEN=$(cat ~/.pllan/pllan.json 2>/dev/null | node -e "const fs=require('fs');const d=JSON.parse(fs.readFileSync(0,'utf8'));console.log(d.skills?.entries?.['gh-issues']?.apiKey||'')")
385
385
 
386
386
  ```
387
387
  Verify: echo "Token: ${GH_TOKEN:0:10}..."
@@ -714,7 +714,7 @@ You are a PR review handler agent. Your task is to address review comments on a
714
714
  IMPORTANT: Do NOT use the gh CLI — it is not installed. Use curl with the GitHub REST API for all GitHub operations.
715
715
 
716
716
  First, ensure GH_TOKEN is set. Check: echo $GH_TOKEN. If empty, read from config:
717
- GH_TOKEN=$(cat ~/.openclaw/openclaw.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty') || GH_TOKEN=$(cat /data/.clawdbot/openclaw.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty')
717
+ GH_TOKEN=$(cat ~/.pllan/pllan.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty') || GH_TOKEN=$(cat /data/.clawdbot/pllan.json 2>/dev/null | jq -r '.skills.entries["gh-issues"].apiKey // empty')
718
718
 
719
719
  <config>
720
720
  Repository: {SOURCE_REPO}
@@ -745,7 +745,7 @@ Follow these steps in order:
745
745
  0. SETUP — Ensure GH_TOKEN is available:
746
746
  ```
747
747
 
748
- export GH_TOKEN=$(node -e "const fs=require('fs'); const c=JSON.parse(fs.readFileSync('/data/.clawdbot/openclaw.json','utf8')); console.log(c.skills?.entries?.['gh-issues']?.apiKey || '')")
748
+ export GH_TOKEN=$(node -e "const fs=require('fs'); const c=JSON.parse(fs.readFileSync('/data/.clawdbot/pllan.json','utf8')); console.log(c.skills?.entries?.['gh-issues']?.apiKey || '')")
749
749
 
750
750
  ```
751
751
  Verify: echo "Token: ${GH_TOKEN:0:10}..."
@@ -4,7 +4,7 @@ description: Search GIF providers with CLI/TUI, download results, and extract st
4
4
  homepage: https://gifgrep.com
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "🧲",
10
10
  "requires": { "bins": ["gifgrep"] },
@@ -3,7 +3,7 @@ name: github
3
3
  description: "GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured."
4
4
  metadata:
5
5
  {
6
- "openclaw":
6
+ "pllan":
7
7
  {
8
8
  "emoji": "🐙",
9
9
  "requires": { "bins": ["gh"] },
@@ -4,7 +4,7 @@ description: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets,
4
4
  homepage: https://gogcli.sh
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "🎮",
10
10
  "requires": { "bins": ["gog"] },
@@ -4,7 +4,7 @@ description: Query Google Places API (New) via the goplaces CLI for text search,
4
4
  homepage: https://github.com/steipete/goplaces
5
5
  metadata:
6
6
  {
7
- "openclaw":
7
+ "pllan":
8
8
  {
9
9
  "emoji": "📍",
10
10
  "requires": { "bins": ["goplaces"], "env": ["GOOGLE_PLACES_API_KEY"] },