Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add lout33/termcanvas --skill termcanvas-agent-sync-debugginggit clone --depth 1 https://github.com/lout33/termcanvasWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lout33/termcanvas/termcanvas-agent-sync-debugging)<a href="https://agentmods.dev/skills/lout33/termcanvas/termcanvas-agent-sync-debugging"><img src="https://agentmods.dev/badge/skills/lout33/termcanvas/termcanvas-agent-sync-debugging/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lout33/termcanvas/termcanvas-agent-sync-debugging"><img src="https://agentmods.dev/badge/skills/lout33/termcanvas/termcanvas-agent-sync-debugging.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00116 | $0.04441 |
| Opus 5.5 | $0.00046 | $0.01776 |
| Sonnet 5.5 | $0.00023 | $0.00888 |
| Haiku 4.5 | $0.00012 | $0.00444 |
Grade A, and why
termcanvas-agent-sync-debugging scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 431 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Debug TermCanvas restore, agent sync, and rendering stability
Use this workflow to identify whether the failing layer is persisted agent identity, restore ordering, renderer polling, terminal geometry, xterm rendering, or PTY/tmux I/O before changing lifecycle code.
Failure pattern: A release relaunch creates and saves duplicate terminal views, sometimes on the wrong canvas, when agent sync races partial session hydration. Related paths include folderless projects being skipped and periodic renderer work changing geometry or exhausting WebGL contexts.
Verified by: Normalizing a real polluted release snapshot reduced 20 nodes
to 15 unique nodes; an isolated Electron relaunch restored all 15 with
duplicateIdentities: []. npm run build passed and all 249 tests passed. Prior
checks also reproduced the folderless sync mismatch, improved scoped polling
from about 0.55s to 0.20s, held 10-terminal WebGL use to 8, and preserved tail
mount height 486.4609375 and terminal size 116x27. The deleted-session path
was verified by restoring two exact OpenCode session IDs, rebuilding their
parent chain, and observing both running tmux sessions materialize in TermCanvas.
Procedure
1. Diagnose release-relaunch duplicates from the saved session
-
Quit or isolate the release app before drawing conclusions from changing state. Inspect its persisted session first:
jq ' [.canvases[] as $canvas | $canvas.terminalNodes[]? | { canvasId: $canvas.id, canvasProjectTag: $canvas.agentProjectTag, sessionKey, tmuxSessionName, managedProjectTag, managedAgentName }] as $nodes | { bySessionKey: ($nodes | group_by(.sessionKey) | map(select(.[0].sessionKey != null and length > 1))), byTmuxSession: ($nodes | group_by(.tmuxSessionName) | map(select(.[0].tmuxSessionName != null and length > 1))), byProjectAgent: ($nodes | group_by([.managedProjectTag,.managedAgentName]) | map(select(.[0].managedProjectTag != null and .[0].managedAgentName != null and length > 1))) } ' "$HOME/Library/Application Support/TermCanvas/app-session.json"
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 431 lines · 116 tokens per session scan A ee254f01183f
termcanvas-agent-sync-debugging is a skill published in the GitHub repository lout33/termcanvas (25 stars, last pushed 2mo ago), licensed MIT. It adds 116 tokens to every session and 4,441 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
feishu-troubleshoot
A Feishu troubleshooting tool with FAQs and diagnostic commands. Feishu is a collaboration platform with online documents and workplace services.
business-ops-runbook-generator
Build an operational runbook with rollback paths for a recurring task or incident: capture the brief, infer failure modes, draft the runbook steps and checks, then define a rollback path for each failure mode. Use when the user wants a step-by-step runbook that an operator can follow under pressure, including what to…
Debug (reproduce -> isolate -> fix)
Systematically diagnose and fix a bug instead of guessing.
error-collection
A structured record of confirmed engineering mistakes, their root causes, and checks that prevent them from returning. It uses evidence from real application behavior, not just successful builds.
flaky-test-triage
Use when a test passes and fails intermittently, behaves differently by order, machine, runtime, timing, or retry, or when the user asks to reduce test flakiness. Gather repeatable evidence, isolate nondeterminism, and repair the causal dependency without weakening test intent.
ci-debugger
A guide for finding the first useful cause of a failed build, test, packaging, deployment, or continuous-integration job. Continuous integration, or CI, automatically checks code in a hosted pipeline.