dsh-persian-rtl
Manifest valid★ 1Persian (Farsi) RTL fix for DeepSeek Harness: automatic per-paragraph direction for assistant answers, thinking cells, tool cells and question boxes
dsh-persian-rtl
Persian (Farsi) RTL fix for DeepSeek Harness — until RTL is handled officially.
What it does
Fully automatic per-paragraph text direction (unicode-bidi: plaintext): every paragraph follows its own first strong character — Persian paragraphs render right-to-left, English ones stay left-to-right. No buttons, no settings.
Covered surfaces:
- Assistant answers — including while streaming
- User + steering message bubbles — including composer submit echoes
- Thinking / reasoning cells (
turn-processmembers and inline reasoning, reasoning flow nodes) - Tool-call / tool-result cells — any
data-toolrow (includingask_user_questionrendered inside the chat flow) - Question boxes + plan-review cards (composer-takeover cards)
Intelligent mixed-language detection — When a Persian sentence begins with an English word, technical term, or inline code (e.g. React یک کتابخانه است or 1. Node.js را نصب کنید), standard browser first-strong-character heuristics mistakenly classify it as LTR. The plugin dynamically analyzes character composition and enforces RTL base direction with full streaming support.
Latin runs stay intact — code, pre, kbd, and links are isolated LTR, so English words and numbers keep their order inside Persian text instead of jumping around.
Logical geometry fixed — lists, blockquotes, and task checkboxes use inline-start padding/borders, so RTL paragraphs get correctly-sided bullets, quote bars, and gaps.
The composer, sidebar, and settings are left alone, and no shipped renderer is replaced — the plugin only adds CSS.
Install
Pick whichever is easiest — no local clone needed in any of them.
Web UI: open Plugins in the sidebar → install → enter the spec:
github:ireza7/dsh-persian-rtl
Agent tool (Creator mode session):
install_bundle with target = github:ireza7/dsh-persian-rtl
CLI:
dsh plugin --profile web add github:ireza7/dsh-persian-rtl
The bundle takes effect immediately in live profiles (no restart).
Alternatives:
- Full repo URL:
https://github.com/ireza7/dsh-persian-rtl - From a local clone:
install_bundle with target = /path/to/dsh-persian-rtl - From npm (if published):
install_bundle with target = dsh-persian-rtl
To remove it later: remove_bundle with the bundle name.
How it works
- A
<style>element is mounted viactx.effectproviding per-paragraph direction and logical geometry fixes. - A high-performance, batched
MutationObserver(requestAnimationFrame) monitors chat surfaces in real time to identify and correct mixed paragraphs starting with Latin runs, ensuring seamless streaming support without UI flicker. - Clean lifecycle management: unmounting clears the observer, timers, and removes all applied attributes leaving zero residue.
License
MIT
Comments
Loading…
From the same category
by awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
★ 18.3k
CC0-1.0
Python
Oct 10, 2026
by 0xsline
DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.
★ 1.2k
CC0-1.0
Python
Oct 10, 2026
by pax-beehive
Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub
★ 450
MIT
TypeScript
Oct 6, 2026
by xiajiajun516
DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.
★ 176
MIT
TypeScript
Oct 8, 2026
dsh plugin --profile web add dsh-config-managerby yjh051108
推荐组件(非必须):DeepSeek Harness 运行时注入器;已随 dsh-routing-suite 单仓库化保留,本仓库继续维护/发布。
★ 164
TypeScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby jigjoy-ai
A CLI that turns a goal into a pull request - and a sandbox for testing concurrent AI coding agents on the Mozaik runtime.
★ 124
MIT
TypeScript
Oct 2, 2026