Agent skill

Translations

by jtenniswood in jtenniswood/espcontrol

Find static user-visible words shown on the physical EspControl device and integrate them into the firmware translation process.

Custom licenceAuto-check passedWriting & Content

Install Translations

skills CLI
$ npx skills add jtenniswood/espcontrol --skill translations -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jtenniswood/espcontrol translations --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jtenniswood/espcontrol.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/translations .claude/skills/translations && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
translations
GitHub stars
1.1k
Token cost
~2.2k tokens
SKILL.md length
639 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
Custom licence

At a glance

Find static user-visible words shown on the physical EspControl device and integrate them into the firmware translation process.

  • Works in 7 steps: Start from a clean feature… → Search for hard-coded user-visible… → Avoid treating src/webserver/ strings as… → …
  • The user asks to add
  • SKILL.md covers Purpose, Scope, Workflow and Search Guidance, plus 2 more sections
  • Calls python3, rg and npm

What it does

Translations is an agent skill from jtenniswood/espcontrol. Find static user-visible words shown on the physical EspControl device and integrate them into the firmware translation process. Use when the user asks to add, audit, fix, or review firmware/device UI translations, hard-coded display text, i18n keys, or physical screen/card/modal/status text in the espcontrol repository.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Translation and Internationalization. It works with Home Assistant. The repository describes itself as: Esphome based smart home control panel.

When your agent uses it

  • The user asks to add
  • Review firmware/device UI translations
  • Hard-coded display text
  • Physical screen/card/modal/status text in the espcontrol repository

Example prompts

  • “/translations”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Start from a clean feature branch/worktree based on latest origin/main unless the user explicitly says otherwise.
  2. Search for hard-coded user-visible strings mainly in
  3. Avoid treating src/webserver/ strings as in scope unless the same string is shared with firmware output and appears on the physical display.
  4. For each candidate string, classify it before editing
  5. For non-English translation files, add a reasonable translation. If uncertain, use the English source text instead of guessing badly.
  6. Regenerate firmware translation output
  7. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit 72cf82c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3
    • rg
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Translations loads about 2.2k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 639 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 639 words (~2,198 tokens).

“Use this skill to move static physical-device UI text into the EspControl firmware translation workflow. Keep the work narrow: firmware display text only, no webserver/setup-configurator-only strings, no Home Assistant dynamic content, and no unrelated refactors.”

— opening of SKILL.md by jtenniswood, Custom licence
name
translations

Read the full SKILL.md on GitHub

Files

Just SKILL.md in .agents/skills/translations of jtenniswood/espcontrol.

Open the folder on GitHubat commit 72cf82c

Compare with similar skills

Translations next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Translations compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Translations this skilljtenniswood/espcontrol1.1k—~2.2kAutomated safety check: PassCustom licence
Translation Diff ExportDevolutions/UniGetUI26k—~1.1kAutomated safety check: PassMIT
Translation Diff TranslateDevolutions/UniGetUI26k—~934Automated safety check: PassMIT
Plane UI Translationmakeplane/plane61k—~16kAutomated safety check: PassAGPL-3.0
Translatetagspaces/tagspaces5.3k—~2.2kAutomated safety check: PassAGPL-3.0
Translation Source SyncDevolutions/UniGetUI26k—~1.2kAutomated safety check: PassMIT

Similar skills

  • Translation Diff Export

    Devolutions/UniGetUI

    Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language.

    26k GitHub stars~1.1k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Translation Diff Translate

    Devolutions/UniGetUI

    Translates a sparse UniGetUI JSON language patch, writes completed entries into the working copy, preserves placeholders and terminology, and prepares the patch for merge-back.

    26k GitHub stars~934 tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Plane UI Translation

    makeplane/plane

    Sets the rules for translating and updating Plane's UI strings across locales: do-not-translate terms, plural forms, placeholders and AI translation review.

    61k GitHub stars~16k tokensUpdated 2 days ago
    Writing & ContentAuto-check passed
  • Translate

    tagspaces/tagspaces

    Translate new or untranslated i18n strings from the English locale files (core.json + peri.json) into all other locales, maintaining consistency with each language's existing translations.

    5.3k GitHub stars~2.2k tokensUpdated today
    Writing & ContentAuto-check passed
  • Translation Source Sync

    Devolutions/UniGetUI

    Synchronizes the UniGetUI English language file with source-code usage, identifies missing translation keys, removes unused entries, reports localization drift, and can reorder locale files to match…

    26k GitHub stars~1.2k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Translate or audit the values in a Video.js locale pack. An agent skill from videojs/video.js.

    40k GitHub stars~723 tokensUpdated yesterday
    Writing & ContentAuto-check passed

More from jtenniswood/espcontrol

All 14 skills in this repo
  • Clean Complete Branches

    jtenniswood/espcontrol

    Clean up completed Git branches and worktrees for this repository both locally and on GitHub.

    1.1k GitHub stars~820 tokensUpdated today
    Auto-check passed
  • Clean Merged Branch Folders

    jtenniswood/espcontrol

    Clean up local branch worktree folders for this repository after their branches or pull requests have merged to main.

    1.1k GitHub stars~813 tokensUpdated today
    Auto-check passed
  • Flash Displays

    jtenniswood/espcontrol

    Flash EspControl display firmware from this repository using ESPHome.

    1.1k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • PR

    jtenniswood/espcontrol

    Review a new or open pull request for this repository with an adversarial security and quality lens.

    1.1k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Release

    jtenniswood/espcontrol

    Create and safely publish a new GitHub release for this repository through a verified draft build, then confirm the related GitHub Actions run.

    1.1k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Review All

    jtenniswood/espcontrol

    Review every open pull request authored by the user in this repository and address actionable unresolved review feedback.

    1.1k GitHub stars~1.5k tokensUpdated today
    Auto-check passed

Works with

Questions about Translations

What does Translations do?

Find static user-visible words shown on the physical EspControl device and integrate them into the firmware translation process. Translations is an agent skill from jtenniswood/espcontrol. Find static user-visible words shown on the physical EspControl device and integrate them into the firmware translation process.

When should I use Translations?

Translations fits situations like: the user asks to add; review firmware/device UI translations; hard-coded display text; physical screen/card/modal/status text in the espcontrol repository.

How do I install Translations in Claude Code?

Run `npx skills add jtenniswood/espcontrol --skill translations -a claude-code`. Or copy the skill folder (.agents/skills/translations in jtenniswood/espcontrol) into .claude/skills/translations in your project. Claude Code loads it when a task matches its description.

How do I install Translations in Codex?

Run `npx skills add jtenniswood/espcontrol --skill translations -a codex`. Or copy the skill folder (.agents/skills/translations in jtenniswood/espcontrol) into .agents/skills/translations in your project. Codex loads it when a task matches its description.

Can I use Translations in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jtenniswood/espcontrol --skill translations -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/translations, .gemini/skills/translations, .github/skills/translations and .opencode/skills/translations in your project.

What does Translations need to run?

Going by SKILL.md and its folder, Translations needs the command-line tools its instructions call (python3, rg and npm). Our summary lists: Python 3.

Does Translations access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Translations safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Translations use?

Translations has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.

How many tokens does Translations use?

About 2.2k tokens (SKILL.md is roughly 8.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Translations?

Skills that share tags, products or a category with Translations: Translation Diff Export (Devolutions/UniGetUI, 26k stars), Translation Diff Translate (Devolutions/UniGetUI, 26k stars), Plane UI Translation (makeplane/plane, 61k stars) and Translate (tagspaces/tagspaces, 5.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Translations?

jtenniswood (a GitHub user) maintains it in jtenniswood/espcontrol, which has 1,091 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 11, 2026.

Source: jtenniswood/espcontrol on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.