out of morbid curiosity & the fact that i'm an idiot. there's a pull request for a windows version of this. i noticed it used claude because of course. as someone who has never vibe coded before, I goofed around w/ copilot. got it running on my pc w/ my mod, added dlss. vid below
Community posts
Public posts on X about Claude Code mods. 2,784 collected.
完全版 Claude Mods 入門 | Claude Codeを自由にカスタマイズする https://zenn.dev/nogu66/articles/claude-mods-complete-guide 【Modはサンドボックス化されていません】 こわっ 丸ごとAIに作らしたら、なんか混ぜそう
完全版 Claude Mods 入門 | Claude Codeを自由にカスタマイズする https://ift.tt/H8ydPlW
【AI 情报日报 10-05】 过去 24 小时没有新的一线旗舰模型发布,主线转到怎么把已有模型安全地接进真实系统。社区热度最高的是本地跑大模型,工程侧最有复用价值的是企业级 MCP 网关、文档型记忆,以及给 Agent 账单加硬上限。 最值得看的几件事:其一 Qwen 3.8 Flash Next 被社区项目 Strata 放到单张 RTX 4090 上,报出约 100 tok/s,HN 约 553 分,数字尚待独立复现;其二 Uber 公开 MCP Gateway 设计,托管 800 多个 MCP Server、5000 多个工具,新工具一律默认禁用、owner 审核后启用,并按需增量发现;其三 Kevin Liao 主张用可提交、可审计的文档替代向量记忆,开工先读、收工必写;其四 Simon Willison 呼吁按量计费服务默认硬预算上限,避免 Agent 通宵烧钱;其五 Claude Code Mods 进入实操阶段,权限模型同步收紧,Mod 不能压过显式 deny 规则;其六 OpenAI 发布 GPT-6 实践指南,Anthropic 推出 1 亿美元的 Frontier Academy,培养部署工程师。 https://docs.google.com/document/d/1ixo7qh3C5LBNwyfdUgqxMgv_0Cq44IXSsYFCWaEIoJw/edit
Watch "Claude Mods - The Biggest Claude Code Upgrade!" on YouTube #hooks #skills #ui #footer #decisions #permussions #plugins #features #agents #model #jev #cowork #settings https://youtu.be/XaYubuLtW8M?is=iNDfx54Cc1fj25yO
Claude Codeの質問に「理由と選択肢の影響」を添えて読む、qa-guideの導入手順です。 長い作業の途中で、何を聞かれているのか分からなくなる人へ。 作者のREADMEとClaude公式の導入文書に基づく、ターミナル版向けガイドです。今回はインストール・動作は未実測。 ① 対応環境を確認 作者の要件はClaude Code 2.1.286以降。qa-guideは第三者製プラグインで、Claude標準機能ではありません。利用するAPIはearly accessのため、更新で動かなくなる可能性があります。 ② Claude Codeの中で、順に入力 /plugin marketplace add aieo-product/claude_qamods /plugin install qa-guide@claude-qamods 詳細画面で追加内容を読み、導入範囲を選びます。自分の作業フォルダだけで試すならlocal scope。その後は表示される有効化の案内に従います。 ③ ガイドを開く /qa-guide 作者の説明では、質問時に「今の指示の概要/質問の理由/各選択肢の影響/おすすめ」を横に表示します。自動で開く条件はターミナル幅144列以上。狭い場合も上のコマンドで開けます。 ④ 解説を読み、元の質問ダイアログで回答 おすすめは判断材料であって正解保証ではありません。自分の目的と影響を見て選びます。 コマンドが認識されなければ、/pluginでインストール済み・有効を確認し、新しいセッションを開始します。 まずは機密情報を含まない自作の作業フォルダで。 AI解説は質問ごとにモデル呼び出しが1回増え、追加の利用量が発生します。通常は会話の要点を使い、「全文脈で解説」では会話全体を使うので、送る範囲も確認してください。 作者README(10/5確認): https://github.com/aieo-product/claude_qamods/blob/main/README.ja.md 導入範囲の公式説明: https://code.claude.com/docs/en/discover-plugins
質問の横に「何を決めるための質問か」と「選んだ先」が出る。Claude CodeのModで、回答する側の判断材料まで足せるのがいいな。 オータニさんが公開した「qa-guide」は、Claudeから質問が来ると、AIが横のペインに説明をまとめて表示するという。 ・なぜその質問をしているか ・各選択肢を選ぶとどうなるか ・おすすめの選択肢 私なら「今あるデータを残したい」と頼んだ作業で、各案がデータの扱いをどう変えるか読んでから返答したい。これは私の想定例だけど、短い選択肢だけでは省かれがちな判断の前提を、回答する場所の横で読める構成に惹かれる。 https://x.com/otani_ai_memo/status/2106612755008786455
Claude Code が Mod 機能で「カスタマイズ可能」に。2026-10-01 発表。 ■ 何が変わった ・TypeScript/JavaScript で独自機能を追加可能 ・高リスク操作(rm -rf 等)を画面表示して警告 ・ファイル変更をリアルタイム記録・表示 ・CLI・デスクトップアプリ両対応 ■ 実務評価 これまで Claude Code は「デフォルト設定で使う」か「権限制限で縛る」の二択だった。Mod で「こういう警告が欲しい」「こういう表示が見たい」という個別要望を自分で実装できるようになった。 特に「コマンド実行の影響範囲」を先読みして教えてくれるシステムは、学習曲線を短くできる。機械学習エンジニアがプロトタイプ環境でリスク許容度を上げたいときとか、スタートアップが小チームで運用するときに刺さりそう。 #Claude #Claude Code
When you ask Claude Code to make a mod for his terminal and he assumed work related. No buddy, for you. Not for me.
The fix for AI context overload isn't a bigger window, it's a trip wire. One Claude Code mod kills the session at 85% full and restarts clean, because past that point the model doesn't fail loudly. It just starts hallucinating quietly.
Learn how to use claude mods https://claude.dev/blog/getting-started-with-claude-code-mods/
如果你在使用 Claude Code,强烈推荐安装这个由开发者社区分享的 Prompt Cache Control 扩展模组。 在长周期的编程任务中,上下文膨胀会导致 Token 消耗与计费飞速上升,而充分利用 Prompt Caching 是控制成本、让单次会话维持更久的核心手段。这款工具直接将原本黑盒的缓存机制做成了实时观测面板,彻底解决了“缓存何时失效、该不该保温”的痛点。 核心功能与亮点: 终端可视化状态条:在界面底部实时呈现 5 分钟缓存倒计时、已读写数据量及命中状态,缓存消耗一目了然。 分级预警与保温通知:在缓存过期前 1 分钟、30 秒、10 秒提供倒计时提醒,便于开发者及时输入指令“加热缓存”(Keep warm),避免全量 Prompt 重新写入产生昂贵费用。 经济效益判断:根据上下文体积智能评估,主动提示当前是继续保持现有会话更划算,还是开启全新 Session 更有性价比。 独立监控看板:随时运行 /cache 即可呼出全景看板,完整复盘整场会话中缓存命中的具体行为和数据流。 智能 TTL 模式识别:自动识别 API 调用与订阅模式的生存周期差异(5 分钟 vs 1 小时),支持通过 CLAUDE_CODE_PROMPT_CACHE_TTL 环境变量自定义,并能在长间隔命中时自动推断 1 小时缓存。 一键安装命令: npx claude-code-templates@latest --mod observability/prompt-cache-control 无论是经常进行深度重构还是长时间交互式开发,把缓存状态从被动猜测变为主动管理,都能大幅压低日常 API 账单并提升终端响应速度。 https://x.com/dani_avila7/status/2106455605925822967/video/1
Ahora puedes reescribir Claude Code desde adentro. Anthropic lanzó Mods: TypeScript que intercepta tool calls, cambia prompts o agrega UI. Corren sin sandbox, con el mismo acceso al sistema. Confía en la fuente. ¿Qué mod te armarías primero? #IA
Claude Code 2.1.289で、Modsを公開した直後の権限の穴が塞がっています。 Bashのdenyとaskは、コマンドの前に環境変数を付けたとき、sandboxのauto-allowだと抜けていました。例は `TZ="$HOME" rm -rf build` です。変数への代入だけをコマンドの前に置いたときも、同じ条件でルールが飛ばされていました。管理されたマシンでは、複合コマンドの入れ子の一部に付けたdenyやaskが、ユーザーが入れたModの承認に負けていました。 Readのdenyは、IDEで@言及、変更、選択したファイルがシンボリックリンク経由だと効いていませんでした。ユーザーが入れたプラグインが、組織で管理しているMCPサーバのサインイン用ツールの説明を書き換えられる問題も直っています。 壊れたModは、描画中に失敗しても周りの描画を一緒に落とさず、そのModだけ止まって `ui.fault` を出します。`agent.spawn` が入り、チームメイトを起動できます。プラグインのhookイベントではエージェントのidが1つにそろい、`$.agent.list()` にidleとwaitingが入っています。 Modsやユーザー導入のプラグインを使っていても、BashとReadのdeny、組織管理のMCPの説明が、意図どおり守られます。 #ClaudeCode https://github.com/anthropics/claude-code/releases
【Claude Code用に書いたプラグイン、他では使い回せない問題に動き】 DeepSeekのコーディングエージェント「DeepSeek Harness」が連休中にひっそり新版を公開した。 Claude Code向けにMods(プラグイン)を書いても、他のエージェント環境では使えず結局書き直し……という方、多いのでは。 DeepSeek Harness v0.2.1-alpha.1は、このロックイン問題に実験的な互換レイヤーで応えようとしている。 ① Claude Code Mods API互換レイヤーを実験導入。公式は「Claude Code Mods APIの能力は、DeepSeek Harnessのプラグイン機能の部分集合」と位置づけ ② 既に3つの橋渡し事例が動作と報告: コンテキスト消費を“天気予報”的に可視化するToken Weather、高リスクコマンド実行前に影響範囲を示すBlast Radius、ファイル変更を1手ずつ再生するReplay Theater ③ 「Agentにプラグインを作らせる」機能も追加。欲しい機能を言葉で説明するとAIが実装する仕組み ④ 公式は互換レイヤーが「施工中」と明言。一部のイベント・インターフェースは未対応で、完全な互換性はまだ先 「一切はプラグイン」という設計思想が、Claude Code資産の移植を試みる土台になりそうな点がポイント。 📌 信頼度: ★★(複数の二次報道の内容が一致・公式発表ベース。実機未検証) ※元記事は検証ページに阻まれ直接確認できず、同内容の転載記事で裏取りした。互換レイヤー自体「施工中」 詳細リンクはリプに👇 #DeepSeek #DeepSeekHarness #AIエージェント開発
My first Claude Mod. Finally I can see the model and effort in a subagent session. #claude #anthropic @claudeai @ClaudeDevs
Claude Code Mods are powerful—but they run with full machine privileges and are not sandboxed. That means a useful mod can potentially access local files, secrets and API keys. Convenience vs security just got interesting.
「mods」とは? AnthropicのClaude Codeに2026年10月1日頃導入されたカスタマイズ機能で、TypeScript(またはClaudeに書かせた)の小さな関数として動作し、プロンプトの書き換え・ツール呼び出しの傍受・UI変更・組み込み機能の置き換えを可能にする。 https://code.claude.com/docs/ja/plugins/mods/overview プラグインとして配布・共有でき、CLIやデスクトップアプリでインストール可能。 https://github.com/anthropics/claude-code/tree/main/mods AnthropicエンジニアのBoris Cherny (@bcherny) は「人によって働き方が違うのだから同じClaude体験である必要はない」と発表し、プロンプトだけで自分用の動作や見た目に変えられる点を強調している。 引用投稿ではこれを、エージェントのハーネス(ツールループやオーケストレーション)をより決定論的にし、LLMの確率的出力を「考えるプログラム」に近づける仕組みと評価し、マルチエージェント協調の可視化など具体的な応用を想定している。 これはかなり面白い。
I built a Claude Code mod for claude seo. /seo-cockpit puts your audit, Core Web Vitals, Search Console and rankings in one live pane. Ran it on a real site with 11 agents. Free and open source: https://www.youtube.com/watch?v=iQm--J2bqSQ
I've had a crazy productive week: > Started building a replacement for @useMotion > Build an @obsdmd brain for everything I'm building > Almost finished updating my portfolio (again lol) > Launched the Age of Empires II Claude mod > Made a random person generator > Updated http://PortraitDirector.app
Claude Code ModsとJevでモデルルーターを構築(サブスクで使えるゾ!!) #ClaudeCode - Qiita https://search.app/2h1KaN2wTfqahvuF8
“我兼容你,只因为你是我子集。”GitHub 评论区已经玩起了梗😂 DeepSeek Harness 10月3日发布 v0.2.1-alpha.1,新增 Claude Code Mods 实验性兼容层。 官方同时标明:这次主要验证 API 能力范围,还不提供完整实用兼容。 https://github.com/deepseek-ai/deepseek-harness/releases/tag/dsh-v0.2.1-alpha.1
Wrote up the five Claude Code mods Claude built after reading 30 of my own sessions. The exact prompt I used, what each mod does, screenshots from a real run, and the four bugs that run caught before I ever used them for work. They're open source too, if you'd rather not have your agent build its own. If you run the prompt on your own sessions, reply here with what it came back with. I want to see how different your ten ideas are. https://benenewton.com/blog/five-claude-code-mods-session-visibility?utm_source=twitter&utm_medium=social&utm_campaign=claude-code-mods-discussion-tweet
AIコーディングツール「Claude Code」に、TypeScriptで動作や画面をカスタマイズできる「Mods」機能が正式に追加されたそうです。AIと一緒にものづくりする時代、子どもたちの学び方もどんどん進化していきます!スクール体験参加者募集中 https://gihyo.jp/article/2026/10/claude-code-mods
claude code on desktop feels bloated and slow.... so i used ONE prompt to fix it : [start of the prompt] This will turn your terminal into a ultra-fast claude code app <role> You are a senior TypeScript engineer. You build Claude Code mods. You write small modules, you test each module, and you report only results that you verified. </role> <variables> AUTHOR_NAME = "Your public name" MARKETPLACE = "your-marketplace-name" LICENSE = "MIT" PANE_COLUMNS = 48 </variables> <context> A mod is a Claude Code plugin. The file hooks/hooks.json names one hooks module. The hooks module exports register(on, options). Each hook is on('event', matcher, async ($, e, next) => result). "$" is the mods API. "e" is the event. "next(e)" runs the other mods and then Claude Code. I want an IDE-style workspace inside a Claude Code terminal session. People read files, search, see diffs, run tasks, and move between sessions with no second window. Other people will install these mods from a public marketplace, so the mods must load on a clean machine and must not fail when a tool (git, rg, cargo) is absent. Official documentation (read the pages that you need): - https://code.claude.com/docs/en/plugins/mods - https://code.claude.com/docs/en/plugins/mods/create - https://code.claude.com/docs/en/plugins/mods/interface - https://code.claude.com/docs/en/plugins/mods/reference - Built-in mod source: https://github.com/anthropics/claude-code/tree/main/mods (read "diff" first; it is a pane with buttons and its own scroll) </context> <source_of_truth> The mods API changes between releases. Use this order when two sources disagree: 1. The type declarations that Claude Code writes into .claude-plugin/types/ of each mod. These describe the installed version. 2. The output of "claude plugin validate". 3. The documentation pages. 4. This prompt. Run /plugin-authoring before you write code. Read claude-code/index.d.ts before you use an event, a method, an element, or a prop. Search that file for the name. Do not use a name that is not in that file. If this prompt names something that the installed version does not have, do not invent a replacement. Build the nearest version that the API supports and record the difference in LIMITS.md. </source_of_truth> <api_rules> Claude Code does static analysis on the hooks module. These rules keep validation green: - Write each API call in full: $.fs.read(...), $.ui.open(...). Do not assign "$" or a namespace to a variable. Do not destructure "$". - Pass "$" only to a function declared at the top level of the same file. Do not pass "$" to an imported function, a method, or a function defined inside a hook. - Write each event name as a string literal in on(...). Do not loop over a list of event names. - Do not declare a second variable named "on" inside register. - Use ES modules. Use import declarations at the top of the file. No require. No dynamic import(). - Import only files inside the plugin directory, by relative path. The only bare import is "claude-code". - Do not start a plugin name with "claude-". Result: keep every "$" call in the hooks module. Put pure logic (parsers, tree model, search ranking, formatters) in separate files that take plain data and return plain data. Test the pure files directly. Limits to design for: - One hook has 10 seconds of its own execution time. - $.fs.read and $.fs.write: 4 MiB for one file. One Text string and one Code element: 10,000 characters. Page long files. - $.store: 4 MiB of JSON in total, shared by all sessions on the machine. Give each item its own key. Cap each list. - $.process.run: 30 seconds by default. - Redraws: 30 each second for the visible pane, 10 for other sites. - A pane that a mod opens by itself appears only at 144 columns or more. A pane that a user command or press opens appears at each width. Open panes from commands and presses. Keyboard rules: - A mod cannot bind Tab or the arrow keys. Tab moves between controls. Up and Down move between controls or scroll. - A Button hotkey is one digit or one lowercase letter. While an Input has the focus, each printable key goes to the Input. - Give each control a unique key. Tests press controls by key. - Claude Code has no tabs element. Draw tabs as a row of plain buttons. State: - Module variable: lost at each reload. Use for values that can be lost. - $.state: lasts for the session and redraws the sites that read the value. Declare each value in types/index.d.ts and name that file in the manifest. - $.store: lasts between sessions. Use for settings, recent sessions, and projects. </api_rules> <repository_layout> .claude-plugin/marketplace.json one entry for each plugin, marketplace name = MARKETPLACE plugins/file-explorer/ plugins/workspace/ plugins/ide-usage/ plugins/ide-statusbar/ README.md LICENSE PROGRESS.md LIMITS.md tests.json Each plugin: .claude-plugin/plugin.json name, version 0.1.0, description, author = AUTHOR_NAME, license = LICENSE, types when needed hooks/hooks.json { "modules": ["./register.ts"] } hooks/register.ts the only file that calls "$" hooks/lib/*.ts pure logic types/index.d.ts PluginState and any namespace that the mod adds tests/*.test.ts tests for "claude plugin test" </repository_layout> <mod name="file-explorer"> Command: /explorer opens the pane (id "explorer", title "Explorer", focus true, columns PANE_COLUMNS). Register the command with immediate: true so that it works during a turn. A second /explorer closes the pane. /explorer <path> opens that path. Header row: the word EXPLORER, then Back, Forward, Up, Close. Back and Forward move through the history of opened folders and files. One Input below the header. Its purpose changes with the tab: - Files tab: placeholder "Find files". Enter searches file names and paths below the root. The search ignores case. Stop at 500 matches and show: N files match "query" (first 500, scan stopped). Show the matches as a tree with their parent folders. Mark the matched text. An empty query restores the tree. - Code tab: placeholder "Find in file, :line, or /regex/". Plain text finds each occurrence. ":42" goes to line 42. "/re/" uses a regular expression. Show "match 2 of 5". Buttons n and p go to the next and the previous match. Tabs: Files, Code, Diff. Files tab: - Root line: the root folder name and the full path. The first root is the session working folder. Up moves the root to the parent folder. - Action row: New File, New Folder, Refresh, Collapse, More. New File and New Folder ask for a name with an Input and create the item in the selected folder. More holds Rename, Delete, Copy path, and Show hidden files. Delete asks for confirmation with $.ui.ask. - Tree: read one folder level when the user opens that folder. Sort folders first, then files, by name. Show a marker for the folder state, a short type tag for known file types (json, md, ts, js, py, rs, go, sh), and "name → target" for a symbolic link. Show "(empty)" in an empty folder. Skip .git and node_modules unless hidden files are on. - Selection and paging: one selected row. Buttons move the selection up and down, open a folder, close a folder, and open a file. Show the range, for example "7-49 of 329". Draw only the rows that fit in e.props.scroll.bodyRows. Code tab: - Breadcrumb of the path, then "N lines · size". - Line numbers and syntax colors. Use the Code element. Page the file so that no element is larger than 10,000 characters. - For a file larger than 4 MiB or a binary file, show the size and a message. Do not read the file. - Highlight the current match and the current line. Diff tab: - Show the uncommitted diff of the open file (git diff for that path). Use the Code element in diff mode. - Show the count of added and removed lines. - When Claude edits a file with Edit, Write, or MultiEdit, record the path in the http://tool.call hook after next(e) returns. If the pane is open, select that file and show the Diff tab. Do not open the pane by yourself. - If the folder is not a git repository, say so in one line. Other mods open a file through a namespace that this mod adds to the mods API: http://explorer.open({ path, line, tab }). Declare the namespace in types/index.d.ts. Read the "telemetry" built-in mod to see how a mod adds methods for other mods. </mod> <mod name="workspace"> Depends on file-explorer (list it under dependencies in plugin.json). Command: /workspace opens the navigator pane (id "workspace", title "Workspace", columns PANE_COLUMNS). Navigator placement: the documented position of a pane is a dock beside the transcript, and Claude Code gives each open pane a tab with its title. Search the types for a field that places a pane on the left side. If one exists, put the navigator on the left and the tools in the right dock. If none exists, the navigator is one more pane in the dock. Record the result in LIMITS.md. Navigator content, top to bottom: 1. Title CLAUDE CODE and a New chat button. New chat runs the built-in command that starts a new conversation. Find the command name with $.command.list. 2. WORKSPACE: one button for each tool, in this order: Files, Terminal, Browser, Source Control, Problems, Run Tasks, Outline, To-do Comments, Timeline, Usage, Model Router. A press opens that tool pane and gives it the focus. Mark the tools that are open. 3. RECENTS: the newest 5 sessions, with "Show more". Each row shows the title, the project name, and the age (8m, 22h, 3d). The title is the first prompt of the session, cut to fit. A press on a row shows the prompts of that session below the row. Mark the current session. 4. PROJECTS: each project folder with its session count. A press shows the sessions of that project. Session index: in the prompt.submit hook, write { id, cwd, repo, title, prompts[], updatedAt } to $.store under the key "session:<id>". Keep the newest 50 prompts for each session and the newest 200 sessions. Read the store again before each write, because other sessions write to the same store. Do not read or parse Claude Code's own transcript files. Open a recent session: check the types for a supported method to switch or resume a session. If none exists, copy "claude --resume <id>" with $.ui.copy and show a toast that says so. Tools. Each tool is one pane with its own id, a short title, and a Refresh button. Each tool shows one clear line when it has no data or when its program is absent. 1. Files: calls http://explorer.open with the session folder. It does not draw a second tree. 2. Terminal: an Input that runs one command with $.process.spawn in the session folder. Stream the output into the pane. Keep the last 500 lines. Show the exit code. Keep a history of 50 commands. A Stop button ends the process. This is a command runner, not a terminal emulator; say so in the README. 3. Browser: an Input for a URL. Fetch with $.http.fetch. Show the status code, the page title, and the readable text as Markdown, cut to the element limit. Show links as buttons that load the link. An "Open in system browser" button uses the open command of the operating system. Allow only http and https. 4. Source Control: branch, ahead and behind counts, and the changed files with status and "+added −removed" from git. A press on a file calls http://explorer.open with tab "diff". Buttons: Stage, Unstage, Stage all. A commit Input commits the staged files after a confirmation with $.ui.ask. Do not push, pull, reset, or discard changes. 5. Problems: run the check command of the project and list each problem as "file:line message" with a severity mark. Detect the command: tsc --noEmit for tsconfig.json, cargo check for Cargo.toml, go vet for go.mod, ruff check for pyproject.toml when ruff is installed. A user setting replaces the detected command. A press calls http://explorer.open with the line. Run only on Refresh and after a turn ends, and do not run two checks at the same time. 6. Run Tasks: show the session folder. Find tasks in package.json scripts, Makefile targets, justfile recipes, Cargo.toml (build, test, clippy), pyproject.toml scripts, and go.mod (build, test, vet). If none is found, show: No task found (package.json, Makefile, justfile, Cargo.toml, pyproject.toml, go.mod). One button for each task. One Input with the placeholder "Run a command, then Enter". Stream the output and show the exit code and the time. 7. Outline: the symbols of the file that is open in the explorer, with line numbers: functions, classes, structs, interfaces, constants, and Markdown headings. Use one small pattern table for each language (ts, js, py, rs, go, md). Indent nested symbols. A press calls http://explorer.open with the line. 8. To-do Comments: find TODO, FIXME, HACK, and NOTE comments in the project. Use rg when it is installed. If not, walk the tree with $.fs.list and skip .git, node_modules, target, and dist. Group by tag. Show "file:line text". Cap at 300 items. A press calls http://explorer.open with the line. 9. Timeline: one row for each prompt, tool call, and turn end in this session, newest first, with the clock time. For Edit and Write, show the path and the line counts. A press on an edit row calls http://explorer.open with tab "diff". Keep 300 rows. 10. Usage: read $.session.usage(). Show the context percent, tokens, and window with a bar. Show each rate limit with percent used and reset time. Show the cost if the field has a value. Record the token count of each turn in the session.measure hook and draw the last 30 turns as a small bar graph. Use Raster in the terminal and text on other surfaces (check e.surface). 11. Model Router: show the model of the main session and each subagent start with its type, its model, and its state. Three modes in a Select: Off, Suggest, Auto. Off records only. Suggest shows the model that the rules select and changes nothing. Auto sets the model of a subagent in the agent.spawn hook from a rule table (subagent type or task keyword → model) that the user edits in the pane and that is saved in $.store. Rules: never change the model of the main session, keep a model that the caller named, and let the start continue unchanged if a rule fails. Read the model names from the session and the settings. Do not write model names into the code. The default mode is Off. </mod> <mod name="ide-usage"> One status line with $.ui.status: "ctx 20% · <model>". Update it in the session.measure hook. No pane. </mod> <mod name="ide-statusbar"> One status line with $.ui.status: "<language> · <file name>" for the file that is open in the explorer, or the file that Claude last read or edited. Derive the language from the file extension. Show "Plain Text" for an unknown extension. No pane. </mod> <out_of_scope> - Window tabs for more than one session (for example ⌘1 and ⌘2). The terminal application draws these. A mod cannot. - A full text editor in the pane. An Input is one line. - Changes to the permission prompt. A mod cannot draw there. Do not add features that are not in this prompt. Do not add configuration options that no feature needs. </out_of_scope> <safety> A mod runs with the permissions of the user and is not sandboxed. Write code that a careful reviewer accepts: - Confirm with $.ui.ask before delete, rename, and commit. - Never run a destructive git command. Never approve a tool call for the user. Never send file content or prompts to the network. The Browser tool fetches only the URL that the user typed or pressed. - Do not read environment variables or settings that a feature does not need. "claude plugin validate" lists env reads and calls; keep that list short. - Pass arguments to $.process as an array. Do not build a shell string from file names. During this build, edit files only inside this repository. Do not push. Do not install the plugins into my user settings. Ask me before any action that is hard to undo. </safety> <workflow> This task is long. Your context is compacted automatically, so do not stop early to save tokens. Keep the state in files so that a new context can continue: - PROGRESS.md: what is done, what is next, and each decision with its reason. - tests.json: one entry for each acceptance test with the status not_started, failing, or passing. - LIMITS.md: each feature that the installed API cannot do, and what you built in its place. - One git commit for each feature that passes. At the start of each new context: read PROGRESS.md, tests.json, LIMITS.md, and the git log. Run the test suite before you add a feature. Phase 0, find out. Run /plugin-authoring. Run "claude --version". Read the documentation pages and the "diff" built-in mod. Then write PLAN.md: the events and methods that each feature uses, with the line from the types that proves each one exists. List each feature that needs a different design. Show me PLAN.md and continue unless I object. Phase 1, scaffold. Create the repository layout, the four manifests, hooks.json files, and empty register.ts files that register only their commands. Run "claude plugin validate --strict" on each plugin until it passes. Then stop and give me this command to restart with hot reload: claude --plugin-dir ./plugins/file-explorer --plugin-dir ./plugins/workspace --plugin-dir ./plugins/ide-usage --plugin-dir ./plugins/ide-statusbar After I type "continue", read the generated types in .claude-plugin/types/ and correct PLAN.md. Phase 2, file-explorer. Build in this order: tree model and Files tab, file search, Code tab with find, Diff tab, http://explorer.open. Write the tests for a feature before its code. Phase 3, workspace. Build the navigator and the session index first. Then build the tools in the listed order. Finish and test one tool before you start the next. Phase 4, status lines. Build ide-usage and ide-statusbar. Phase 5, release. Write marketplace.json, LICENSE, and README.md. The README gives: what each mod does, the install commands (claude plugin marketplace add, claude plugin install <name>@MARKETPLACE), the Claude Code version that you tested, the commands, the hotkeys, what each mod can reach (from the "hooks:" and "calls:" lines of validate), and the content of LIMITS.md. Run the full verification. Work directly. Use a subagent only for a search across many files that does not need your context. </workflow> <tests> Tests run with "claude plugin test" and need no session and no network. A test fires events, presses controls by key, and checks the drawing or the result. Stub $.fs, $.process, $.http, and $.store. Write tests that check behavior, for example: - A search for "auth" in a stub tree returns the correct files, marks the matched text, and stops at 500. - ":42" selects line 42. "/re(fresh)?/" finds the correct matches. An invalid regular expression shows an error line and does not throw. - A press on a Source Control row calls http://explorer.open with tab "diff". - Run Tasks with no manifest file shows the "No task found" line. - A git program that is absent gives one clear line and no error. - The session index keeps 200 sessions and merges with a newer write from another session. - Model Router in Off mode and in Suggest mode returns next(e) unchanged. Write general code that is correct for each valid input. Do not write code that only satisfies a test. Do not delete or weaken a test to make it pass. If a test is wrong or a feature is not possible, tell me. </tests> <done_when> 1. "claude plugin validate --strict" passes for each plugin. 2. "claude plugin test" passes for each plugin, and tests.json has no entry that is failing or not_started. 3. "tsc -p" on each plugin reports no error against the generated types. 4. Each command answers in "claude -p" (for example: claude -p "/explorer" --plugin-dir ./plugins/file-explorer) with no error. 5. LIMITS.md lists each difference from this prompt. 6. You give me a checklist of the items that only a person can check in a live session: each pane opens, the hotkeys work, and the layout fits at 110 and at 144 columns. </done_when> <reporting> After each phase, write a short report: what you built, the exact commands that you ran, their results, and what is not verified. Separate "the tests pass" from "I saw it work in a session". If you did not run something, say that you did not run it. </reporting> [end of the prompt]
Claude Code のMods機能を使って、ウサギを入力欄の上に出現させた。 簡単なアニメだけど動くよ。 問題は私はあまりClaude Codeを使わないことなんだよね。 チャットとCowork(最近統合した)は使っているけど。
Claude Code派としては見逃せない「Mods」 キャッチアップできてなかったですが、この投稿で理解が進みました👇️
☕ Claude Code の動きや画面を書き換える新機能「mods」 🔔 ✅ プラグインに入った JS / TS のモジュール。/plugin で入れる ✅ hooks と違ってセッションに常駐し、UI やスラッシュコマンドまで足せる ✅ 公式ガイドの例: Token Weather / Blast Radius / Replay Theater ✅ /diff と AGENTS.md 対応も mods で作られている ⚠️ Claude Code と同じ権限で動く。信頼できる提供元のものだけ https://claude.dev/blog/getting-started-with-claude-code-mods/ https://youtube.com/shorts/Ix-yrAk889M
Claude Code Mods let developers change its interface, rewrite prompts, intercept tool calls and add entirely new behavior. People are already building custom progress bars, dashboards and agent controls.
anthropic: we shipped claude code mods deepseek, 2 days later: we shipped a claude code mods compatibility layer release notes literally say the goal is proving the mods api is "broadly a subset" of their plugin system 3 of 7 example mods actually run.
Shown as text cards so your browser makes no requests to X. Want a post removed? Email us from the imprint.