Add NanoClaw spawn script - #2

Merged
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn
Feb 7, 2026
Merged

Add NanoClaw spawn script#2
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn

Conversation

@louisgv

Copy link
Copy Markdown
Collaborator

Summary

  • Add sprite/nanoclaw.sh spawn script for NanoClaw — a lightweight WhatsApp-based Claude AI assistant
  • Update README with NanoClaw usage examples

What the script does

  1. Creates a sprite and configures the shell environment
  2. Clones nanoclaw, installs npm dependencies, builds the project
  3. Authenticates with OpenRouter via OAuth (or manual API key fallback)
  4. Configures .env with the API key
  5. Launches nanoclaw in dev mode for WhatsApp QR code authentication

Usage

bash <(curl -fsSL https://openrouter.ai/lab/spawn/sprite/nanoclaw.sh)

Test plan

  • Run script interactively via bash <(curl ...)
  • Verify nanoclaw clones and builds successfully
  • Verify WhatsApp QR code prompt appears
  • Test non-interactive mode with SPRITE_NAME env var

🤖 Generated with Claude Code

Spriteand others added 3 commits February 7, 2026 05:17
NanoClaw is a lightweight WhatsApp-based Claude AI assistant that runs
agents in isolated containers. This script sets up a sprite with
nanoclaw pre-configured: clones the repo, installs dependencies,
configures the API key, and launches in dev mode for WhatsApp QR auth.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ed check
Retry connectivity up to 6 attempts (30s) instead of trying once and
silently continuing, which caused the next sprite exec to fail under set -e.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mocks the sprite CLI and runs each script end-to-end verifying:
- common.sh sources correctly and all functions resolve
- Log functions write to stderr (not stdout)
- Env var flow (SPRITE_NAME, OPENROUTER_API_KEY)
- Sprite commands called in correct order
- Temp files created and cleaned up
- Each script reaches its final interactive launch
Usage: bash test/run.sh
42 tests, all passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv
louisgv merged commit f43c52e into mainFeb 7, 2026
@louisgv
louisgv deleted the feat/nanoclaw-spawn branch February 7, 2026 05:23
louisgv pushed a commit that referenced this pull request Feb 8, 2026
improve.sh:
- Cloud Scouts get 2 slots, Agent Scout gets 1 (and only if justified)
- Agent discovery requires evidence: 1000+ GH stars, 50+ HN points,
100+ Reddit upvotes — at least 2 of these
- New Issue Responder role checks gh issues for user requests
- Agents must be searched on HN Algolia API, Reddit, GitHub before adding
- Priority order: fill gaps > new clouds > new agents > issue triage
CLAUDE.md:
- Reordered: clouds are priority #2, agents are #3 with strict gate
- Added community buzz requirements with specific thresholds
- Added GitHub issue response as #4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
la14-1 pushed a commit that referenced this pull request Feb 11, 2026
Add `spawn rerun [#]` to quickly relaunch a previous spawn by its
history number. The list view now shows row numbers (#1, #2, ...) and
relative timestamps ("2h ago", "3d ago") alongside absolute dates for
better scannability. Partially addresses #492.
Agent: ux-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AhmedTMM added a commit to AhmedTMM/spawn that referenced this pull request Mar 22, 2026
Diff-aware AI review (OpenRouterLabs#2):
- Includes git diff since last successful E2E run (tracked via
e2e-last-green tag) alongside logs in the AI review prompt
- AI can now do causal analysis: "this 404 likely caused by commit X
which deleted file Y"
- Tag advances only when all E2E tests pass
Predictive reference check (OpenRouterLabs#3):
- New CI workflow runs on PRs touching sh/, packages/cli/, packer/
- Cross-references CDN URLs (openrouter.ai/labs/spawn/...) against
actual files in sh/ — catches broken URLs before merge
- Also checks: raw GitHub URLs, Packer script refs, shell source
paths, manifest.json implemented entries vs sh/ scripts
- Comments on PR with specific broken references and fails the check
- Would have caught sprite-keep-running.sh never existing in the repo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Add NanoClaw spawn script - #2

Merged
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn
Feb 7, 2026
Merged

Add NanoClaw spawn script#2
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn

Conversation

@louisgv

Copy link
Copy Markdown
Collaborator

Summary

  • Add sprite/nanoclaw.sh spawn script for NanoClaw — a lightweight WhatsApp-based Claude AI assistant
  • Update README with NanoClaw usage examples

What the script does

  1. Creates a sprite and configures the shell environment
  2. Clones nanoclaw, installs npm dependencies, builds the project
  3. Authenticates with OpenRouter via OAuth (or manual API key fallback)
  4. Configures .env with the API key
  5. Launches nanoclaw in dev mode for WhatsApp QR code authentication

Usage

bash <(curl -fsSL https://openrouter.ai/lab/spawn/sprite/nanoclaw.sh)

Test plan

  • Run script interactively via bash <(curl ...)
  • Verify nanoclaw clones and builds successfully
  • Verify WhatsApp QR code prompt appears
  • Test non-interactive mode with SPRITE_NAME env var

🤖 Generated with Claude Code

Spriteand others added 3 commits February 7, 2026 05:17
NanoClaw is a lightweight WhatsApp-based Claude AI assistant that runs
agents in isolated containers. This script sets up a sprite with
nanoclaw pre-configured: clones the repo, installs dependencies,
configures the API key, and launches in dev mode for WhatsApp QR auth.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ed check
Retry connectivity up to 6 attempts (30s) instead of trying once and
silently continuing, which caused the next sprite exec to fail under set -e.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mocks the sprite CLI and runs each script end-to-end verifying:
- common.sh sources correctly and all functions resolve
- Log functions write to stderr (not stdout)
- Env var flow (SPRITE_NAME, OPENROUTER_API_KEY)
- Sprite commands called in correct order
- Temp files created and cleaned up
- Each script reaches its final interactive launch
Usage: bash test/run.sh
42 tests, all passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv
louisgv merged commit f43c52e into mainFeb 7, 2026
@louisgv
louisgv deleted the feat/nanoclaw-spawn branch February 7, 2026 05:23
louisgv pushed a commit that referenced this pull request Feb 8, 2026
improve.sh:
- Cloud Scouts get 2 slots, Agent Scout gets 1 (and only if justified)
- Agent discovery requires evidence: 1000+ GH stars, 50+ HN points,
100+ Reddit upvotes — at least 2 of these
- New Issue Responder role checks gh issues for user requests
- Agents must be searched on HN Algolia API, Reddit, GitHub before adding
- Priority order: fill gaps > new clouds > new agents > issue triage
CLAUDE.md:
- Reordered: clouds are priority #2, agents are #3 with strict gate
- Added community buzz requirements with specific thresholds
- Added GitHub issue response as #4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
la14-1 pushed a commit that referenced this pull request Feb 11, 2026
Add `spawn rerun [#]` to quickly relaunch a previous spawn by its
history number. The list view now shows row numbers (#1, #2, ...) and
relative timestamps ("2h ago", "3d ago") alongside absolute dates for
better scannability. Partially addresses #492.
Agent: ux-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AhmedTMM added a commit to AhmedTMM/spawn that referenced this pull request Mar 22, 2026
Diff-aware AI review (OpenRouterLabs#2):
- Includes git diff since last successful E2E run (tracked via
e2e-last-green tag) alongside logs in the AI review prompt
- AI can now do causal analysis: "this 404 likely caused by commit X
which deleted file Y"
- Tag advances only when all E2E tests pass
Predictive reference check (OpenRouterLabs#3):
- New CI workflow runs on PRs touching sh/, packages/cli/, packer/
- Cross-references CDN URLs (openrouter.ai/labs/spawn/...) against
actual files in sh/ — catches broken URLs before merge
- Also checks: raw GitHub URLs, Packer script refs, shell source
paths, manifest.json implemented entries vs sh/ scripts
- Comments on PR with specific broken references and fails the check
- Would have caught sprite-keep-running.sh never existing in the repo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add NanoClaw spawn script - #2

Merged
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn
Feb 7, 2026
Merged

Add NanoClaw spawn script#2
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn

Conversation

@louisgv

Copy link
Copy Markdown
Collaborator

Summary

  • Add sprite/nanoclaw.sh spawn script for NanoClaw — a lightweight WhatsApp-based Claude AI assistant
  • Update README with NanoClaw usage examples

What the script does

  1. Creates a sprite and configures the shell environment
  2. Clones nanoclaw, installs npm dependencies, builds the project
  3. Authenticates with OpenRouter via OAuth (or manual API key fallback)
  4. Configures .env with the API key
  5. Launches nanoclaw in dev mode for WhatsApp QR code authentication

Usage

bash <(curl -fsSL https://openrouter.ai/lab/spawn/sprite/nanoclaw.sh)

Test plan

  • Run script interactively via bash <(curl ...)
  • Verify nanoclaw clones and builds successfully
  • Verify WhatsApp QR code prompt appears
  • Test non-interactive mode with SPRITE_NAME env var

🤖 Generated with Claude Code

Spriteand others added 3 commits February 7, 2026 05:17
NanoClaw is a lightweight WhatsApp-based Claude AI assistant that runs
agents in isolated containers. This script sets up a sprite with
nanoclaw pre-configured: clones the repo, installs dependencies,
configures the API key, and launches in dev mode for WhatsApp QR auth.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ed check
Retry connectivity up to 6 attempts (30s) instead of trying once and
silently continuing, which caused the next sprite exec to fail under set -e.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mocks the sprite CLI and runs each script end-to-end verifying:
- common.sh sources correctly and all functions resolve
- Log functions write to stderr (not stdout)
- Env var flow (SPRITE_NAME, OPENROUTER_API_KEY)
- Sprite commands called in correct order
- Temp files created and cleaned up
- Each script reaches its final interactive launch
Usage: bash test/run.sh
42 tests, all passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv
louisgv merged commit f43c52e into mainFeb 7, 2026
@louisgv
louisgv deleted the feat/nanoclaw-spawn branch February 7, 2026 05:23
louisgv pushed a commit that referenced this pull request Feb 8, 2026
improve.sh:
- Cloud Scouts get 2 slots, Agent Scout gets 1 (and only if justified)
- Agent discovery requires evidence: 1000+ GH stars, 50+ HN points,
100+ Reddit upvotes — at least 2 of these
- New Issue Responder role checks gh issues for user requests
- Agents must be searched on HN Algolia API, Reddit, GitHub before adding
- Priority order: fill gaps > new clouds > new agents > issue triage
CLAUDE.md:
- Reordered: clouds are priority #2, agents are #3 with strict gate
- Added community buzz requirements with specific thresholds
- Added GitHub issue response as #4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
la14-1 pushed a commit that referenced this pull request Feb 11, 2026
Add `spawn rerun [#]` to quickly relaunch a previous spawn by its
history number. The list view now shows row numbers (#1, #2, ...) and
relative timestamps ("2h ago", "3d ago") alongside absolute dates for
better scannability. Partially addresses #492.
Agent: ux-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AhmedTMM added a commit to AhmedTMM/spawn that referenced this pull request Mar 22, 2026
Diff-aware AI review (OpenRouterLabs#2):
- Includes git diff since last successful E2E run (tracked via
e2e-last-green tag) alongside logs in the AI review prompt
- AI can now do causal analysis: "this 404 likely caused by commit X
which deleted file Y"
- Tag advances only when all E2E tests pass
Predictive reference check (OpenRouterLabs#3):
- New CI workflow runs on PRs touching sh/, packages/cli/, packer/
- Cross-references CDN URLs (openrouter.ai/labs/spawn/...) against
actual files in sh/ — catches broken URLs before merge
- Also checks: raw GitHub URLs, Packer script refs, shell source
paths, manifest.json implemented entries vs sh/ scripts
- Comments on PR with specific broken references and fails the check
- Would have caught sprite-keep-running.sh never existing in the repo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add NanoClaw spawn script - #2

Merged
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn
Feb 7, 2026
Merged

Add NanoClaw spawn script#2
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn

Conversation

@louisgv

Copy link
Copy Markdown
Collaborator

Summary

  • Add sprite/nanoclaw.sh spawn script for NanoClaw — a lightweight WhatsApp-based Claude AI assistant
  • Update README with NanoClaw usage examples

What the script does

  1. Creates a sprite and configures the shell environment
  2. Clones nanoclaw, installs npm dependencies, builds the project
  3. Authenticates with OpenRouter via OAuth (or manual API key fallback)
  4. Configures .env with the API key
  5. Launches nanoclaw in dev mode for WhatsApp QR code authentication

Usage

bash <(curl -fsSL https://openrouter.ai/lab/spawn/sprite/nanoclaw.sh)

Test plan

  • Run script interactively via bash <(curl ...)
  • Verify nanoclaw clones and builds successfully
  • Verify WhatsApp QR code prompt appears
  • Test non-interactive mode with SPRITE_NAME env var

🤖 Generated with Claude Code

Spriteand others added 3 commits February 7, 2026 05:17
NanoClaw is a lightweight WhatsApp-based Claude AI assistant that runs
agents in isolated containers. This script sets up a sprite with
nanoclaw pre-configured: clones the repo, installs dependencies,
configures the API key, and launches in dev mode for WhatsApp QR auth.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ed check
Retry connectivity up to 6 attempts (30s) instead of trying once and
silently continuing, which caused the next sprite exec to fail under set -e.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mocks the sprite CLI and runs each script end-to-end verifying:
- common.sh sources correctly and all functions resolve
- Log functions write to stderr (not stdout)
- Env var flow (SPRITE_NAME, OPENROUTER_API_KEY)
- Sprite commands called in correct order
- Temp files created and cleaned up
- Each script reaches its final interactive launch
Usage: bash test/run.sh
42 tests, all passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv
louisgv merged commit f43c52e into mainFeb 7, 2026
@louisgv
louisgv deleted the feat/nanoclaw-spawn branch February 7, 2026 05:23
louisgv pushed a commit that referenced this pull request Feb 8, 2026
improve.sh:
- Cloud Scouts get 2 slots, Agent Scout gets 1 (and only if justified)
- Agent discovery requires evidence: 1000+ GH stars, 50+ HN points,
100+ Reddit upvotes — at least 2 of these
- New Issue Responder role checks gh issues for user requests
- Agents must be searched on HN Algolia API, Reddit, GitHub before adding
- Priority order: fill gaps > new clouds > new agents > issue triage
CLAUDE.md:
- Reordered: clouds are priority #2, agents are #3 with strict gate
- Added community buzz requirements with specific thresholds
- Added GitHub issue response as #4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
la14-1 pushed a commit that referenced this pull request Feb 11, 2026
Add `spawn rerun [#]` to quickly relaunch a previous spawn by its
history number. The list view now shows row numbers (#1, #2, ...) and
relative timestamps ("2h ago", "3d ago") alongside absolute dates for
better scannability. Partially addresses #492.
Agent: ux-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AhmedTMM added a commit to AhmedTMM/spawn that referenced this pull request Mar 22, 2026
Diff-aware AI review (OpenRouterLabs#2):
- Includes git diff since last successful E2E run (tracked via
e2e-last-green tag) alongside logs in the AI review prompt
- AI can now do causal analysis: "this 404 likely caused by commit X
which deleted file Y"
- Tag advances only when all E2E tests pass
Predictive reference check (OpenRouterLabs#3):
- New CI workflow runs on PRs touching sh/, packages/cli/, packer/
- Cross-references CDN URLs (openrouter.ai/labs/spawn/...) against
actual files in sh/ — catches broken URLs before merge
- Also checks: raw GitHub URLs, Packer script refs, shell source
paths, manifest.json implemented entries vs sh/ scripts
- Comments on PR with specific broken references and fails the check
- Would have caught sprite-keep-running.sh never existing in the repo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Add NanoClaw spawn script - #2

Merged
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn
Feb 7, 2026
Merged

Add NanoClaw spawn script#2
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn

Conversation

@louisgv

Copy link
Copy Markdown
Collaborator

Summary

  • Add sprite/nanoclaw.sh spawn script for NanoClaw — a lightweight WhatsApp-based Claude AI assistant
  • Update README with NanoClaw usage examples

What the script does

  1. Creates a sprite and configures the shell environment
  2. Clones nanoclaw, installs npm dependencies, builds the project
  3. Authenticates with OpenRouter via OAuth (or manual API key fallback)
  4. Configures .env with the API key
  5. Launches nanoclaw in dev mode for WhatsApp QR code authentication

Usage

bash <(curl -fsSL https://openrouter.ai/lab/spawn/sprite/nanoclaw.sh)

Test plan

  • Run script interactively via bash <(curl ...)
  • Verify nanoclaw clones and builds successfully
  • Verify WhatsApp QR code prompt appears
  • Test non-interactive mode with SPRITE_NAME env var

🤖 Generated with Claude Code

Spriteand others added 3 commits February 7, 2026 05:17
NanoClaw is a lightweight WhatsApp-based Claude AI assistant that runs
agents in isolated containers. This script sets up a sprite with
nanoclaw pre-configured: clones the repo, installs dependencies,
configures the API key, and launches in dev mode for WhatsApp QR auth.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ed check
Retry connectivity up to 6 attempts (30s) instead of trying once and
silently continuing, which caused the next sprite exec to fail under set -e.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mocks the sprite CLI and runs each script end-to-end verifying:
- common.sh sources correctly and all functions resolve
- Log functions write to stderr (not stdout)
- Env var flow (SPRITE_NAME, OPENROUTER_API_KEY)
- Sprite commands called in correct order
- Temp files created and cleaned up
- Each script reaches its final interactive launch
Usage: bash test/run.sh
42 tests, all passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv
louisgv merged commit f43c52e into mainFeb 7, 2026
@louisgv
louisgv deleted the feat/nanoclaw-spawn branch February 7, 2026 05:23
louisgv pushed a commit that referenced this pull request Feb 8, 2026
improve.sh:
- Cloud Scouts get 2 slots, Agent Scout gets 1 (and only if justified)
- Agent discovery requires evidence: 1000+ GH stars, 50+ HN points,
100+ Reddit upvotes — at least 2 of these
- New Issue Responder role checks gh issues for user requests
- Agents must be searched on HN Algolia API, Reddit, GitHub before adding
- Priority order: fill gaps > new clouds > new agents > issue triage
CLAUDE.md:
- Reordered: clouds are priority #2, agents are #3 with strict gate
- Added community buzz requirements with specific thresholds
- Added GitHub issue response as #4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
la14-1 pushed a commit that referenced this pull request Feb 11, 2026
Add `spawn rerun [#]` to quickly relaunch a previous spawn by its
history number. The list view now shows row numbers (#1, #2, ...) and
relative timestamps ("2h ago", "3d ago") alongside absolute dates for
better scannability. Partially addresses #492.
Agent: ux-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AhmedTMM added a commit to AhmedTMM/spawn that referenced this pull request Mar 22, 2026
Diff-aware AI review (OpenRouterLabs#2):
- Includes git diff since last successful E2E run (tracked via
e2e-last-green tag) alongside logs in the AI review prompt
- AI can now do causal analysis: "this 404 likely caused by commit X
which deleted file Y"
- Tag advances only when all E2E tests pass
Predictive reference check (OpenRouterLabs#3):
- New CI workflow runs on PRs touching sh/, packages/cli/, packer/
- Cross-references CDN URLs (openrouter.ai/labs/spawn/...) against
actual files in sh/ — catches broken URLs before merge
- Also checks: raw GitHub URLs, Packer script refs, shell source
paths, manifest.json implemented entries vs sh/ scripts
- Comments on PR with specific broken references and fails the check
- Would have caught sprite-keep-running.sh never existing in the repo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add NanoClaw spawn script - #2

Merged
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn
Feb 7, 2026
Merged

Add NanoClaw spawn script#2
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn

Conversation

@louisgv

Copy link
Copy Markdown
Collaborator

Summary

  • Add sprite/nanoclaw.sh spawn script for NanoClaw — a lightweight WhatsApp-based Claude AI assistant
  • Update README with NanoClaw usage examples

What the script does

  1. Creates a sprite and configures the shell environment
  2. Clones nanoclaw, installs npm dependencies, builds the project
  3. Authenticates with OpenRouter via OAuth (or manual API key fallback)
  4. Configures .env with the API key
  5. Launches nanoclaw in dev mode for WhatsApp QR code authentication

Usage

bash <(curl -fsSL https://openrouter.ai/lab/spawn/sprite/nanoclaw.sh)

Test plan

  • Run script interactively via bash <(curl ...)
  • Verify nanoclaw clones and builds successfully
  • Verify WhatsApp QR code prompt appears
  • Test non-interactive mode with SPRITE_NAME env var

🤖 Generated with Claude Code

Spriteand others added 3 commits February 7, 2026 05:17
NanoClaw is a lightweight WhatsApp-based Claude AI assistant that runs
agents in isolated containers. This script sets up a sprite with
nanoclaw pre-configured: clones the repo, installs dependencies,
configures the API key, and launches in dev mode for WhatsApp QR auth.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ed check
Retry connectivity up to 6 attempts (30s) instead of trying once and
silently continuing, which caused the next sprite exec to fail under set -e.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mocks the sprite CLI and runs each script end-to-end verifying:
- common.sh sources correctly and all functions resolve
- Log functions write to stderr (not stdout)
- Env var flow (SPRITE_NAME, OPENROUTER_API_KEY)
- Sprite commands called in correct order
- Temp files created and cleaned up
- Each script reaches its final interactive launch
Usage: bash test/run.sh
42 tests, all passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv
louisgv merged commit f43c52e into mainFeb 7, 2026
@louisgv
louisgv deleted the feat/nanoclaw-spawn branch February 7, 2026 05:23
louisgv pushed a commit that referenced this pull request Feb 8, 2026
improve.sh:
- Cloud Scouts get 2 slots, Agent Scout gets 1 (and only if justified)
- Agent discovery requires evidence: 1000+ GH stars, 50+ HN points,
100+ Reddit upvotes — at least 2 of these
- New Issue Responder role checks gh issues for user requests
- Agents must be searched on HN Algolia API, Reddit, GitHub before adding
- Priority order: fill gaps > new clouds > new agents > issue triage
CLAUDE.md:
- Reordered: clouds are priority #2, agents are #3 with strict gate
- Added community buzz requirements with specific thresholds
- Added GitHub issue response as #4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
la14-1 pushed a commit that referenced this pull request Feb 11, 2026
Add `spawn rerun [#]` to quickly relaunch a previous spawn by its
history number. The list view now shows row numbers (#1, #2, ...) and
relative timestamps ("2h ago", "3d ago") alongside absolute dates for
better scannability. Partially addresses #492.
Agent: ux-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AhmedTMM added a commit to AhmedTMM/spawn that referenced this pull request Mar 22, 2026
Diff-aware AI review (OpenRouterLabs#2):
- Includes git diff since last successful E2E run (tracked via
e2e-last-green tag) alongside logs in the AI review prompt
- AI can now do causal analysis: "this 404 likely caused by commit X
which deleted file Y"
- Tag advances only when all E2E tests pass
Predictive reference check (OpenRouterLabs#3):
- New CI workflow runs on PRs touching sh/, packages/cli/, packer/
- Cross-references CDN URLs (openrouter.ai/labs/spawn/...) against
actual files in sh/ — catches broken URLs before merge
- Also checks: raw GitHub URLs, Packer script refs, shell source
paths, manifest.json implemented entries vs sh/ scripts
- Comments on PR with specific broken references and fails the check
- Would have caught sprite-keep-running.sh never existing in the repo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add NanoClaw spawn script - #2

Merged
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn
Feb 7, 2026
Merged

Add NanoClaw spawn script#2
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn

Conversation

@louisgv

Copy link
Copy Markdown
Collaborator

Summary

  • Add sprite/nanoclaw.sh spawn script for NanoClaw — a lightweight WhatsApp-based Claude AI assistant
  • Update README with NanoClaw usage examples

What the script does

  1. Creates a sprite and configures the shell environment
  2. Clones nanoclaw, installs npm dependencies, builds the project
  3. Authenticates with OpenRouter via OAuth (or manual API key fallback)
  4. Configures .env with the API key
  5. Launches nanoclaw in dev mode for WhatsApp QR code authentication

Usage

bash <(curl -fsSL https://openrouter.ai/lab/spawn/sprite/nanoclaw.sh)

Test plan

  • Run script interactively via bash <(curl ...)
  • Verify nanoclaw clones and builds successfully
  • Verify WhatsApp QR code prompt appears
  • Test non-interactive mode with SPRITE_NAME env var

🤖 Generated with Claude Code

Spriteand others added 3 commits February 7, 2026 05:17
NanoClaw is a lightweight WhatsApp-based Claude AI assistant that runs
agents in isolated containers. This script sets up a sprite with
nanoclaw pre-configured: clones the repo, installs dependencies,
configures the API key, and launches in dev mode for WhatsApp QR auth.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ed check
Retry connectivity up to 6 attempts (30s) instead of trying once and
silently continuing, which caused the next sprite exec to fail under set -e.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mocks the sprite CLI and runs each script end-to-end verifying:
- common.sh sources correctly and all functions resolve
- Log functions write to stderr (not stdout)
- Env var flow (SPRITE_NAME, OPENROUTER_API_KEY)
- Sprite commands called in correct order
- Temp files created and cleaned up
- Each script reaches its final interactive launch
Usage: bash test/run.sh
42 tests, all passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv
louisgv merged commit f43c52e into mainFeb 7, 2026
@louisgv
louisgv deleted the feat/nanoclaw-spawn branch February 7, 2026 05:23
louisgv pushed a commit that referenced this pull request Feb 8, 2026
improve.sh:
- Cloud Scouts get 2 slots, Agent Scout gets 1 (and only if justified)
- Agent discovery requires evidence: 1000+ GH stars, 50+ HN points,
100+ Reddit upvotes — at least 2 of these
- New Issue Responder role checks gh issues for user requests
- Agents must be searched on HN Algolia API, Reddit, GitHub before adding
- Priority order: fill gaps > new clouds > new agents > issue triage
CLAUDE.md:
- Reordered: clouds are priority #2, agents are #3 with strict gate
- Added community buzz requirements with specific thresholds
- Added GitHub issue response as #4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
la14-1 pushed a commit that referenced this pull request Feb 11, 2026
Add `spawn rerun [#]` to quickly relaunch a previous spawn by its
history number. The list view now shows row numbers (#1, #2, ...) and
relative timestamps ("2h ago", "3d ago") alongside absolute dates for
better scannability. Partially addresses #492.
Agent: ux-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AhmedTMM added a commit to AhmedTMM/spawn that referenced this pull request Mar 22, 2026
Diff-aware AI review (OpenRouterLabs#2):
- Includes git diff since last successful E2E run (tracked via
e2e-last-green tag) alongside logs in the AI review prompt
- AI can now do causal analysis: "this 404 likely caused by commit X
which deleted file Y"
- Tag advances only when all E2E tests pass
Predictive reference check (OpenRouterLabs#3):
- New CI workflow runs on PRs touching sh/, packages/cli/, packer/
- Cross-references CDN URLs (openrouter.ai/labs/spawn/...) against
actual files in sh/ — catches broken URLs before merge
- Also checks: raw GitHub URLs, Packer script refs, shell source
paths, manifest.json implemented entries vs sh/ scripts
- Comments on PR with specific broken references and fails the check
- Would have caught sprite-keep-running.sh never existing in the repo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@louisgv
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Add NanoClaw spawn script - #2

Merged
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn
Feb 7, 2026
Merged

Add NanoClaw spawn script#2
louisgv merged 3 commits into
mainfrom
feat/nanoclaw-spawn

Conversation

@louisgv

Copy link
Copy Markdown
Collaborator

Summary

  • Add sprite/nanoclaw.sh spawn script for NanoClaw — a lightweight WhatsApp-based Claude AI assistant
  • Update README with NanoClaw usage examples

What the script does

  1. Creates a sprite and configures the shell environment
  2. Clones nanoclaw, installs npm dependencies, builds the project
  3. Authenticates with OpenRouter via OAuth (or manual API key fallback)
  4. Configures .env with the API key
  5. Launches nanoclaw in dev mode for WhatsApp QR code authentication

Usage

bash <(curl -fsSL https://openrouter.ai/lab/spawn/sprite/nanoclaw.sh)

Test plan

  • Run script interactively via bash <(curl ...)
  • Verify nanoclaw clones and builds successfully
  • Verify WhatsApp QR code prompt appears
  • Test non-interactive mode with SPRITE_NAME env var

🤖 Generated with Claude Code

Spriteand others added 3 commits February 7, 2026 05:17
NanoClaw is a lightweight WhatsApp-based Claude AI assistant that runs
agents in isolated containers. This script sets up a sprite with
nanoclaw pre-configured: clones the repo, installs dependencies,
configures the API key, and launches in dev mode for WhatsApp QR auth.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…ed check
Retry connectivity up to 6 attempts (30s) instead of trying once and
silently continuing, which caused the next sprite exec to fail under set -e.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mocks the sprite CLI and runs each script end-to-end verifying:
- common.sh sources correctly and all functions resolve
- Log functions write to stderr (not stdout)
- Env var flow (SPRITE_NAME, OPENROUTER_API_KEY)
- Sprite commands called in correct order
- Temp files created and cleaned up
- Each script reaches its final interactive launch
Usage: bash test/run.sh
42 tests, all passing.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv
louisgv merged commit f43c52e into mainFeb 7, 2026
@louisgv
louisgv deleted the feat/nanoclaw-spawn branch February 7, 2026 05:23
louisgv pushed a commit that referenced this pull request Feb 8, 2026
improve.sh:
- Cloud Scouts get 2 slots, Agent Scout gets 1 (and only if justified)
- Agent discovery requires evidence: 1000+ GH stars, 50+ HN points,
100+ Reddit upvotes — at least 2 of these
- New Issue Responder role checks gh issues for user requests
- Agents must be searched on HN Algolia API, Reddit, GitHub before adding
- Priority order: fill gaps > new clouds > new agents > issue triage
CLAUDE.md:
- Reordered: clouds are priority #2, agents are #3 with strict gate
- Added community buzz requirements with specific thresholds
- Added GitHub issue response as #4
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
la14-1 pushed a commit that referenced this pull request Feb 11, 2026
Add `spawn rerun [#]` to quickly relaunch a previous spawn by its
history number. The list view now shows row numbers (#1, #2, ...) and
relative timestamps ("2h ago", "3d ago") alongside absolute dates for
better scannability. Partially addresses #492.
Agent: ux-engineer
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
AhmedTMM added a commit to AhmedTMM/spawn that referenced this pull request Mar 22, 2026
Diff-aware AI review (OpenRouterLabs#2):
- Includes git diff since last successful E2E run (tracked via
e2e-last-green tag) alongside logs in the AI review prompt
- AI can now do causal analysis: "this 404 likely caused by commit X
which deleted file Y"
- Tag advances only when all E2E tests pass
Predictive reference check (OpenRouterLabs#3):
- New CI workflow runs on PRs touching sh/, packages/cli/, packer/
- Cross-references CDN URLs (openrouter.ai/labs/spawn/...) against
actual files in sh/ — catches broken URLs before merge
- Also checks: raw GitHub URLs, Packer script refs, shell source
paths, manifest.json implemented entries vs sh/ scripts
- Comments on PR with specific broken references and fails the check
- Would have caught sprite-keep-running.sh never existing in the repo
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@louisgv