From bce529d945ad7bff917681a24e898be87b7b137f Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sun, 30 Nov 2025 08:41:18 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 11 +++++ README.md | 3 ++ hooks/hooks.json | 89 ++++++++++++++++++++++++++++++++++++++ plugin.lock.json | 45 +++++++++++++++++++ 4 files changed, 148 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 README.md create mode 100644 hooks/hooks.json create mode 100644 plugin.lock.json diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..7a77026 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,11 @@ +{ + "name": "tmux-titles", + "description": "Updates tmux window title with Claude Code status indicators showing current activity (working, editing files, running commands, etc.)", + "version": "0.18.0", + "author": { + "name": "Craig Motlin" + }, + "hooks": [ + "./hooks" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1f76c2c --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# tmux-titles + +Updates tmux window title with Claude Code status indicators showing current activity (working, editing files, running commands, etc.) diff --git a/hooks/hooks.json b/hooks/hooks.json new file mode 100644 index 0000000..b1d1ec6 --- /dev/null +++ b/hooks/hooks.json @@ -0,0 +1,89 @@ +{ + "description": "Update tmux window title with Claude Code status indicators", + "hooks": { + "UserPromptSubmit": [ + { + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/update-tmux-title.sh \"✻\"", + "timeout": 500 + } + ] + } + ], + "Stop": [ + { + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/update-tmux-title.sh \"✓\"", + "timeout": 500 + } + ] + } + ], + "SessionStart": [ + { + "matcher": "startup", + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/persist-tmux-pane.sh", + "timeout": 500 + }, + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/update-tmux-title.sh \"○\"", + "timeout": 500 + } + ] + } + ], + "Notification": [ + { + "matcher": "permission_prompt|elicitation_dialog", + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/update-tmux-title.sh \"?\"", + "timeout": 500 + } + ] + } + ], + "PreCompact": [ + { + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/update-tmux-title.sh \"⌫\"", + "timeout": 500 + } + ] + } + ], + "PreToolUse": [ + { + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/update-for-tool-hook.sh", + "timeout": 500 + } + ] + } + ], + "PostToolUse": [ + { + "hooks": [ + { + "type": "command", + "command": "${CLAUDE_PLUGIN_ROOT}/scripts/update-tmux-title.sh \"✻\"", + "timeout": 500 + } + ] + } + ] + } +} diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..7617655 --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,45 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:motlin/claude-code-plugins:plugins/tmux-titles", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "ea39d4706ac91f6567b48b574ee7fada78873510", + "treeHash": "6adafd6b18f2a2821dc2129a4f195896e6639ff3af600a080d905b2ef86bb2c0", + "generatedAt": "2025-11-28T10:27:09.276409Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "tmux-titles", + "description": "Updates tmux window title with Claude Code status indicators showing current activity (working, editing files, running commands, etc.)", + "version": "0.18.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "f921cdefa76405f5cf6e32d1988d30fdbb11a39973341991bf70a6c9d36a5131" + }, + { + "path": "hooks/hooks.json", + "sha256": "08806d0b6731b6d0da1e2fcec6d381608f54badfa3bf9c479061a6412403db72" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "f05c09d982591929e5d5dfe20a53117d00c1071aefbe91e6489e5d1cc755cbc7" + } + ], + "dirSha256": "6adafd6b18f2a2821dc2129a4f195896e6639ff3af600a080d905b2ef86bb2c0" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file