termcanvas-agent-sync-debugging

termcanvas-agent-sync-debugging is a skill for Claude Code, Codex from lout33/termcanvas. It costs 116 tokens per session (4,441 once invoked), scanned A, original, MIT.

A troubleshooting guide for TermCanvas, a terminal workspace that displays synchronized agent sessions. It covers missing agent nodes, broken terminal rendering, repeated resizing, duplicate terminal views, and session restoration.

In plain words
What is it for?
Use it to investigate TermCanvas restore failures, agent synchronization issues, terminal display problems, and duplicated sessions after a release restart.
Why use it?
These problems can make agents disappear, terminals hard to read, or restored sessions appear more than once or in the wrong place. The guide helps identify whether the cause is synchronization, saved state, rendering, or terminal communication.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/lout33/termcanvas/termcanvas-agent-sync-debugging
Any agent
npx skills add lout33/termcanvas --skill termcanvas-agent-sync-debugging
Clone the repo
git clone --depth 1 https://github.com/lout33/termcanvas

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for termcanvas-agent-sync-debugging

README.md
[![agentmods](https://agentmods.dev/badge/skills/lout33/termcanvas/termcanvas-agent-sync-debugging.svg)](https://agentmods.dev/skills/lout33/termcanvas/termcanvas-agent-sync-debugging)
Your own site
<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="Measured on agentmods" height="20"></a>
Per session 116 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,441 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00116 $0.04441
Opus 5 $0.00058 $0.02220
Sonnet 5 $0.00023 $0.00888
Haiku 4.5 $0.00012 $0.00444

Measured 3d ago against content hash ee254f01183f, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

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 3d 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.

skills/termcanvas-agent-sync-debugging/SKILL.md · 431 lines

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"
    

Read the full file on GitHub · 431 lines

Changes

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.

  1. 3d ago First seen · 431 lines · 116 tokens per session scan A ee254f01183f

Subscribe to this mod's changes

termcanvas-agent-sync-debugging is a skill published in the GitHub repository lout33/termcanvas (24 stars, last pushed 1mo ago), licensed MIT. It adds 116 tokens to every session and 4,441 once invoked, about $0.0006 per session on Opus 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.

Related

Other skills, from other repositories

imap-smtp-email

Read and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments. Works with any IMAP/SMTP server including Gmail, Outlook, 163.com, vip.163.com, 126.com, vip.126.com, 188.com, and vip.188.com.

freestylefly/wesight · 82 tokens

eac-desktop-tips

Deepseek Harness EAC 桌面客户端功能速查 —— 退出后台运行、对话回退、插件市场、桌面宠物、Skills 与 MCP 管理等特性的使用方法与排障入口。当用户询问本客户端某个功能怎么用、去哪找设置或某个内置行为不符预期时使用。.

zouyuxuan122/DSH-Desktop-EAC · 80 tokens

katra

Chronicle development work in a committed, rich-component dev log as you build. Use when starting a piece of work that should be logged, when capturing a screenshot/gif/render into the log, when adding a before/after comparison, or at commit time to stamp the active draft with its hash + diffstat. Keywords - katra…

craigjmidwinter/getvect · 88 tokens

getvect

Convert a raster image (PNG, JPEG, BMP) into a vector file (SVG, EPS, DXF, PDF) locally, with no network call and no account. Use when you have generated or been given a bitmap and need clean editable paths — a logo to scale, line art to cut, a diagram to embed at any size. Do not use for photographs you want to keep…

craigjmidwinter/getvect · 92 tokens

release

Use when the maintainer wants to cut, prepare, or ship a code-by-wire release — e.g. says "bump version", "bump vX.Y.Z", "release it", "ship it", or "cut a release" — whether before the release (preparing the version bump and the changelog PR) or after the bump PR has merged (tagging and publishing).

luojiahai/code-by-wire · 82 tokens

feishu-create-doc

创建飞书云文档。从 Lark-flavored Markdown 内容创建新的飞书云文档,支持指定创建位置(文件夹/知识库/知识空间)。.

op7418/CodePilot · 40 tokens