Unified text diffs in a Code node or CodeAct action, with the diff library running on the host
Scanned 9/1/2026
Install to Claude Code
npx -y skills add nodetool-ai/nodetool --skill sandbox-diff --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Sandbox Diff?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/nodetool-ai-sandbox-diff)More formats (shields.io, HTML) on the badges page.
---
name: sandbox-diff
description: Unified text diffs in a Code node or CodeAct action, with the diff library running on the host
---
# Text diffs in the sandbox
Specifier: `@nodetool-ai/sandbox-diff`. Import it at the top of the body.
The `diff` library schedules with `setTimeout`, and the guest has no timers, so
it cannot be compiled in. This pack is a **host module**: the import resolves to
a generated facade over NodeTool's own implementation.
## unified — a unified diff of two texts
```js
import { unified } from "@nodetool-ai/sandbox-diff";
const patch = await unified(inputs.before, inputs.after, {
oldName: "before.md",
newName: "after.md",
context: 5
});
return { patch, changed: patch.includes("@@") };
```
Options: `context` (lines of context, 0–100, default 3), `oldName`, `newName`.
Identical inputs produce a header with no hunks, so `includes("@@")` is the
cheap "did anything change" test — handy in a verify loop.
## Gotchas
- **`unified` is async.**
- **5 MB per side.** Larger input is refused by name.
- **Line-oriented.** Two texts that differ only in trailing whitespace still
diff; normalize first if that is noise.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!
Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
**Complete production-ready guide for Google Gemini embeddings API** This skill provides comprehensive coverage of the `gemini-embedding-001` model for generating text embeddings, including SDK usage, REST API patterns, batch processing, RAG integration with Cloudflare Vectorize, and advanced use cases like semantic search and document clustering. ---
Use when a repo needs CodeGraph plus ast-grep for Codex MCP setup, exploration, impact analysis, structural search, or safe refactor planning.
Interview, source-challenge, verify, save, and ADR-gate fuzzy coding requests into Codex-ready implementation specs. Use when a feature, bugfix, refactor, migration, repo-wide change, or architecture task needs user-verified requirements, source-backed decisions, durable architecture decisions, acceptance criteria, validation commands, rollout notes, saved spec/ADR files, and a Codex execution prompt. Do not use when already fully specified or when the user wants direct implementation now.