tmck-code/yet-another-statusline/uninstall

Claude Code and agent skill by tmck-code/yet-another-statusline

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Unwire yet-another-statusline from Claude Code — removes statusLine.command from settings.json in CLAUDE_CONFIG_DIR (default ~/.claude/) and deletes the renderer's runtime state. Run before (or after) `claude plugin uninstall yas`, which only deletes the plugin cache and leaves the statusLine config behind.

Install

npx vskill@latest install tmck-code/yet-another-statusline/uninstall

SKILL.md

<objective>

Reverse /yas:init. Remove the statusLine block from settings.json in $CLAUDE_CONFIG_DIR (default ~/.claude/), only when it points at this plugin's renderer, and delete the runtime logs and per-session payloads the renderer wrote.

claude plugin uninstall yas@yet-another-statusline only deletes the plugin cache — Claude Code keeps reading statusLine.command from settings.json and tries to run the now-missing script. This skill clears that config so the statusline actually stops.

Leaves untouched: a custom (non-yas) statusLine, the settings.json.bak-yas-* backups, the user's yas.toml config file, and any make install dev symlinks.

</objective>

<workflow>

Step 0: Resolve config dir

bash
CONFIG_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}"
SETTINGS="$CONFIG_DIR/settings.json"
printf " Config dir: %s\n" "$CONFIG_DIR"

Step 1: Inspect the current statusLine

bash
if [ ! -f "$SETTINGS" ]; then
printf " No settings.json — nothing to unwire.\n"
CFG_STATE="absent"
else
CMD=$(jq -r '.statusLine.command // ""' "$SETTINGS" 2>/dev/null) # timeout: 5000
if [ -z "$CMD" ]; then
printf " No statusLine configured — nothing to remove.\n"
CFG_STATE="none"
elif printf '%s' "$CMD" | grep -q "statusline_command.py"; then
printf " Found yas statusLine: %s\n" "$CMD"
CFG_STATE="yas"
else
printf "! statusLine points elsewhere — not a yas command:\n %s\n Leaving it untouched.\n" "$CMD"
CFG_STATE="foreign"
fi
fi

statusline_command.py is the signature of this project's renderer (used by both the plugin-cache path and the dev checkout path from the README). If CFG_STATE is anything other than yas, skip Step 2 — do not edit statusLine.

Step 2: Back up, then remove the statusLine block

Only when CFG_STATE is yas:

bash
BAK_TS=$(date -u +%Y%m%dT%H%M%SZ)
cp "$SETTINGS" "$SETTINGS.bak-yas-${BAK_TS}" # timeout: 5000
printf " Backed up → settings.json.bak-yas-%s\n" "$BAK_TS"
_result=$(jq 'del(.statusLine)' "$SETTINGS") # timeout: 5000
[ $? -eq 0 ] && [ -n "$_result" ] || { printf "! jq failed — settings.json unchanged\n"; exit 1; }
_tmp=$(mktemp "$SETTINGS.XXXXXXXXXX")
printf '%s\n' "$_result" > "$_tmp" \
|| { rm -f "$_tmp"; printf "! write failed — settings.json unchanged\n"; exit 1; }
mv "$_tmp" "$SETTINGS" # timeout: 3000
if jq empty "$SETTINGS" 2>/dev/null; then # timeout: 5000
printf " Removed statusLine from settings.json\n"
else
cp "$SETTINGS.bak-yas-${BAK_TS}" "$SETTINGS"
printf "! Result was invalid JSON — restored from backup\n"
exit 1
fi

Step 3: Delete runtime state

The renderer writes these as it runs. Safe to remove; they regenerate if the statusline is ever reinstalled. yas.toml is deliberately preserved — it is the user's own configuration, not YAS-generated state.

bash
# Consolidated state tree (current versions)
if [ -d "$CONFIG_DIR/yas" ]; then
rm -rf "$CONFIG_DIR/yas" && printf " Removed yas/\n"
fi
# Legacy flat paths (older versions, pre-migration)
for f in statusline-tokens.log statusline-token-rate.log statusline-render.log \
statusline-theme terminal-width yas-last-prompt.json yas.toml.cache; do
if [ -e "$CONFIG_DIR/$f" ]; then
rm -f "$CONFIG_DIR/$f" && printf " Removed legacy %s\n" "$f"
fi
done
if [ -d "$CONFIG_DIR/statusline-output" ]; then
rm -rf "$CONFIG_DIR/statusline-output" && printf " Removed legacy statusline-output/\n"
fi
# Legacy: older versions wrote per-session info files here
for f in "$CONFIG_DIR"/statusline-info-*; do
[ -e "$f" ] || continue
rm -f "$f" && printf " Removed legacy %s\n" "$(basename "$f")"
done

(Use the resolved $CONFIG_DIR — not a hardcoded ~/.claude.)

Step 4: Report

Count, but do not delete, the init/uninstall backups:

bash
N_BAK=$(ls -1 "$CONFIG_DIR"/settings.json.bak-yas-* 2>/dev/null | wc -l | tr -d ' ')
[ "$N_BAK" -gt 0 ] && printf " Kept %s settings.json.bak-yas-* backup(s) in %s\n" "$N_BAK" "$CONFIG_DIR"

Then print a summary:

Done. statusLine config and runtime state removed.
Still installed (this skill does not remove these):
• the plugin itself — run: claude plugin uninstall yas@yet-another-statusline
• your config — yas.toml
• backups — settings.json.bak-yas-* (delete by hand if you want)
Reload Claude Code to clear the statusline.

If CFG_STATE was foreign, remind the user their custom statusLine was kept on purpose.

</workflow>

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
240
Repository forks
24
7-day trend score
27

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/tmck-code/yet-another-statusline/uninstall/badge)](https://verified-skill.com/skills/tmck-code/yet-another-statusline/uninstall)

Something wrong with this skill or its page? Tell us.