Tools-AI
A Claude Code plugin marketplace with productivity-focused plugins.
Installation
Requires Claude Code v1.0.33+.
1. Add the marketplace:
/plugin marketplace add thariman/Tools-AI
2. Install plugins:
/plugin install statusline@tools-ai
/plugin install rename@tools-ai
3. Start using Claude Code — both plugins are automatically configured on the first session start via SessionStart hooks. The statusline appears after your first interaction and sessions are auto-named immediately (no restart needed).
How it works: On the first session after install, a SessionStart hook runs setup.sh which copies the statusline files to a persistent location (~/.claude/statusline/) and writes the statusLine config to ~/.claude/settings.json. This ensures the status line survives plugin cache clears and Claude Code updates. Claude Code auto-reloads settings after each interaction, so the status bar appears as soon as you send your first message. A UserPromptSubmit hook also runs setup.sh as a safety net, ensuring the config is written before any interaction triggers the reload.
Plugins
Statusline
A rich status line for Claude Code that displays at-a-glance session info:
- Model — current Claude model in use
- Active task — what Claude is currently working on (from the task list)
- Directory — current working directory
- Git branch & status — branch name with clean (✔) or dirty (●) indicator
- Context window usage — 10-segment progress bar with color-coded thresholds
- Update checker — notifies when a new Claude Code version is available
Opus 4.6 │ Fixing auth bug │ my-project │ main ✔ █████░░░░░ 50% │ ⬆ v2.2.0
Context window colors shift from green → yellow → orange → red as usage increases, with a skull (💀) warning above 80%.
The update checker queries the npm registry on session start (with a 4-hour cooldown) and compares against your running version. When a new version is found, the ⬆ v{version} indicator appears in the status bar and a full notification with GitHub release notes is displayed at session start.
Rename
Automatically names Claude Code sessions on startup using the current directory name plus an incrementing counter:
Tools-AI-1 Tools-AI-2 my-project-1 my-project-2
- Names sessions instantly on
SessionStart — no manual /rename needed
- Counter is per-directory, stored in
~/.claude/rename/state.json
- Writes directly to the session JSONL file for immediate effect
- Falls back gracefully if
python3 is unavailable
Uninstalling
1. Run the uninstall script for the plugin(s) you want to remove:
# Statusline
bash ~/.claude/plugins/cache/tools-ai/statusline/*/scripts/uninstall.sh
# Rename
bash ~/.claude/plugins/cache/tools-ai/rename/*/scripts/uninstall.sh
2. Uninstall the plugin(s):
/plugin uninstall statusline@tools-ai
/plugin uninstall rename@tools-ai
Important: Run uninstall.sh first. The plugin system doesn't have a lifecycle hook for uninstall, so if you skip step 1, persistent files and config will remain orphaned (they won't cause errors, but you'll need to manually clean up ~/.claude/statusline/ or ~/.claude/rename/).
To remove the marketplace source entirely:
/plugin marketplace remove tools-ai
How It Works
Plugin Install
└─ adds to enabledPlugins, caches plugin files
First Session Start
└─ SessionStart hook fires
├─ setup.sh runs (~500ms)
│ ├─ copies run.sh + statusline.js + check-update files to ~/.claude/statusline/
│ └─ python3 writes statusLine config to ~/.claude/settings.json
└─ check-update.sh runs
└─ node check-update.js
├─ claude --version → current version
├─ npm registry → latest version
├─ GitHub releases → release notes (if update available)
└─ writes ~/.claude/statusline/update-cache.json
First User Interaction (same session)
└─ UserPromptSubmit hook fires → setup.sh runs (idempotent, ~7ms)
└─ Claude auto-reloads settings.json
└─ reads statusLine config → runs bash ~/.claude/statusline/run.sh
└─ run.sh finds node → exec node statusline.js
├─ reads JSON from stdin → renders status bar
└─ reads update-cache.json → shows ⬆ indicator if update available
The SessionStart and UserPromptSubmit hooks also act as a self-healing mechanism: if the statusLine config is accidentally removed from settings.json, or if the persistent files are deleted, the next session start or prompt will restore them automatically.
Edge Cases