ClaudeMods
☰
ZH-TW
● 0 人在線上 · 瀏覽 0 次
贊助提交作品
GitHub 儲存庫 · 發布者 baselane-sh

auto-format

每當 Claude 寫入或編輯檔案時執行專案自己的格式化程式;只有專案有格式化設定時才執行,並提醒 Claude 重新讀取檔案。

baselane-sh@baselane-sh

baselane-sh/mods/tree/main/plugins/auto-format

已翻譯

關於這個 mod

Baselane 外掛

Claude Code 的小型外掛。挑選需要的外掛並組合使用。

Baselane 外掛是由函式勾點組成的 Claude Code 外掛。每個外掛只做一件事:在執行 rm -rf 前詢問的防護器、顯示工作階段費用的橫條、展示 git 狀態的側邊窗格、測試通過時播放的聲音、讓 Claude 用海盜口吻寫作。它們分成防護器、窗格、計量器、聲音與統計等系列,共有 100+ 個外掛。可以安裝一個,也可以疊加十個。它們彼此獨立。

快速開始(30 秒)

你需要 Claude Code 2.1.288 或更新版本,並啟用外掛。

claude plugin marketplace add baselane-sh/mods-catalog
claude plugin install guard-essentials@baselane-mods
claude plugin install receipt@baselane-mods

啟動 Claude Code。現在它會在執行危險命令前詢問,而 /receipt 會列印工作階段收據。

在 https://baselane-sh.github.io/mods-catalog/ 瀏覽所有外掛。畫廊(baselane-mods)會將每個外掛固定到經過審查的提交,因此新外掛進入這個儲存庫後不久就會出現在畫廊。關於更新、解除安裝、選項與入門套件,請閱讀 docs/INSTALL.md。

這個儲存庫也有一個追蹤 main 的開發市集 baselane-mods-dev。它只用來試用尚未發布的變更:

claude plugin marketplace add baselane-sh/mods
claude plugin install <name>@baselane-mods-dev

每個外掛都會使用 git 標籤 <name>--v<version> 發布。

套件如何運作

大多數外掛只有一條規則。套件是同一系列中包含多條規則的一個外掛。例如,guard-essentials 包含多個防護器,band-pack 把多個計量器放進同一條橫條。

  • 想用一個命令安裝整套規則時,安裝套件。
  • 只想要部分規則時,安裝單一外掛。
  • 安裝套件或其中的單一外掛,不要兩者都安裝。每個外掛都有自己的引擎副本,因此同一條規則出現在兩個已安裝的外掛中時會執行兩次。例如,同時安裝 guard-pack 和 infra-guard 時,terraform destroy 檢查會執行兩次,你會看到兩個問題。
  • 不同系列的外掛可以無衝突地組合。guard-essentials、cost-meter 與 git-pane 很適合一起使用。

下方的目錄會用 "pack" 標示每個套件。

安全性

  • 防護器會詢問,不會直接封鎖。 防護器會停止危險命令並先詢問你。由你決定。如果防護器檢查失敗,它會詢問你;不會在沒有提問的情況下放行呼叫。
  • 你的資料留在本機。 除非你自行設定目的地,否則外掛不會送出資料,例如為 ntfy-notify 或 long-run-notify 設定 ntfy 主題,或為 slack-notify 或 discord-notify 設定 webhook URL。設定目的地後,這些外掛只會送出一則簡短訊息:包含專案資料夾名稱的通用 "needs input" 文字,或包含專案名稱與秒數的文字。
  • 一個外掛可以發出模型呼叫,預設為關閉。 sports-narrator 會在使用過工具的回合結束時發出一次小型模型呼叫。它會送出工具名稱、檔案名稱與每條 shell 命令的前兩個詞,絕不會送出檔案內容。這會消耗 token,因此必須手動開啟。
  • 顯示外掛不會改變 Claude 讀取的內容。 "Display and render" 中的外掛只會改變螢幕上列與回覆的顯示方式。其他系列可能會為 Claude 加入文字:提示樣式會改變 Claude 的寫法,secret-output-guard 會告訴 Claude 不要重複認證資訊,auto-format 與 auto-lint 會告訴 Claude 再讀一次檔案。
  • 統計資訊留在本機。 連續紀錄、成就與 /wrapped 都會讀取外掛保存在本機的紀錄。
  • 會寫入檔案的外掛會說明。 /handoff 會寫入 .claude/handoff.md,從不覆寫它。session-journal 會附加到 ~/.claude/journal.log。auto-format 與 auto-lint 會執行專案自己的格式化程式或程式碼檢查工具修正,這可能會重寫檔案。描述會說明它們寫入的內容。

需求

  • Claude Code 2.1.288 或更新版本,並啟用外掛(函式勾點 API 目前處於搶先體驗階段)。閱讀 Claude Code mods docs。
  • 部分外掛使用本機工具:git 用於 git 窗格、git 橫條與大多數命令;lsof 用於 port-watch(macOS 與大多數 Linux)。
  • 從原始碼建置需要 Node.js。

從原始碼建置與檢查

plugins/ 與 .claude-plugin/marketplace.json 是產生檔案。不要手動編輯。

node scripts/build.mjs          # 為目錄中的每個項目建置一個外掛資料夾
bash scripts/check.sh           # 重新建置,接著驗證、測試並進行每個外掛的型別檢查
bash scripts/check.sh git-pane  # 只檢查你指定的外掛
node scripts/gen-docs.mjs       # 重寫這份 README 中的目錄
node --test 'scripts/*.test.mjs'  # 測試文件產生器

當 check.sh 列印 check: 0 failure(s) 時,變更就完成了。請閱讀 AGENTS.md 了解版面與 API 事實。

貢獻

要新增外掛:

  1. 在引擎中加入一條規則:engines/<engine>/hooks/rules/<id>.ts,並在 engines/<engine>/tests/<id>.test.ts 中加入測試。
  2. 在 catalog/<name>.json 中加入目錄項目:{ "name", "description", "rules": ["<id>"] }。如果外掛有斜線命令,就把它放進 description(例如 "Open it with /git")。目錄表格會從這裡讀取描述。
  3. 執行 node scripts/build.mjs,接著執行 bash scripts/check.sh <mod>,再執行 node scripts/gen-docs.mjs。

新的引擎需要在 scripts/gen-docs.mjs 中加入一個系列。保持檔案小巧,不要就地修改輸入,也不要使用 em-dash 字元。

授權條款

MIT。Copyright (c) 2026 Baselane, LLC。請閱讀 LICENSE。

目錄

<!-- catalog:start -->

130 個外掛,分成 10 個系列。

"needs setup" 表示該外掛有可用 claude plugin configure <mod> 設定的選項。描述會告訴你在設定前是否能運作。"pack" 表示一個包含多條規則的外掛。

防護器(25)

在危險或有風險的命令執行前詢問你。

| 外掛 | 功能 | 命令 | 備註 | | --- | --- | --- | --- | | secret-filename-guard | 在 Bash 命令接觸看似機密的檔案(.env、私鑰、認證資訊)前詢問。 | | | | secret-guard | 在寫入、編輯或執行現行 API 金鑰、權杖或私鑰前詢問。 | | | | env-exfil-guard | 在命令列印環境、回顯機密變數或把本機資料送往遠端主機前詢問。 | | | | infra-guard | 在執行 terraform destroy、kubectl delete、force-push、DROP TABLE 或 rm -rf 前詢問。 | | | | secret-commit-guard | 在 git commit 會記錄認證資訊或名稱像機密的檔案前詢問。 | | | | protect-main | 位於 main 或 master 時,在 commit、push 或 merge 前詢問。 | | | | gitignore-check | 看似機密的檔案未被忽略或已在追蹤中時,在 git add 或 commit 前詢問。 | | | | secret-output-guard | 告訴 Claude 不要重複出現在命令或檔案輸出中的認證資訊,並指出應輪替的來源。 | | | | curl-pipe-guard | 在下載內容經由管線傳給 shell 或直譯器前詢問(curl | sh、wget -O- | bash、bash <(curl ...))。 | | | | sudo-guard | 在 sudo、doas 或 su -c 以提升的權限執行命令前詢問。 | | | | no-verify-guard | 在略過 git 勾點前詢問(--no-verify、commit -n、HUSKY=0、core.hooksPath=/dev/null)。 | | | | lockfile-guard | 在手動寫入或編輯鎖定檔前詢問;應由套件管理器修改。 | | | | package-guard | 在安裝新相依套件前詢問(npm、pnpm、yarn、bun、pip、uv、poetry、cargo、go、gem),並列出套件名稱。 | | | | prod-db-guard | 在命令中執行破壞性 SQL 前詢問:TRUNCATE、DELETE 或不含 WHERE 的 UPDATE。 | | | | path-jail | 在 Write、Edit 或 NotebookEdit 修改工作目錄外的檔案前,依實際路徑詢問。 | | | | docker-guard | 在會刪除資料的 Docker 命令前詢問:system、volume 與 image prune、rm -f、volume rm 以及 compose down -v。 | | | | k8s-guard | 在 kubectl apply 或 replace 使用 --force、kubectl drain、helm uninstall,以及帶全域選項的 kubectl delete 前詢問(一般 kubectl delete 屬於 infra-guard)。 | | | | migration-guard | 在 Write 或 Edit 修改已存在的移轉檔案前詢問;新的移轉檔案會直接通過。 | | | | ci-config-guard | 在 Write 或 Edit 修改 CI 設定前詢問:.github/workflows、.gitlab-ci.yml 或 .circleci/config.yml。 | | | | chmod-guard | 在 chmod 讓檔案對所有人可寫(777、a+w、o+w),或 chmod、chown 對寬泛路徑(/、系統資料夾、家目錄)遞迴執行前詢問。 | | | | git-history-guard | 在會丟棄工作或重寫歷史的 git 命令前詢問:reset --hard、clean、rebase、filter-branch、filter-repo、push --delete、branch -D 與 stash clear。 | | | | big-file-guard | 在 Write 建立超過 1 MB 的內容,或 git add 指定超過 5 MB 的檔案前詢問。 | | | | guard-essentials | 只在破壞性基礎設施、git 與 SQL、把下載內容透過管線傳給 shell、sudo、洩漏或提交機密等危險命令前詢問。適合日常工作的安靜選擇。 | | pack | | guard-pack | 將 Baselane 的所有防護器放在一個外掛中。 | | pack | | guard-devops | 在危險的 DevOps 命令前詢問:破壞性 Docker、Kubernetes 與 Helm 呼叫、CI 設定編輯、寬泛的 chmod 和 chown,以及會丟失工作的 git 命令。一般 kubectl delete 仍需搭配 infra-guard。 | | pack |

提醒(17)

在回合結束且有事項需要注意時顯示一則安靜的 toast。

| 外掛 | 功能 | 命令 | 備註 | | --- | --- | --- | --- | | test-reminder | 原始碼檔案變更後沒有執行測試命令時,在回合結束提醒。 | | | | ctx-nudge | 當內容視窗超過 75 percent 時,提醒執行 /clear 或 /compact。 | | | | clippy | 每個工作階段每個觸發條件只顯示一次有幫助的 toast:編輯移轉資料夾、Dockerfile 或 GitHub workflow,或執行 rm -rf 時觸發。每回合最多一則 toast。 | | | | sports-narrator | 在回合結束顯示一行體育實況解說。預設關閉:每個使用工具的回合呼叫一次 haiku。開啟對應選項後才會啟用。會送出工具名稱、檔案名稱與每條命令的前兩個詞。 | | needs setup | | commit-nudge | 自上次 git commit 後編輯檔案達到 8 個或更多時,在回合結束建議提交。每批編輯只顯示一則 toast;成功的 git commit 會重設計數。 | | | | todo-nudge | 在回合結束顯示一則 toast,列出本回合新增的 TODO、FIXME 與 HACK 行數;沒有新增時保持安靜。 | | | | break-nudge | 工作階段持續 90 分鐘時建議短暫休息,之後每隔 90 分鐘再次提醒。 | | | | docs-nudge | 當編輯新增匯出程式碼(.ts 或 .js 中的 export 陳述式,或 public 函式簽章),但本次工作階段沒有編輯 README 或 docs 檔案時,在回合結束顯示一則 toast。 | | | | debug-print-nudge | 在回合結束顯示一則 toast,列出本回合新增的 console.log、print(、debugger 與 dbg! 行數。只計算程式碼檔案。 | | | | typecheck-nudge | 當編輯 .ts 或 .tsx 檔案,且自上次編輯後沒有執行型別檢查(tsc、vue-tsc、typecheck 腳本或 build)時,在回合結束顯示一則 toast。 | | | | lockfile-nudge | 當 package.json、pyproject.toml、Cargo.toml 或 go.mod 中的相依套件變更,且對應鎖定檔未編輯,也沒有執行安裝命令時,在回合結束顯示一則 toast。 | | | | big-diff-nudge | 自上次 git commit 後新增或刪除超過 500 行時,建議拆分變更。成功的 commit 會重設計數。 | | | | migration-nudge | 當結構描述檔案變更(schema.prisma、models.py、schema/ 下的 SQL、drizzle 結構描述),且本次工作階段沒有建立移轉檔案時,在回合結束顯示一則 toast。 | | | | env-example-nudge | 當編輯新增環境變數參照(process.env、os.environ、os.getenv、Deno.env),但 .env.example 沒列出該變數時,在回合結束顯示一則 toast。只讀取 .env.example 中的名稱,從不讀取 .env。 | | | | nudge-pack | 將 Baselane 的所有回合結束提醒放在一個外掛中。 | | pack | | `f

安裝

請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。

claude plugin marketplace add baselane-sh/mods
claude plugin install auto-format
原文 / README

Baselane mods

Small mods for Claude Code. Pick the ones you want and combine them.

Baselane mods are Claude Code plugins made of function hooks. Each mod does one thing: a guard that asks before rm -rf, a band with the session cost, a side pane with your git status, a sound when tests pass, a pirate voice for Claude's prose. There are 100+ mods in families such as guards, panes, meters, sounds and stats. Install one, or stack ten. They do not need each other.

Quick start (30 seconds)

You need Claude Code 2.1.288 or later, with mods.

claude plugin marketplace add baselane-sh/mods-catalog
claude plugin install guard-essentials@baselane-mods
claude plugin install receipt@baselane-mods

Start Claude Code. Now it asks before harsh commands, and /receipt prints a receipt of the session.

Browse every mod at https://baselane-sh.github.io/mods-catalog/. The gallery (baselane-mods) pins each mod to a reviewed commit, so a new mod reaches the gallery a short time after it reaches this repo. For update, uninstall, options and starter sets, read docs/INSTALL.md.

This repo also has a development marketplace, baselane-mods-dev, that tracks main. Use it only to try changes that are not released yet:

claude plugin marketplace add baselane-sh/mods
claude plugin install <name>@baselane-mods-dev

Each mod is released with a git tag <name>--v<version>.

How packs work

Most mods have one rule. A pack is one mod with several rules from the same family. For example, guard-essentials holds several guards and band-pack puts several meters in one band.

  • Install a pack when you want the whole set with one command.
  • Install single mods when you want only some of the rules.
  • Install a pack or its single mods, not both. Each mod has its own copy of its engine, so a rule in two installed mods runs two times. For example, with guard-pack and infra-guard installed, the terraform destroy check runs two times, and you can see two questions.
  • Mods from different families combine with no conflict. guard-essentials, cost-meter and git-pane work well together.

The catalog below marks each pack with "pack".

Safety

  • Guards ask. They do not block. A guard stops a harsh command and asks you first. You decide. If a guard check fails, it asks you. It does not let the call through without a question.
  • Your data stays on your machine. No mod sends data out unless you set a destination yourself, such as an ntfy topic for ntfy-notify or long-run-notify, or a webhook URL for slack-notify or discord-notify. With a destination set, those mods send a short message only: a generic "needs input" text with the project folder name, or the project name and the seconds.
  • One mod can make a model call, and it is off by default. sports-narrator makes one small model call at the end of a turn that used tools. It sends tool names, file names and the first two words of each shell command, never file contents. It spends tokens, so you must turn it on.
  • Display mods do not change what Claude reads. The mods in "Display and render" change only how rows and replies look on your screen. Other families can add text for Claude: prompt styles change how Claude writes, secret-output-guard tells Claude not to repeat a credential, and auto-format and auto-lint tell Claude to read a file again.
  • Stats stay local. Streaks, achievements and /wrapped read records that the mods keep on your machine.
  • Mods that write files say so. /handoff writes .claude/handoff.md and never overwrites it. session-journal appends to ~/.claude/journal.log. auto-format and auto-lint run your project's own formatter or linter fix, which can rewrite files. The descriptions say what each mod writes.

Requirements

  • Claude Code 2.1.288 or later, with mods (the plugin function-hook API, in early access). Read the Claude Code mods docs.
  • Some mods use local tools: git for the git pane, the git band and most commands, and lsof for port-watch (macOS and most Linux).
  • To build from source: Node.js.

Build and check from source

plugins/ and .claude-plugin/marketplace.json are generated. Do not edit them by hand.

node scripts/build.mjs          # build one plugin folder per catalog entry
bash scripts/check.sh           # rebuild, then validate, test and type-check every mod
bash scripts/check.sh git-pane  # check only the mods you name
node scripts/gen-docs.mjs       # rewrite the catalog in this README
node --test 'scripts/*.test.mjs'  # test the docs generator

A change is done when check.sh prints check: 0 failure(s). Read AGENTS.md for the layout and the API facts.

Contributing

To add a mod:

  1. Add a rule to an engine: engines/<engine>/hooks/rules/<id>.ts, with a test in engines/<engine>/tests/<id>.test.ts.
  2. Add a catalog entry in catalog/<name>.json: { "name", "description", "rules": ["<id>"] }. Give the description the slash command, if the mod has one (for example "Open it with /git"). The catalog table reads it from there.
  3. Run node scripts/build.mjs, then bash scripts/check.sh <mod>, then node scripts/gen-docs.mjs.

A new engine needs a family in scripts/gen-docs.mjs. Keep files small, do not change inputs in place, and do not use the em-dash character.

Licence

MIT. Copyright (c) 2026 Baselane, LLC. Read LICENSE.

Catalog

<!-- catalog:start -->

130 mods in 10 families.

"needs setup" means the mod has options that you set with claude plugin configure <mod>. Its description tells you if it works before you set them. "pack" means one mod with several rules.

Guards (25)

Ask you before a harsh or risky command runs.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | secret-filename-guard | Asks before a Bash command touches a secret-looking file (.env, private keys, credentials). | | | | secret-guard | Asks before a live API key, token or private key is written, edited or run. | | | | env-exfil-guard | Asks before a command prints your environment, echoes a secret variable or sends local data to a remote host. | | | | infra-guard | Asks before terraform destroy, kubectl delete, force-push, DROP TABLE or rm -rf. | | | | secret-commit-guard | Asks before a git commit that would record a credential or a secret-named file. | | | | protect-main | Asks before a commit, push or merge while you are on main or master. | | | | gitignore-check | Asks before git add or commit when secret-looking files are not ignored or are already tracked. | | | | secret-output-guard | Tells Claude not to repeat a credential that showed up in command or file output, and names the source to rotate. | | | | curl-pipe-guard | Asks before a download is piped into a shell or interpreter (curl | sh, wget -O- | bash, bash <(curl ...)). | | | | sudo-guard | Asks before sudo, doas or su -c runs a command with elevated rights. | | | | no-verify-guard | Asks before git hooks are skipped (--no-verify, commit -n, HUSKY=0, core.hooksPath=/dev/null). | | | | lockfile-guard | Asks before a lockfile is written or edited by hand; the package manager should change it. | | | | package-guard | Asks before a new dependency is installed (npm, pnpm, yarn, bun, pip, uv, poetry, cargo, go, gem) and names the packages. | | | | prod-db-guard | Asks before destructive SQL runs in a command: TRUNCATE, DELETE or UPDATE with no WHERE. | | | | path-jail | Asks before Write, Edit or NotebookEdit changes a file outside the working directory, by real path. | | | | docker-guard | Asks before Docker commands that delete data: system, volume or image prune, rm -f, volume rm and compose down -v. | | | | k8s-guard | Asks before kubectl apply or replace with --force, kubectl drain, helm uninstall, and kubectl delete behind global flags (plain kubectl delete is infra-guard's). | | | | migration-guard | Asks before Write or Edit changes a migration that already exists; new migration files pass. | | | | ci-config-guard | Asks before Write or Edit changes CI config: .github/workflows, .gitlab-ci.yml or .circleci/config.yml. | | | | chmod-guard | Asks before chmod makes files world-writable (777, a+w, o+w) or chmod or chown runs recursively on a broad path (/, a system folder, a home folder). | | | | git-history-guard | Asks before git commands that throw away work or rewrite history: reset --hard, clean, rebase, filter-branch, filter-repo, push --delete, branch -D and stash clear. | | | | big-file-guard | Asks before a Write creates content over 1 MB, or git add names a file over 5 MB. | | | | guard-essentials | Asks only before harsh or disaster commands: destructive infra, git and SQL, piping downloads into a shell, sudo, leaking or committing secrets. The quiet choice for daily work. | | pack | | guard-pack | Every Baselane guard in one mod. | | pack | | guard-devops | Asks before harsh DevOps commands: destructive Docker, Kubernetes and Helm calls, CI config edits, broad chmod and chown, and git commands that lose work. Add infra-guard for plain kubectl delete. | | pack |

Reminders (17)

One quiet toast at turn end when something needs your attention.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | test-reminder | Reminds you at turn end when source files changed but no test command ran since. | | | | ctx-nudge | Reminds you to /clear or /compact when the context window passes 75 percent. | | | | clippy | One helpful toast per session per trigger, in the classic paperclip voice: when you edit a migrations folder, a Dockerfile or a GitHub workflow, or run rm -rf. At most one toast per turn. | | | | sports-narrator | One line of sports play-by-play at turn end. OFF by default: one haiku call per turn with tools. Turn on the enabled option. Sends tool names, file names and the first two words of each command. | | needs setup | | commit-nudge | Suggests a commit at turn end after 8 or more file edits since the last git commit. One toast per batch of edits; a successful git commit resets the count. | | | | todo-nudge | At turn end, one toast with the count of TODO, FIXME and HACK lines your edits added this turn. Quiet when none were added. | | | | break-nudge | Suggests a short break once the session has run 90 minutes, and again every 90 minutes after that. | | | | docs-nudge | At turn end, one toast when edits added exported code (an export statement in .ts or .js, or a public function signature) and no README or docs file was edited this session. | | | | debug-print-nudge | At turn end, one toast naming the count of console.log, print(, debugger and dbg! lines your edits added this turn. Only code files count. | | | | typecheck-nudge | At turn end, one toast when .ts or .tsx files were edited and no type check (tsc, vue-tsc, a typecheck script or a build) ran since the last edit. | | | | lockfile-nudge | At turn end, one toast when dependencies in package.json, pyproject.toml, Cargo.toml or go.mod changed and neither the matching lockfile was edited nor an install command ran. | | | | big-diff-nudge | Suggests splitting the change once your edits added or removed more than 500 lines since the last git commit. A successful commit resets the count. | | | | migration-nudge | At turn end, one toast when a schema file changed (schema.prisma, models.py, SQL under schema/, a drizzle schema) and no migration file was created this session. | | | | env-example-nudge | At turn end, one toast when edits add a reference to an environment variable (process.env, os.environ, os.getenv, Deno.env) that .env.example does not list. Reads only .env.example names, never .env. | | | | nudge-pack | Every Baselane turn-end reminder in one mod. | | pack | | focus-pack | Three quiet nudges in one mod: commit after 8 edits, TODO/FIXME/HACK lines added, and debug prints added. | | pack | | quality-pack | Three quiet nudges in one mod: type check after TypeScript edits, lockfile after dependency edits, and a split suggestion past 500 changed lines. | | pack |

Commands (18)

Slash commands that print a result and, where it helps, copy it.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | receipt | Adds /receipt: a shareable receipt of the session (tools, files, commands, blocks, context, cost), printed and copied. | /receipt | | | standup | Adds /standup: Yesterday, Today and Blockers from your git log and this session's record, printed and copied. | /standup | | | changelog | Adds /changelog: commits since the last tag (or the last 30), grouped by conventional-commit type, as Markdown. | /changelog | | | pr-description | Adds /pr-description: title, summary, diff totals and a test plan stub for the current branch against main or master. | /pr-description | | | handoff | Adds /handoff: writes a session summary to .claude/handoff.md (never overwriting) and answers with the path. | /handoff | | | todos | Adds /todos: TODO, FIXME and HACK lines in tracked files, grouped by file (50 lines at most). Read-only. | /todos | | | loc | Adds /loc: lines of tracked text files by language, sorted, with a total. Skips lockfiles and binaries. Read-only. | /loc | | | hotspots | Adds /hotspots: the 10 files changed most often in the last 90 days, with change counts. Read-only. | /hotspots | | | commit-msg | Adds /commit-msg: a Conventional Commits message proposed from the staged diff. Heuristic, no model call, writes nothing. | /commit-msg | | | branches | Adds /branches: local branches merged into the default branch or idle for 30 days, as a cleanup list. Never deletes. | /branches | | | tree | Adds /tree: tracked files as a tree, 2 levels deep, folders with file counts (80 lines at most). Read-only. | /tree | | | deps | Adds /deps: direct dependencies with versions from package.json, pyproject.toml, requirements.txt, go.mod and Cargo.toml at the repo root. No network, no audit. Read-only. | /deps | | | authors | Adds /authors: the top 15 contributors by commit count with their last commit date. Names only, never email addresses. Read-only. | /authors | | | scripts | Adds /scripts: runnable tasks from package.json scripts, Makefile targets, justfile recipes and pyproject scripts. Read-only. | /scripts | | | env-check | Adds /env-check: variable names in .env.example against .env, listing missing and extra names. Reads names only, never a value. Read-only. | /env-check | | | command-pack | Every slash command in one mod: /receipt, /standup, /changelog, /pr-description and /handoff. | /receipt, /standup, /changelog, /pr-description, /handoff | pack | | repo-pack | Five read-only repo commands in one mod: /todos, /loc, /hotspots, /commit-msg and /branches. | /todos, /loc, /hotspots, /commit-msg, /branches | pack | | explore-pack | Five read-only repo exploration commands in one mod: /tree, /deps, /authors, /scripts and /env-check. | /tree, /deps, /authors, /scripts, /env-check | pack |

Band meters (13)

A one-line band above the prompt.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | cost-meter | A band above the prompt with the session cost so far and what the last turn cost. | | | | latte-meter | A band above the prompt that counts the session cost in lattes. Set the latte price in the plugin options. | | needs setup | | context-meter | A band above the prompt with a 10 cell bar of the context window used, yellow from 60 percent, red from 80. | | | | daily-spend | A band above the prompt with today's total cost across all your sessions. | | | | pomodoro | A band above the prompt with a 25/5 focus timer (focus 18:42, break 03:10). Start and stop it with /pomodoro; a toast marks each switch. | /pomodoro | | | mood-ring | A band above the prompt with a colored dot and a word for the error and block rate of your last 20 tool calls: calm (green) under 10 percent, tense (yellow) under 30, stormy (red) from 30. | | | | session-clock | A band above the prompt with the wall clock and how long the session has run (14:05 · 1h 12m). | | | | branch-band | A band above the prompt with the git branch and the count of changed files, refreshed after each Bash call and file edit. | | | | tool-counter | A band above the prompt with your tool calls this session, the top three by tool (Bash 41 · Edit 18 · Read 12). | | | | error-meter | A band above the prompt with how many tool calls failed this session (an error or a deny) and which tool failed last. Red from the first failure. | | | | model-badge | A band above the prompt with the current model name and the context percent (opus-4-1 · 62%). | | | | band-pack | Every Baselane band meter in one row above the prompt: session cost, lattes, context bar, today's spend, the focus timer and the mood ring. | /pomodoro | needs setup, pack | | dev-band | The developer band in one row above the prompt: git branch and changed files, wall clock and session age, tool counts, and failed tool calls. | | pack |

Panes (6)

Live side panes that you open with a slash command.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | agent-firewall | A live pane of every tool call the agent makes: green when it ran, red when it was blocked, with counters. Open it with /firewall. | /firewall | | | git-pane | A live side pane with the branch, ahead and behind its upstream, changed files (staged and unstaged) and the last 5 commits. It refreshes after git commands and file edits. Open it with /git. | /git | | | test-pane | A live side pane with the last test run (vitest, jest, pytest, go test, cargo test, bun test, claude plugin test): runner, pass, fail and skip counts, duration and first failures. Open it with /tests. | /tests | | | port-watch | A live side pane of the local TCP ports that listen, with the process name and pid, refreshed every 10 seconds while open. Reads lsof (macOS, most Linux). Open it with /ports. | /ports | | | todo-pane | A live side pane of the TODO, FIXME and HACK lines in tracked files (git grep), grouped by file and capped at 30. It refreshes after file edits while open. Open it with /todo-pane. | /todo-pane | | | cost-pane | A live side pane with the session cost, the cost of each of the last 10 turns as a bar, and the average per turn. Open it with /cost-pane. | /cost-pane | |

Prompt styles (20)

Change how Claude writes. Code and commands stay exact.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | terse-mode | Short answers: no preamble, no recap. | | | | plain-english | Writes in ASD-STE-100 Simplified Technical English: short sentences, active voice, simple words. | | | | junior-mode | Explains each step and why, and defines jargon once, for a learner. | | | | reply-language | Answers in the language you set (English by default). Code, identifiers and commands stay as they are. | | needs setup | | no-sycophancy | No flattery or filler. Disagreement is stated plainly, with the reason. | | | | no-em-dash | Never writes the em-dash character. Uses a comma, colon, period or parentheses. | | | | pirate-mode | Talks like a pirate in prose, never inside code, commands or file contents. | | | | haiku-commits | Commit messages get a normal conventional-commit first line, then a 5-7-5 haiku about the change in the body. | | | | conventional-commits | Commit messages follow Conventional Commits: type(scope): subject, imperative, under 72 characters. | | | | tdd-mode | Writes a failing test first, watches it fail, then implements. | | | | ste-mode | Replies in ASD-STE100 Simplified Technical English: approved words, short sentences, one instruction each, active voice. | | | | security-mode | Checks each change for injection, secrets, authorization and unsafe input, and states the risks it checked. | | | | yoda-mode | Speaks like Yoda in prose. Code, commands and commit messages stay normal. | | | | shakespeare-mode | Prose in Early Modern English flair. Code, commands, commit messages and error text stay exact. | | | | caveman-mode | Prose in short caveman speech ("Fix bug. Test pass."), still accurate. Code and commands stay exact. | | | | eli5-mode | Explains like the reader is new: analogies first, no jargon without a one-line definition. | | | | code-only | Replies with the code or command first and at most two short sentences of prose, unless asked to explain. | | | | gitmoji-commits | Commit messages start with the matching gitmoji (✨ feat, 🐛 fix). Composes with conventional-commits: emoji goes before the type. | | | | team-pack | Team habits in one install: Conventional Commits, test-first work and a security check on every change. | | pack | | fun-pack | Fun habits in one install: caveman prose and gitmoji commit messages. They compose: caveman never touches commit messages. | | pack |

Sounds (5)

Short sounds for passing tests, failing tests, blocked calls and turn ends.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | sounds-retro | 8-bit sounds: a coin when tests pass, a buzz when they fail, a chime when a turn ends. | | needs setup | | sounds-office | Quiet office sounds: a soft click when tests pass, a low thud when they fail, paper when a call is blocked. | | needs setup | | sounds-scifi | Sci-fi console sounds: a beep when tests pass, an alarm when they fail, a warp when a turn ends. | | needs setup | | sounds-nature | Soft nature sounds: a bird chirp when tests pass, a plunk into water when they fail, a gust of wind when a call is blocked, a water drop when a turn ends. | | needs setup | | sounds-minimal | Very short, quiet clicks and ticks for a subtle signal: a tick when tests pass, two low ticks when they fail, a click when a call is blocked, a soft tick when a turn ends. | | needs setup |

Stats (6)

Local records of how you use Claude Code.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | wrapped | Adds /wrapped: a screenshot-ready Claude Code Wrapped for the last 7 days (or /wrapped month for 30), printed and copied. | /wrapped | | | streaks | Counts consecutive days you used Claude Code: a Day N streak toast at session start, and /streak to ask. | /streak | | | achievements | Unlocks eight badges once each (first session, first green test run, 100 and 1,000 tool calls, 7-day streak, 10 blocked calls, a 2 hour session, night owl), with a toast and /achievements. | /achievements | | | night-owl | Records the hour of each prompt across sessions and adds /hours: a 24-hour histogram of when you work, naming your peak hour. | /hours | | | personal-bests | Tracks your records across sessions (longest session, most tool calls in a session, most files edited in a day, cheapest session over 30 minutes), toasts a new one, and lists them with /bests. | /bests | | | stats-pack | Every Baselane stats mod in one: /wrapped, streaks and achievements on one shared daily rollup. | /wrapped, /streak, /achievements | pack |

Display and render (9)

Change how rows and replies look on your screen. What Claude reads does not change.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | diff-stats | Edit and Write rows show a compact +12 -3 bar beside the file name: green for lines added, red for lines removed, up to 20 cells. | | | | file-links | In Claude's replies, path/to/file.ts:42 references to files in your project become links. Click one to put @path/to/file.ts in the prompt. | | | | time-badge | Tool rows show how long the call ran, for example 2.4s, when it took over one second. The time is the tool's own run time, without permission prompts. | | | | exit-badge | A failed Bash row shows a small red badge with its exit code, for example exit 2. | | | | json-pretty | Bash output that is one long line of JSON is drawn pretty-printed, folded after 30 lines. Display only: Claude reads the output as it was. | | | | url-links | https links (and http://localhost) in tool output are listed as clickable links under the result, up to five. Display only: Claude reads the output as it was. | | | | size-badge | Read and Write rows show how much was read or written: the line count, for example 312 lines, or the file size for images and PDFs. | | | | render-pack | Every rendering mod in one: diff-stats bars on Edit and Write rows, and file-links in Claude's replies. | | pack | | render-plus | Three row badges in one: time-badge, exit-badge and size-badge. | | pack |

Lifecycle and notify (11)

Act on session events: format files, push a notification, keep a journal.

| Mod | What it does | Command | Notes | | --- | --- | --- | --- | | auto-format | Runs your project's own formatter on each file Claude writes or edits, only when the project has a formatter config, and tells Claude to re-read the file. | | | | long-run-notify | Sends a phone push through ntfy.sh when a Bash command ran longer than a threshold (60 seconds by default). Sends the project name and the seconds only. Does nothing until you set an ntfy topic. | | needs setup | | ntfy-notify | Sends a phone push through ntfy.sh when Claude Code needs your input. The message is generic. Does nothing until you set an ntfy topic. | | needs setup | | session-journal | Appends one line per session end (time, directory, reason) to ~/.claude/journal.log. | | | | desktop-notify | Shows a desktop notification when Claude Code needs your input: osascript on macOS, notify-send elsewhere when it is installed. The text is the project name and a short status only. | | | | slack-notify | Posts to a Slack incoming webhook when Claude Code needs your input. Sends the project name and a short status only. Does nothing until you set a webhook URL. | | needs setup | | discord-notify | Posts to a Discord webhook when Claude Code needs your input. Sends the project name and a short status only. Does nothing until you set a webhook URL. | | needs setup | | say-done | On macOS, says "Claude is done" when a turn ends after more than 30 seconds. Does nothing on other platforms. | | | | auto-lint | Runs your project's own linter fix (eslint, ruff or golangci-lint) on each file Claude writes or edits, only when the project has that linter's config, and tells Claude what is left. | | | | lifecycle-pack | Every Baselane lifecycle mod in one: auto-format, long-run and input pushes, and the session journal. | | needs setup, pack | | notify-pack | Local alerts in one: a desktop notification when Claude Code needs your input, and a spoken line on macOS when a long turn ends. | | pack |

<!-- catalog:end -->

更多類似作品