ireza7/dsh-persian-rtl ↗★ 1

dsh-persian-rtl

自动调整波斯语等文本的从右至左方向 适合需要阅读或输入波斯语等 RTL 语言的用户。

包名
dsh-persian-rtl
兼容性
待验证
版本
1.0.0
许可证
MIT
最近更新
2026年9月19日

同名包的其他仓库

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ireza7/dsh-persian-rtl

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-process members and inline reasoning, reasoning flow nodes)
  • Tool-call / tool-result cells — any data-tool row (including ask_user_question rendered inside the chat flow)
  • Question boxes + plan-review cards (composer-takeover cards)

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 `` element is mounted via ctx.effect (global, no visual output of its own).
  • Pure CSS with attribute selectors over shipped DOM markers (data-chat-flow-kind="assistant-step", data-turn-process-messages, data-tool="ask_user_question"); no slot registrations, no renderer replacement.

License

MIT