A developer built a Claude Code mod that turns my English prompts
Developer Rapha Rodrigues released cc-esol, an open-source Claude Code mod that passively logs English grammar fixes to a local file without slowing prompts.
By Dillip Chowdary • Nov 10, 2026 • Source: github.com
In this post
Software developer Rapha Rodrigues released cc-esol, an open-source passive language coaching extension for Claude Code that extracts English learning opportunities directly from everyday terminal workflows. As detailed in github.com's report, the developer extension operates quietly in the background, logging natural English corrections for non-native engineers into a dedicated local file without interrupting technical execution.
This technical analysis examines the architecture, operational overhead, privacy boundaries, and setup requirements of cc-esol across development environments. The guide is designed for multilingual software engineers and engineering managers who interact daily with Anthropic's command-line coding assistant and want continuous, unobtrusive English language coaching without external network dependencies.
01Terminal prompt coaching and automated learning logs
The tool embeds a dedicated status indicator under the standard terminal prompt alongside a graphical lightbulb icon, accessible via cursor selection or the /esol command. Once enabled in the internal preferences menu, the extension monitors conversational prompts and directs the active underlying model to generate polished English alternatives without stalling developer commands. Every corrective suggestion includes concrete grammatical reasoning and appends sequentially to an accessible local log located at ~/.claude/english-learning/learning.md.
Filtering mechanisms ensure the coach processes only qualifying phrases, ignoring standard slash commands, non-Latin scripts, and abbreviated affirmations like yes or continue. Common contraction omissions such as dont or im are treated as rapid keystroke artifacts rather than grammatical lapses. However, contextual confusions between homophones like its and it's or your and you're trigger corrective entries, while isolated foreign words within English sentences receive direct vocabulary translations.
A built-in review system allows developers to inspect accumulated logs directly from the terminal interface or through the dedicated /cc-esol:english-review transcript command. When triggered, the engine parses up to 150,000 characters from the newest log entries to synthesize language patterns, detect maternal tongue interference, and evaluate error extinction over time. The diagnostic summary concludes with three personalized practice drills generated from recorded syntax missteps.
02Modular plugin architecture and token runtime metrics
Earlier 1.x iterations packaged terminal focus bands, custom status line editors, and theme pickers inside a single bloated distribution. The current release spins off those interface components into an independent sibling utility named cc-focusdeck, narrowing cc-esol exclusively to grammatical guidance. This architectural decoupling prevents interface collisions, permitting the drawer to respect terminal color schemes while yielding visibility whenever concurrent extension panes open.
| Operational Metric | Coaching Active | Coaching Inactive | Baseline Overhead |
|---|---|---|---|
| Tool definition schema | 700 cached tokens | 0 tokens (ToolSearch) | Static cache load |
| Per-prompt payload | ~40 contextual tokens | 0 tokens | Zero injection |
| Correction response cost | 150 to 300 tokens | 0 tokens | No output generation |
| Voice input processing | 0 tokens | 0 tokens | Native transcript reuse |
| Review batch capacity | 150,000 characters | Not applicable | Single API request |
Resource consumption remains strictly compartmentalized because the extension injects rules through dynamic tool schemas rather than modifying Claude Code's immutable system prompt. When coaching is deactivated, the english_log tool recedes behind internal tool search mechanics, dropping runtime consumption to zero. Toggling the feature state invalidates the prompt cache exactly once, ensuring that subsequent interactions benefit from persistent context caching without unbounded token inflation.

03Speech dictation and automated language review drills
Developers seeking rapid conversational practice can leverage integrated speech dictation via the dedicated Voice toggle situated adjacent to the status lamp. The utility analyzes transcribed English text rather than acoustic pronunciation, ensuring accent variations do not register as grammatical failures. Words that appear misidentified by speech recognition algorithms receive an automatic STT tag, preventing transcription inaccuracies from distorting learning analytics.
Configuring the underlying transcription language to English inside global preferences creates an intentional behavioral nudge for multilingual developers. Attempting to dictate native phrases into an English speech model yields garbled transcripts, gently compelling engineers toward English formulation during daily problem solving. The coaching system accommodates twenty predefined source languages, which informs the model's diagnostic engine regarding regional linguistic transfer and mother-tongue interference patterns.
Advertisement
Tech Pulse Daily
Get tomorrow's pulse first
Join engineers who read Tech Pulse before stand-up. Free, weekday mornings.
Diagnostic reports generated during review cycles provide actionable feedback on whether structural errors are successfully receding across consecutive coding sprints. The engine parses syntax habits, highlights false cognates, and outputs three customized drills designed to reinforce natural technical phrasing. Engineers can review these findings directly in the terminal pane using simple keyboard navigation with Tab, Enter, and Escape controls.
04Marketplace installation and local session configuration
Deployment requires Claude Code version 2.1.299 or higher on Linux, macOS, or Windows platforms, with primary development validated on release 2.1.310. Users must first update their global command-line installation before registering the marketplace catalog and fetching the user-scoped plugin package.
claude update
claude plugin marketplace add rapha-rodrigues/cc-esol
claude plugin install cc-esol@esol --scope userAfter installation, developers can execute the reload command or restart the terminal session, then toggle the interface with /esol. Model configuration and default runtime parameters can be established globally or adjusted within an active session using native switches.
claude --model fable/model fableUpdating the extension package follows standard marketplace synchronization procedures, ensuring local hook registrations receive upstream maintenance fixes without disrupting accumulated log files.
claude plugin marketplace update esol && claude plugin update cc-esol@esolAutomated AI agents can also install the utility by executing version checks and marketplace commands sequentially within user-authorized project worktrees.
05Log file management and enterprise security guards
Privacy safeguards ensure that recorded prompts and corrections never route to secondary cloud endpoints outside standard conversational API paths. Data persistence defaults to a single local Markdown document at ~/.claude/english-learning/learning.md, though engineers can redirect this path to synchronized directories using the ENGLISH_COACH_LOG environment variable. Extension preferences and compiled analytical reports reside separately in JSON format within the user's plugin store directory.
Administrative teams operating under Team or Enterprise tiers should ensure installations run version 1.0.1 or later to prevent security sandbox warnings. Earlier builds attempted to hook two legacy lifecycle events blocked by the cc-plugin-sec-default security guard, generating benign but persistent terminal notices. Recent releases fully comply with enterprise policy boundaries, ensuring identical behavior across corporate seats and individual accounts.
Because the extension implements no automated log pruning, accumulated text files will eventually reach visual inspection thresholds. When the learning document surpasses 4 MiB in size, the terminal drawer suspends markdown rendering and prompts the engineer to archive the file before generating new diagnostic reviews. Renaming the existing file preserves historical notes while prompting the tool to initialize a fresh, empty log automatically.
A developer built a Claude Code mod that FAQ
What are the minimum system requirements to run cc-esol?
The extension requires Claude Code version 2.1.299 or newer on Linux, macOS, or Windows, with upstream testing verified on version 2.1.310. Using the optional voice dictation feature requires Claude Code 2.1.69 or higher, an active claude.ai account login, and a local microphone.
Does cc-esol send prompt data to third-party servers?
No, the plugin routes all corrections exclusively through the active conversation's existing model API using the local english_log tool. Corrections are stored locally in ~/.claude/english-learning/learning.md without transmitting telemetry or prompt data to external services.
How does the plugin handle non-English prompts and coding jargon?
The tool leaves prompts written entirely in non-English languages, slash commands, and foreign scripts untouched while skipping short replies like yes or continue. Developers can adjust word count cutoffs in settings if specialized programming terminology or technical loanwords trigger unintended coaching entries.
What happens when the learning log exceeds four megabytes?
Once the log file surpasses 4 MiB, the terminal pane stops rendering markdown previews and prompts the user to archive the file before generating reviews. Renaming or moving the oversized file allows cc-esol to automatically initialize a fresh, empty log upon the next English prompt.
Sources
Author
Dillip Chowdary
Writes Tech Bytes coverage of AI, engineering, and the tools that actually ship. Editor of Tech Pulse Daily.
Related on Tech Bytes
Advertisement