Equalang logo

Equalang

Organization
equalang
equalang

Translate whole files with Equalang, keeping their layout - documents (PDF, DOCX, PPTX, XLSX, EPUB, HTML, TXT), subtitles (SRT, VTT), pictures, and audio or video (which come back as translated subtitles) - and transcribe recordings into timed text. Use when the user points at a FILE or a URL of one and wants it translated or transcribed, or wants strings translated in bulk; not for a sentence you can translate yourself.

Overview

Publisherequalang
Repositoryequalang-skill
Skill nameequalang
Stars
69
Forks
0
Bundled files
19
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 19 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by equalang on GitHub. Read the source before you install it.

Installation

Install the Equalang AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/equalang/equalang-skill/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/equalang/equalang-skill.git \
  .claude/skills/equalang
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Equalang in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Equalang on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Equalang is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Equalang

Point it at a file and it uploads the file, waits for the job, and writes the results beside the source. You get paths back, never the file's contents - layout, tables, images and formulas survive, and nothing large enters the conversation.

Work spends the user's credits. Say what it will cost and get their agreement before translate or transcribe. estimate gives the number for a file, for free. PDF formula optimization is off by default and adds 10 credits per original PDF page at the default rate. If enabling it, pass --optimize-math-formula to both estimate and translate; credits_to_translate then includes the surcharge. Never enable it without an available page quote.

Setup

The key is one line, EQUALANG_API_KEY=el_..., in ~/.config/equalang/.env (under $XDG_CONFIG_HOME if that is set): one file per machine, shared with the Equalang MCP server and kept when this skill is reinstalled or updated. The user creates the key at https://equalang.com/api-keys.

bash
dir="${XDG_CONFIG_HOME:-$HOME/.config}/equalang"
mkdir -p "$dir" && (umask 077 && echo 'EQUALANG_API_KEY=el_...' > "$dir/.env")

EQUALANG_API_KEY in the environment wins over the file. Without a key every command answers with how to get one and where it goes. Never invent a key - ask the user.

Commands

Run from this skill's directory; python3 and nothing else is needed. Every command prints one JSON object; --help lists a command's flags.

bash
# What would it cost? Uploads without starting anything; free. `kept_until` says how long the upload is held.
python3 scripts/equalang.py estimate report.pdf
#   -> {"file_id": "...", "credits_to_translate": 12.34, "credits_to_transcribe": null, ...}

# Translate a file. A path, a public URL (Equalang fetches it), or --file-id from estimate.
python3 scripts/equalang.py translate report.pdf --to zh-CN
python3 scripts/equalang.py translate report.pdf --to uk --optimize-math-formula
python3 scripts/equalang.py translate --file-id <file_id> --to zh-CN        # no second upload
python3 scripts/equalang.py translate https://example.com/deck.pptx --to ja -o ./out

# A recording: translated subtitles, or what was said in the language spoken.
python3 scripts/equalang.py translate talk.mp4 --to en --bilingual --format srt --format txt
python3 scripts/equalang.py transcribe interview.mp3 --format srt --format txt

# Strings in bulk (each translated on its own; at most 50 of 5,000 characters, 20,000 per call).
python3 scripts/equalang.py text "Save changes" "Delete project" --to de
# One long plain text - an article, notes, a .md - up to 100,000 characters. Equalang cuts it at sentences: never split it yourself.
python3 scripts/equalang.py text --file notes.md --to ja -o notes.ja.md

# Look a job up again · stop one · the balance · language codes (no key needed)
python3 scripts/equalang.py status <job_id> -o ./out
python3 scripts/equalang.py cancel <job_id>
python3 scripts/equalang.py balance
python3 scripts/equalang.py languages chinese

Reading the output

A finished job prints outputs (each with its path) and credits_charged. Tell the user both. Do not read a produced file back to summarise it unless asked: it is a whole document, and the point of a path is that its contents stay out of the conversation.

A failure prints {"error", "code", "retryable"} and exits 1. Retry only when retryable is true; INSUFFICIENT_CREDITS means the user tops up at https://equalang.com/pricing, not that you try again.

Worth knowing

  • Formats. Documents: pdf, docx, pptx, xlsx, epub, html, txt. Subtitles: srt, vtt. Pictures: jpg, png, webp, bmp. Recordings: mp3, m4a, wav, flac, ogg, aac, opus, mp4, mov, webm, mkv. Up to 100 MB. transcribe takes recordings only.
  • Results never overwrite. They land beside a local source (or in -o DIR, or the current directory for a URL) under the name Equalang gives them; a taken name gets (1). Asking status again about a finished job names the files it already wrote rather than copying them.
  • Minutes, not seconds, for long files. The command waits and prints progress to stderr. Interrupting it does not cancel the job: status <job_id> picks it up, cancel <job_id> stops it. A cancelled or failed job is not charged.
  • A recording is charged for the speech actually heard - silence and music are not - so it usually costs less than estimate said; a document costs what estimate said.
  • Language codes look like en, zh-CN, zh-TW, ja, pt. Text and documents support 152 languages, subject to the deployment's active catalog. Read the live API, never a copied list: languages lists the ones files take, languages --kind text those text takes, and languages chinese finds one by name. Omit --source-language to have it detected.
  • PDF formulas. Add --optimize-math-formula when the user requests formula optimization; it works with a path, URL or --file-id. Off by default; --no-optimize-math-formula explicitly disables it. Other formats reject the enabled option before reserving credits. Do not automatically enable it for every document.
  • Several files? Estimate each, add the numbers up, and ask once - never loop over a folder on your own say-so.
  • The API behind this, for anything the script does not do: https://equalang.com/llms.txt

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Equalang AI skill do?

Translate whole files with Equalang, keeping their layout - documents (PDF, DOCX, PPTX, XLSX, EPUB, HTML, TXT), subtitles (SRT, VTT), pictures, and audio or video (which come back as translated subtitles) - and transcribe recordings into timed text. Use when the user points at a FILE or a URL of one and wants it translated or transcribed, or wants strings translated in bulk; not for a sentence you can translate yourself.

Why use Equalang on TypingMind?

Because you install it once and use it with any model. Equalang is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Equalang in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/equalang/equalang-skill/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Equalang?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Equalang?

As many as you like. As long as a model supports skills, you can use Equalang with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Equalang AI skill free?

Yes. It is published on GitHub by equalang under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇