Content
Hook
Hooks
What language-coach runs automatically, and when. A hook is a command Claude Code fires at a fixed moment, without you asking for it.
Install
$ npx -y skills add leeguooooo/prompt-language-coach --agent claude-codeShips with language-coach. Installing the plugin gets these hooks.
What fires, and when
UserPromptSubmit
Fires before Claude sees each prompt you send. A plugin can use it to inject context, so the same instruction reaches the model every turn instead of only at session start.
bash "${CLAUDE_PLUGIN_ROOT}/hooks/language-coach.sh"
Where it lives
- hooks/cursor-language-coach.shGitHub
Read the script
#!/bin/bash set -euo pipefail # Resolve plugin root robustly regardless of how the hook is invoked if [ -n "${CURSOR_PLUGIN_ROOT:-}" ]; then REPO_ROOT="$CURSOR_PLUGIN_ROOT" else SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" fi if ! command -v python3 >/dev/null 2>&1; then exit 0 fi python3 "$REPO_ROOT/scripts/render_coaching_context.py" \ --platform cursor \ --config "$HOME/.cursor/language-coach.json" - hooks/language-coach.shRunsGitHub
Read the script
#!/bin/bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" if ! command -v python3 >/dev/null 2>&1; then exit 0 fi python3 "$REPO_ROOT/scripts/render_coaching_context.py" \ --platform claude \ --config "$HOME/.claude/language-coach.json"
Read the script before you install anything that runs on your machine. This is the one part of a plugin that acts without being asked.
Ships withlanguage-coach
An always-on language coach for AI editors — improve any target language while you work in Codex, Claude Code, or Cursor.
Get the whole plugin

