---
title: "Token 壓縮模組(Context Budget)｜在 Claude Code 介面產出 compact 指令 — 阿Ray (Zinzan) 作品集"
description: "直接加在 Claude Code 介面上的 mod。context 過了門檻，輸入框上方會出現一排按鈕，按一下就產出 /compact 指令：用預設的保留／丟棄指示，或讓 AI 讀當下的對話寫一份量身的指示，按 Enter 才執行。MIT 授權開源。"
canonical: "https://www.zinzan.info/projects/context-budget/"
image: "https://www.zinzan.info/og-image.png"
---

# Token 壓縮模組(Context Budget)

在 Claude Code 介面產出 compact 指令

直接加在 Claude Code 介面上的 mod。context 過了門檻，輸入框上方會出現一排按鈕，按一下就產出 /compact 指令：用預設的保留／丟棄指示，或讓 AI 讀當下的對話寫一份量身的指示，按 Enter 才執行。MIT 授權開源。

Claude Code Mods · TypeScript · userConfig · claude-code/testing · Plugin Marketplace

[GitHub →](https://github.com/Zinzan48/claude-mods)

## 問題

Claude Code 的長 session 有兩個地方特別花錢。第一個是 context，它會一路長大，等想起來要 compact 往往已經很大；就算想起來，也得自己打一長串指示，說明要保留什麼、丟掉什麼。

第二個是 prompt cache，休息超過一小時回來，cache 已經過期，送出的第一句話會把整段 context 重送一次。這兩件事都不會報錯，只看得到用量變高。

## 解法

操作都在 Claude Code 的介面裡完成。mod 在輸入框上方畫一條按鈕列，按 Compact 會產出 /compact 指令，連同預設的保留／丟棄指示一起填進輸入框；按「量身指令」則由 AI 讀當下這段對話，寫一份專屬的指示。指令產出後由使用者按 Enter 執行，送出前也能先改。

只填不送有一個實測踩到的原因：mod 自己呼叫 compact 不會經過 session.compact hook，狀態列拿不到 compact 後的大小。閒置攔截一樣只攔一次，原文放回輸入框。

子代理分級依據 2026 年 10 月的一次 A/B 測試(effort high，每題只跑一次)：定位和追流程兩題 Haiku 與 Sonnet 都全對、用量相近，Explore 就交給 Haiku；查文件那題 Haiku 漏了兩個欄位的確認，claude-code-guide 留在 Sonnet。預設值來自我自己的用法，9 個設定都能在 /config 改，介面也會依 language 設定切換繁中或英文。

## 成果

2026-10-10 開源在 GitHub，MIT 授權，目前是 v0.2.0。claude plugin validate 通過；20 個測試釘住提醒門檻、閒置攔截、compact 後放回草稿、子代理分級、effort 下限、設定與語言切換，提示列在終端機和 Desktop 兩種介面都測過。資料只留在本機的 plugin store(最多 200 筆事件紀錄)，不往外送；唯一會呼叫模型的是「量身指令」，它在使用者自己的 session 裡執行。

## 功能特色

- context 過 500k(之後每 +150k)，輸入框上方出現按鈕列
- 按 Compact，自動產出 /compact 指令與保留／丟棄指示
- 按「量身指令」，由 AI 讀當下對話寫一份 compact 指示
- 指令填進輸入框，送出前可以先改，按 Enter 才執行
- 用過瀏覽器工具時，指示會多一句丟掉 snapshot 和截圖
- 閒置 60 分鐘、context 至少 200k 時先攔一次，按鈕列多一顆 Clear
- 狀態列顯示 context 用量與最近 12 次讀數的走勢
- 子代理自動分級(haiku／sonnet／opus)，effort 下限 high

[← 回到作品集](https://www.zinzan.info/#projects)

[所有連結](https://links.zinzan.info/@zinzan) · [GitHub](https://github.com/Zinzan48)

© 2023–2026 Ruizhe Information Co., Ltd. (睿喆資訊有限公司) · Unified Business No.: 93796783 · Contact: [zinzan@zinzan.info](mailto:zinzan@zinzan.info)

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://www.zinzan.info/#website",
      "url": "https://www.zinzan.info/",
      "name": "阿Ray (Zinzan) | 造物者工程師",
      "inLanguage": "zh-Hant",
      "publisher": {
        "@id": "https://www.zinzan.info/#organization"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://www.zinzan.info/#organization",
      "name": "睿喆資訊有限公司",
      "alternateName": "Ruizhe Information Co., Ltd.",
      "legalName": "睿喆資訊有限公司",
      "taxID": "93796783",
      "foundingDate": "2023-06-26",
      "url": "https://www.zinzan.info/",
      "email": "zinzan@zinzan.info",
      "employee": {
        "@id": "https://www.zinzan.info/#person"
      }
    },
    {
      "@type": "Person",
      "@id": "https://www.zinzan.info/#person",
      "name": "阿Ray (Zinzan)",
      "alternateName": "Zinzan",
      "jobTitle": "Chief Technology Officer",
      "worksFor": {
        "@id": "https://www.zinzan.info/#organization"
      },
      "url": "https://www.zinzan.info/",
      "image": {
        "@type": "ImageObject",
        "url": "https://www.zinzan.info/profile-photo.png",
        "width": 400,
        "height": 400
      },
      "description": "阿Ray（Zinzan）是一位專注於打造實用工具與產品的軟體工程師。",
      "nationality": {
        "@type": "Country",
        "name": "TW"
      },
      "knowsAbout": [
        "Angular",
        "TypeScript",
        ".NET",
        "C#",
        "SQL Server",
        "Node.js",
        "Cloudflare Workers",
        "Web Development"
      ],
      "mainEntityOfPage": {
        "@id": "https://www.zinzan.info/#webpage"
      },
      "sameAs": [
        "https://github.com/Zinzan48",
        "https://links.zinzan.info/@zinzan"
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "CreativeWork",
      "@id": "https://www.zinzan.info/projects/context-budget/#creativeWork",
      "name": "Token 壓縮模組(Context Budget)",
      "alternateName": "在 Claude Code 介面產出 compact 指令",
      "description": "直接加在 Claude Code 介面上的 mod。context 過了門檻，輸入框上方會出現一排按鈕，按一下就產出 /compact 指令：用預設的保留／丟棄指示，或讓 AI 讀當下的對話寫一份量身的指示，按 Enter 才執行。MIT 授權開源。",
      "url": "https://www.zinzan.info/projects/context-budget/",
      "image": "https://www.zinzan.info/og-image.png",
      "inLanguage": "zh-Hant",
      "author": {
        "@id": "https://www.zinzan.info/#person"
      },
      "keywords": "Claude Code Mods, TypeScript, userConfig, claude-code/testing, Plugin Marketplace",
      "datePublished": "2026-10-10",
      "sameAs": [
        "https://github.com/Zinzan48/claude-mods"
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://www.zinzan.info/projects/context-budget/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "首頁",
          "item": "https://www.zinzan.info/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "作品集",
          "item": "https://www.zinzan.info/#projects"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Token 壓縮模組(Context Budget)",
          "item": "https://www.zinzan.info/projects/context-budget/"
        }
      ]
    }
  ]
}
```
