salsi skill
A skill and CLI for Persian text: find loanwords and suggest native equivalents without breaking terms, code or quotations.
- 91 ★ on the repository
- Last commit
Extended access
Why this level
- install.sh writes files into the folders of Claude Code, Cursor and other agents, and salsi apply edits text files in place.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/salsiDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- install.sh writes files into the folders of Claude Code, Cursor and other agents, and salsi apply edits text files in place.
This is third-party code. Review the repository files before installing.
What it does
salsi scans Persian text for loanwords and suggests native equivalents. The core is a skill, skills/salsi/SKILL.md, with rules for when a replacement is justified and when not, and a `salsi scan` CLI with `apply`, `lookup`, `domains` and `info` commands. The lexicon of roughly 20 thousand words comes from the Pasban project. The engine understands Persian morphology: half-spaces, Arabic letter variants, suffixes and compound verbs. It skips code blocks, URLs, quotations, HTML and front matter, and protects domain terminology through `--domain` (tech, medical, legal, science, business). Three levels exist: safe, standard and pure. Only safe applies without human review; everything else counts as a suggestion.
Who it is for. Authors, editors and translators writing Persian with Claude Code, Codex or Cursor who want to cut surplus loanwords without breaking terminology.
Good fit when
- An article or documentation in Farsi needs a loanword check.
- An editor reviews a translation and wants to see which replacements are safe.
- CI must flag loanwords in Markdown through `salsi scan docs/**/*.md --level safe --strict`.
- You want to know which sense the Pasban lexicon assigns to a word.
Not a fit when
- The text is not in Persian.
- The reader would not recognize the native variant: the skill's rules put clarity above purity and keep the loanword.
- You need spelling or style editing in general rather than word replacement.
Example request
Check article.md for loanwords, suggest replacements only where the reader will understand them and protect technical terms.Limitations
Python 3.10 or newer is required with no external packages: every install carries the engine and lexicon. Licenses differ: code is MIT, data in salsi/data is ODbL 1.0, so Pasban attribution is required and derived databases stay open. The pure level replaces every word in the lexicon and fits only deliberate lexical purism. For agents that cannot run commands the skill falls back to a 119-row table in reference/core-words.md and must say it works without the full lexicon. Last commit 13 August 2026.
How to disable. Delete the salsi folder from ~/.claude/skills or .claude/skills, the salsi.mdc rule from .cursor/rules and the block in AGENTS.md. The installer places files and starts no global services.
FAQ
How do I install salsi?
Run `git clone https://github.com/pooooooriya/salsi && cd salsi && ./install.sh`. The script finds Claude Code, Codex, Cursor and other tools and asks before installing.
How do safe, standard and pure differ?
safe applies 119 settled rows and suits automation. standard is the default and yields suggestions for review. pure takes the whole lexicon and runs only on request.
Will salsi damage technical terms?
No, terms are protected. The `--domain` option picks the field, and the scan leaves code blocks and quotations alone.
Can I use salsi without an agent?
Yes. The CLI works on its own: `salsi scan`, `salsi apply --diff` and `salsi lookup` need no agent. JSON output suits CI.
Which license covers the lexicon?
Code is MIT, data in `salsi/data` is ODbL 1.0 as an adaptation of the Pasban lexicon. Pasban attribution is required, details are in ATTRIBUTION.md.
Discussion
No questions or reviews yet.
Related
SkillsA skill teaches an agent to write Persian without machine clichés and lay out RTL documents: Word, PDF, PowerPoint, HTML, Excel.
Two anti-slop skills: slopbeth edits writing you publish and slopgent keeps the agent's own replies honest and plain.
A skill that finds AI tells in English prose and edits them surgically; three Python scanners run on their own and the teach command learns your voice
A skill and CLI that strip AI tells from Korean, English, Chinese and Japanese text and check that meaning and numbers stay unchanged
A skill that teaches Claude and Codex to write Finnish by official rules: compound words, cases, punctuation and tone.
A de-AI writing skill: it repairs the narrative architecture of fiction and edits professional documents by their venue rules
README in short
The Persian README explains why naive substitution harms text, shows three protection layers, an install table per tool, CLI commands and the code and data license terms. An English README.en.md exists.
README badge
Original SKILL.md
--- name: salsi description: Write Persian with Persian words. Use when writing, editing, translating or reviewing Persian (Farsi) prose — articles, documentation, posts, essays, UI copy — to replace loanwords with Persian equivalents while leaving technical terminology, proper nouns and code untouched. Also use when the user asks for پارسی سره, سرهنویسی, فارسیسازی, or "make this text more Persian". license: MIT --- # سالسی — Write Persian with Persian words Persian prose is full of borrowed words that have perfectly good Persian equivalents. Replacing them makes writing clearer and more native. Replacing them *carelessly* makes writing wrong — it mangles technical terms, changes meaning, and produces words no reader recognises. This skill is about the difference. ## The one rule that matters **A loanword is only worth replacing when the replacement is at least as clear to the reader.** Purity is never worth clarity. If you are unsure whether a reader would recognise the Persian equivalent, keep the original. ## Workflow 1. **Scan** the text to find candidates: ```bash salsi scan article.md --format json ``` If `salsi` is not on PATH, this skill ships its own copy — run `./bin/salsi` from this skill's directory instead. It needs nothing installed beyond Python 3.10 and carries the full 20,129-word lexicon. Add `--domain tech` (or `medical`, `legal`, `science`, `business`) so the terminology of that field is protected. Add `--topic <subject>` to help the scanner pick the right sense of an ambiguous word. 2. **Read each finding.** Every one carries `level`, `ambiguous`, and a `sense` label per suggestion. Apply the judgement rules below. Most findings will be *rejected* in a technical document — that is the expected outcome, not a failure. 3. **Apply** with your normal editing tools, one considered change at a time. For the settled subset only, `salsi apply article.md` does it mechanically.