ЁЯОЩя╕П dsh-talk

September 7, 2026 ┬╖ View on GitHub

ЁЯОЩя╕П dsh-talk

  • 1024 рд╕реНрдЯреЛрд░ рдЪреИрдирд▓: рдПрдХ рдмрд╛рд░ npm i -g dsh1024, рдлрд┐рд░ dsh1024 plugin --profile web add dsh-talk (deepseek1024.com рдЗрдВрд╕реНрдЯреЙрд▓ рд░реИрдВрдХрд┐рдВрдЧ рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

DeepSeek Harness рдХреЗ рд▓рд┐рдП рд╡реЙрдЗрд╕-рдлрд░реНрд╕реНрдЯ рд╕рддреНрд░ рд▓реВрдк: рдЙрд╕рд╕реЗ рдмреЛрд▓реЗрдВ рдФрд░ рдЙрддреНрддрд░ рд╕реБрдиреЗрдВред

рдорд╛рдЗрдХ рджрдмрд╛рдПрдБ, рдмреЛрд▓реЗрдВ рдФрд░ рдЬрд╡рд╛рдм рдЬрд╝реЛрд░ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ тАФ рдмреЛрд▓рддреЗ рд╣реА рд░реБрдХрд╛рд╡рдЯред

License DSH plugin Node CI Version npm version npm downloads

English ┬╖ чоАф╜Уф╕нцЦЗ ┬╖ Espa├▒ol ┬╖ Portugu├кs ┬╖ рд╣рд┐рдиреНрджреА


рд╕рдВрдЧрддрддрд╛

рд╕рддрд╣рд╕реНрдерд┐рддрд┐
HarnessDeepSeek Harness dsh-v0.1.3-alpha.1 (GitHub tag, 2026-09-06 рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд: рдкреВрд░реНрдг gate chain + profile install smoke)ред npm рдирд┐рд░реНрднрд░рддрд╛ рд▓рд╛рдЗрди 0.1.2-rc.1, peers >=0.1.2-rc.1 <0.2.0ред
Node^22.19.0 || >=24.0.0
рдмреНрд░рд╛рдЙрдЬрд╝рд░Web Speech + MediaRecorder (Chrome/Edge рдореЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда); рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП host рдХреЗ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрд╢рди/TTS рдЗрдВрдЬрди

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ

dsh-talk рд╡реЙрдЗрд╕ рд▓реВрдк рдХреЛ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдмрдВрдж рдХрд░рддрд╛ рд╣реИ:

  • speak рдЯреВрд▓ тАФ рдПрдЬреЗрдВрдЯ рдЕрдкрдиреЗ рдЙрддреНрддрд░ рдЬрд╝реЛрд░ рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИред TTS рдЗрдВрдЬрди: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЙрдЗрд╕, edge-tts (рдиреЗрдЯрд╡рд░реНрдХ рдиреНрдпреВрд░рд▓ рд╡реЙрдЗрд╕) рдпрд╛ piper (рд╕реНрдерд╛рдиреАрдп)ред рдСрдбрд┐рдпреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдмрдЬрддрд╛ рд╣реИ; рдЬреЛ host рдЗрд╕реЗ рд╡рд╣рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣рд╛рдБ рд╕рддреНрд░ рд▓реЙрдЧ рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝ рдХреА рдЧрдИ рдмрд╛рдд рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ (рд╕реБрд░рдХреНрд╖рд╛ рд╕реАрдорд╛рдПрдБ рджреЗрдЦреЗрдВ)ред
  • рдХрдВрдкреЛрдЬрд╝рд░ рдорд╛рдЗрдХ рдмрдЯрди тАФ рджрдмрд╛рдПрдБ, рдмреЛрд▓реЗрдВ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрд╢рди рдЗрдирдкреБрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рднрд░ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рд╕реАрдзреЗ рд╕рдмрдорд┐рдЯ рд╣реЛрддрд╛ рд╣реИ)ред STT рдЗрдВрдЬрди: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ Web Speech (рдЕрдВрддрд░рд┐рдо рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕рд╣рд┐рдд), FunASR HTTP рд╕рд░реНрд╡рд░ рдпрд╛ рд╕реНрдерд╛рдиреАрдп whisper.cppред
  • рдмреЛрд▓рддреЗ рд╣реА рд░реБрдХрд╛рд╡рдЯ тАФ рдмреЛрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рдкреНрд▓реЗрдмреИрдХ рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИ (clientтЖТhost, talk Remote рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░)ред
  • рдЗрд╡реЗрдВрдЯ рдШреЛрд╖рдгрд╛рдПрдБ тАФ рдЯрд░реНрди рдкреВрд░рд╛ рд╣реЛрдирд╛, рд▓рдВрдмрд┐рдд рд╕реНрд╡реАрдХреГрддрд┐рдпрд╛рдБ (waterfall-рд╕реБрд░рдХреНрд╖рд┐рдд: рдЧреЗрдЯ рдХрднреА рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛) рдФрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдБ, рдореНрдпреВрдЯ рд╕реНрд╡рд┐рдЪ рд╡ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд╛рдХреНрдпреЛрдВ рд╕рд╣рд┐рддред
  • рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЯреИрдм тАФ рдЗрдВрдЬрди/рднрд╛рд╖рд╛ рдЪрдпрди рдФрд░ рдШреЛрд╖рдгрд╛ рд╕реНрд╡рд┐рдЪ, append-only рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓-рдкреИрдЪ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ (рдмреИрдХрдЕрдк рд╕рд╣рд┐рдд)ред

рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд

# 1. рдмрдВрдбрд▓ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
dsh plugin --profile web add "github:PerryLink/dsh-talk#main"

# рдпрд╛ npm рд╕реЗ (рдкреНрд░рдХрд╛рд╢рд┐рдд рд░рд┐рд▓реАрдЬрд╝)
dsh plugin --profile web add dsh-talk

# 2. рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдкрдВрдХреНрддрд┐ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ
dsh --profile web --dump-config | grep -A2 'id: talk'

рдлрд┐рд░ рдХрдВрдкреЛрдЬрд╝рд░ рдХреЗ рдкрд╛рд╕ рдорд╛рдЗрдХ рджрдмрд╛рдПрдБ рдФрд░ рдмреЛрд▓реЗрдВ; рдпрд╛ рдПрдЬреЗрдВрдЯ рд╕реЗ рдмреЛрд▓рдиреЗ рдХреЛ рдХрд╣реЗрдВ:

> speak рдЯреВрд▓ рд╕реЗ "рдирдорд╕реНрддреЗ" рдХрд╣реЛред

рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓

  • git рдЪреИрдирд▓ (рдирд╡реАрдирддрдо main): dsh plugin --profile web add "github:PerryLink/dsh-talk#main" тАФ prepare рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗрд╡рд▓ рдкреНрд░реЛрдбрдХреНрд╢рди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рд╕реЗ рдмрд┐рд▓реНрдб рдХрд░рддреА рд╣реИред
  • npm рдЪреИрдирд▓ (рдкреНрд░рдХрд╛рд╢рд┐рдд рд░рд┐рд▓реАрдЬрд╝): dsh plugin --profile web add dsh-talkред
  • tarball рдЪреИрдирд▓: рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ pnpm pack, рдлрд┐рд░ dsh plugin --profile web add ./dsh-talk-<version>.tgzред
  • рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓: dsh plugin --profile web remove dsh-talk (рдпрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкреИрдЪ рд╕реЗ рдкрдВрдХреНрддрд┐ рд╣рдЯрд╛рдПрдБ)ред

рдпрджрд┐ pnpm рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП ERR_PNPM_IGNORED_BUILDS рджрд┐рдЦрд╛рддрд╛ рд╣реИ (esbuild рдХрд╛ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдмрд╛рдЗрдирд░реА рд╕рддреНрдпрд╛рдкрди), рддреЛ рдЕрдкрдиреЗ pnpm-workspace.yaml рдореЗрдВ allowBuilds: { esbuild: true } рдЬреЛрдбрд╝реЗрдВ тАФ dsh CLI рд╕рдЯреАрдХ рд╕реНрдирд┐рдкреЗрдЯ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

рд╕рднреА рд╕рдорд╛рдпреЛрдЬрди Schemastery Config рдлрд╝реАрд▓реНрдб рд╣реИрдВ (cordis.yml рд╕реЗ рдмрджрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред cordis.patch.yml рд╣рд░ рдХреБрдВрдЬреА рдХреЛ рдЗрдирд▓рд╛рдЗрди рд╕рдордЭрд╛рддрд╛ рд╣реИред

рдХреБрдВрдЬреАрдбрд┐рдлрд╝реЙрд▓реНрдЯрдЕрд░реНрде
record.enabledtrueрдХрдВрдкреЛрдЬрд╝рд░ рдорд╛рдЗрдХ рдмрдЯрди рджрд┐рдЦрд╛рдПрдБ
record.hotkey(рдХреЛрдИ рдирд╣реАрдВ)рд╡реИрдХрд▓реНрдкрд┐рдХ рдЯреЙрдЧрд▓ рд╣реЙрдЯрдХреА, рдЬреИрд╕реЗ "alt+r"
record.maxSeconds60рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реАрдорд╛ рд╕реЗрдХрдВрдб рдореЗрдВ (1..600)
record.autoSubmitfalseрдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ (false = рдбреНрд░рд╛рдлреНрдЯ рднрд░реЗрдВ)
record.vad.enabled / silenceMs / energyThresholdtrue / 1500 / 0.01рдзреНрд╡рдирд┐-рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд╣рдЪрд╛рди: рдореМрди рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реНрд╡рддрдГ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (AudioContext рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рдореИрдиреБрдЕрд▓ рд╕реНрдЯреЙрдк)
stt.engineautoauto / web / funasr / whisper; auto рдкрд╣рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдЗрдВрдЬрди, рдлрд┐рд░ Web Speech
stt.languageautoBCP-47 рднрд╛рд╖рд╛ рдпрд╛ auto
stt.interimtrueрдЕрдВрддрд░рд┐рдо рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрд╢рди рджрд┐рдЦрд╛рдПрдБ (Web Speech)
stt.silenceFinaliseMs4000рдЗрддрдиреА рдорд┐рд▓реАрд╕реЗрдХрдВрдб рддрдХ рдЖрд╡рд╛рдЬрд╝ рди рдЖрдиреЗ рдкрд░ рд▓рдЧрд╛рддрд╛рд░ Web Speech рд░реЛрдХреЗрдВ (500..15000)
stt.funasr.url(рдХреЛрдИ рдирд╣реАрдВ)FunASR рдЗрдиреНрдлрд╝рд░реЗрдВрд╕ рдПрдВрдбрдкреЙрдЗрдВрдЯ; funasr рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ
stt.whisper.modelPath(рдХреЛрдИ рдирд╣реАрдВ)whisper.cpp рдореЙрдбрд▓; whisper рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ
tts.engineautoauto / browser / edge-tts / piper; auto рдкрд╣рд▓реЗ piper, рдлрд┐рд░ edge-tts, рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЙрдЗрд╕
tts.rate0edge-tts/piper рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдСрдлрд╝рд╕реЗрдЯ рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ (-50..50)
tts.fallbackToBrowsertrueрд╕реНрдерд╛рдиреАрдп рдЗрдВрдЬрди рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЙрдЗрд╕ рдкрд░ рдЧрд┐рд░реЗрдВ
tts.browser.voiceName(рдХреЛрдИ рдирд╣реАрдВ)рдкрд╕рдВрджреАрджрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЙрдЗрд╕ рдирд╛рдо; рди рдорд┐рд▓рдиреЗ рдкрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ
tts.browser.rate1рдмреНрд░рд╛рдЙрдЬрд╝рд░ SpeechSynthesis рдЧрддрд┐ (0.1..10)
tts.browser.pitch1рдмреНрд░рд╛рдЙрдЬрд╝рд░ SpeechSynthesis рдкрд┐рдЪ (0..2)
tts.piper.modelPath(рдХреЛрдИ рдирд╣реАрдВ)piper рд╡реЙрдЗрд╕ рдореЙрдбрд▓; piper рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ
announce.enabledtrueрдШреЛрд╖рдгрд╛рдУрдВ рдХрд╛ рдорд╛рд╕реНрдЯрд░ рд╕реНрд╡рд┐рдЪ
announce.onTurnEnd / onApproval / onErrortrueрдХреМрди рд╕реЗ рдЗрд╡реЗрдВрдЯ рдмреЛрд▓реЗ рдЬрд╛рдПрдБ
announce.messages.*"Turn complete." рдЖрджрд┐рдмреЛрд▓реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд╛рдХреНрдп
interrupttrueрдмреЛрд▓рддреЗ рд╣реА рдЪрд▓рддрд╛ рдкреНрд▓реЗрдмреИрдХ рд░реБрдХрддрд╛ рд╣реИ
maxSpeakChars20000speak рдЯреВрд▓ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреА рд╕реАрдорд╛ (1..100000)
maxAudioCacheBytes8388608рдореЗрдореЛрд░реА рдореЗрдВ рд╕рд┐рдВрдереЗрд╕рд╛рдЗрдЬрд╝реНрдб рдСрдбрд┐рдпреЛ рдХреИрд╢ рд╕реАрдорд╛ (1 MiB..64 MiB)

stt.silenceFinaliseMs рдФрд░ record.vad.silenceMs рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрдВрддреНрд░ рд╣реИрдВ: рдкрд╣рд▓рд╛ рд▓рдЧрд╛рддрд╛рд░ Web Speech рдкрд╣рдЪрд╛рди рдореЗрдВ рдЖрд╡рд╛рдЬрд╝ рди рдорд┐рд▓рдиреЗ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрддрд╛ рд╣реИ; рджреВрд╕рд░рд╛ MediaRecorder рдХрд╛ рдКрд░реНрдЬрд╛-рдЖрдзрд╛рд░рд┐рдд рдбрд┐рдЯреЗрдХреНрдЯрд░ рд╣реИ рдЬреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рдФрд░ record.autoSubmit рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рдЙрд╕реЗ рднреЗрдЬ рджреЗрддрд╛ рд╣реИ)ред рджреЛрдиреЛрдВ рдЕрд▓рдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдИ рд╕рд╛рдЭрд╛ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд░рдЦрддреЗред

рдЯреВрд▓ рдФрд░ рд╕рддрд╣реЗрдВ

рд╕рддрд╣рдкреНрд░рдХрд╛рд░рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
speakрдЯреВрд▓рдЯреЗрдХреНрд╕реНрдЯ рдЬрд╝реЛрд░ рд╕реЗ рдмреЛрд▓рддрд╛ рд╣реИ (browser/edge-tts/piper); рдкреНрд░рддрд┐-рдХреЙрд▓ рдЗрдВрдЬрди/рд╡реЙрдЗрд╕ рдУрд╡рд░рд░рд╛рдЗрдб; рдХреИрдирдирд┐рдХрд▓ JSON рдкрд░рд┐рдгрд╛рдо
рдорд╛рдЗрдХ рдмрдЯрдиconversation.input.left рд╕реНрд▓реЙрдЯрд░рд┐рдХреЙрд░реНрдб тЖТ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд╛рдЗрдм тЖТ рдбреНрд░рд╛рдлреНрдЯ рднрд░реЗрдВ (рдпрд╛ рд╕рдмрдорд┐рдЯ); рджрдмрд╛рддреЗ рд╣реА рд░реБрдХрд╛рд╡рдЯ
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЯреИрдмsettings.plugins.tab (id talk)рдЗрдВрдЬрди/рднрд╛рд╖рд╛/рдШреЛрд╖рдгрд╛ рд╕реНрд╡рд┐рдЪ; append-only рд╕рд╣реЗрдЬ
talk:*Typert Remotestatus, audio, transcribe, applySettings, interrupt (host рдиреЗрдорд╕реНрдкреЗрд╕)

рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдФрд░ рдбреЗрдЯрд╛

  • рдЕрдиреБрдорддрд┐рдпрд╛рдБ: рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ рдмрд╛рдЗрдЯ-рд╕реАрдорд┐рдд рдЗрди-рдореЗрдореЛрд░реА рдСрдбрд┐рдпреЛ рдХреИрд╢ рд░рдЦрддрд╛ рд╣реИ; рдорд╛рдЗрдХ рдЕрдиреБрдорддрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░-рдордзреНрдпрд╕реНрде рд╣реИред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЯреИрдм рдХреЗрд╡рд▓ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреИрдЪ рдЦрдВрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдмреИрдХрдЕрдк рд╕рд╣рд┐рдд) тАФ рдлрд╝рд╛рдЗрд▓ рдХрднреА рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ред
  • рдбреЗрдЯрд╛: рдСрдбрд┐рдпреЛ рдХрднреА рдореЙрдбрд▓ рд╕рдВрджрд░реНрдн рдпрд╛ рд╕рддреНрд░ рд▓реЙрдЧ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддрд╛ред рдЬрд╣рд╛рдБ host рдХрд╛ рд╕рддреНрд░ рд╢рдмреНрджрд╛рд╡рд▓реА рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, dsh-talk/speech рдЗрд╡реЗрдВрдЯ рдЙрдЪреНрдЪрд╛рд░рдг id, рдЗрдВрдЬрди, рдХрд╛рд░рдг, рдЖрдХрд╛рд░, рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЙрдЗрд╕, рдЧрддрд┐ рдФрд░ рдкрд┐рдЪ рд░рдЦрддрд╛ рд╣реИ; рдПрдирд╡рд▓рдк-рд░рд╣рд┐рдд host рдкрд░ рдпрд╣ рдЗрд╡реЗрдВрдЯ рд▓рд┐рдЦрд╛ рд╣реА рдирд╣реАрдВ рдЬрд╛рддрд╛ред рд╣рд░ рдбрд┐рд╕реНрдкреНрд▓реЗ/рд▓реЙрдЧ рд╕рддрд╣ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓, JWT, bearer рд╣реЗрдбрд░ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рдкрдереЛрдВ рдХреЛ рд░рд┐рдбреИрдХреНрдЯ рдХрд░рддреА рд╣реИред
  • рдиреЗрдЯрд╡рд░реНрдХ: рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЗрдВрдЬрди рд╕реЗ рд╕рдВрдкрд░реНрдХ рд╣реЛрддрд╛ рд╣реИред edge-tts рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рдВрдереЗрд╕рд┐рд╕ рдХрд░рддрд╛ рд╣реИ, FunASR рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ Chrome рдХрд╛ webkitSpeechRecognition рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдлрд╝реЛрди рдСрдбрд┐рдпреЛ Google рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ; рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ speechSynthesis playback рд╕реНрдерд╛рдиреАрдп рд░рд╣рддрд╛ рд╣реИред

рд╕реБрд░рдХреНрд╖рд╛ рд╕реАрдорд╛рдПрдБ

  • рдореЙрдбрд▓-рджреГрд╢реНрдп тЯ║ рд▓реЙрдЧреНрдб тАФ рдореЙрдбрд▓ рдХреЗрд╡рд▓ speak рдЯреВрд▓ рдХрд╛ рдХреИрдирдирд┐рдХрд▓ рдорд╛рди рдФрд░ рд░реЗрдВрдбрд░ рдЯреЗрдХреНрд╕реНрдЯ рджреЗрдЦрддрд╛ рд╣реИред dsh-talk/speech рдЗрд╡реЗрдВрдЯ рдХреЗрд╡рд▓ рддрдм рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм host рдЗрд╕реЗ рд╡рд╣рди рдХрд░ рд╕рдХреЗ (рд╣реЛрд╕реНрдЯ рд╕рдВрдЧрддрддрд╛ рджреЗрдЦреЗрдВ); tool/call + tool/result рдЗрд╡реЗрдВрдЯ рд╣рдореЗрд╢рд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдпреЛрдЧреНрдп рдирд┐рд╢рд╛рди рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВред
  • рд╕реНрд╡реАрдХреГрддрд┐ рдШреЛрд╖рдгрд╛рдПрдБ рдХрднреА рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддреАрдВ тАФ approval/request рд▓рд┐рд╕рдирд░ рд╣рдореЗрд╢рд╛ next() рдмреБрд▓рд╛рддрд╛ рд╣реИред
  • рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝реНрдб рдЖрдЙрдЯрдкреБрдЯ тАФ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рдСрдбрд┐рдпреЛ рдкрде рд▓реЙрдЧ рдпрд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрддреЗред
  • рд╣реЛрд╕реНрдЯ рд╕рдВрдЧрддрддрд╛ тАФ dsh-talk/speech рдЗрд╡реЗрдВрдЯ рдПрдХ рдЕрдиреБрдХреВрд▓реА рдЧреЗрдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд┐рди host рдХреА рдЬреНрдЮрд╛рдд-рдкреНрд░рдХрд╛рд░ рд╢рдмреНрджрд╛рд╡рд▓реА рдЗрд╕ рдЗрд╡реЗрдВрдЯ рдХреЛ рдХрд╡рд░ рдХрд░рддреА рд╣реИ рд╡реЗ рдЗрд╕реЗ рд╕реАрдзреЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ; ignorable рд╡рд┐рдХрд▓реНрдк рд╡рд╛рд▓реЗ host рдЗрд╕реЗ рдорд╛рд░реНрдХрд░ рд╕рд╣рд┐рдд рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ; рдПрдирд╡рд▓рдк-рд░рд╣рд┐рдд host тАФ 0.1.1-rc.2 рддрдХ рдХреА рд╣рд░ рдЬрд╛рд░реА рд▓рд╛рдЗрди, 0.1.2-alpha рд▓рд╛рдЗрди, рдФрд░ 0.1.2-rc.1 рд▓рд╛рдЗрди, рдЬрд┐рд╕рдХрд╛ Session.append ignorable рдорд╛рд░реНрдХрд░ рд╕реНрдЯреИрдореНрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдПрдирд╡рд▓рдк рдлрд╝реАрд▓реНрдб рдкрдарди рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ тАФ рдХреЛрдИ append рдирд╣реАрдВ рдкрд╛рддреЗ, рдЗрд╕рд▓рд┐рдП рдЙрди рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╕реНрдкреАрдЪ рдХрднреА рд╕рддреНрд░ рд▓реЙрдЧ рдХреЛ рджреВрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреАред рд╡рд╣рд╛рдБ live playback рдЗрддрд┐рд╣рд╛рд╕ рдЦрд╛рд▓реА рд░рд╣рддрд╛ рд╣реИ рдФрд░ speak рдЯреВрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реА рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдпреЛрдЧреНрдп рдирд┐рд╢рд╛рди рд╣реИрдВред
  • Fail loud тАФ рдЕрдорд╛рдиреНрдп рдЗрдВрдЬрди, рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рдорд╛рди рдФрд░ рдмрд┐рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбрд▓/рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рдЗрдВрдЬрди рдорд╛рдЙрдВрдЯ рдкрд░ рдЕрд╕рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВред

рдЬреНрдЮрд╛рдд рд╕реАрдорд╛рдПрдБ

  • рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди: Web Speech рдФрд░ MediaRecorder рдХреНрд╖рдорддрд╛-рдкрд╣рдЪрд╛рди рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ; рдмрд┐рдирд╛ рдЙрдирдХреЗ рдмрдЯрди рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрдиреЗ рдкрд░ host рдЗрдВрдЬрди (FunASR/whisper.cpp) рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд╛рдЗрдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • рд╕реНрдерд╛рдиреАрдп рдЗрдВрдЬрди рдЖрдкрдХреА рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИрдВ: edge-tts, piper, whisper.cpp рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рдореЙрдбрд▓ рдЕрд▓рдЧ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рд╣реЛрддреЗ рд╣реИрдВред
  • рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдкрдиреЗ рдиреЗрдЯрд┐рд╡ MediaRecorder рдХреЛрдбреЗрдХ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ; whisper.cpp рдХреЛ WAV рд░рд┐рдХреЙрд░реНрдбрд░ рдпрд╛ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
  • рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд░реАрд▓реЛрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ: рдЯреИрдм рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкреИрдЪ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ; рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд░реАрд▓реЛрдб (рдпрд╛ рд╡реЗрдм-рдРрдк рдкреБрдирдГ рдЖрд░рдВрдн) рдмрджрд▓рд╛рд╡ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред
  • рдПрдирд╡рд▓рдк-рд░рд╣рд┐рдд host рдкрд░ live playback рдЗрддрд┐рд╣рд╛рд╕ рдЦрд╛рд▓реА рд░рд╣рддрд╛ рд╣реИ: 0.1.1-rc.2, 0.1.2-alpha рд▓рд╛рдЗрди, рдФрд░ 0.1.2-rc.1 рдкрд░ host рдХреА рд╢рдмреНрджрд╛рд╡рд▓реА dsh-talk/speech рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреА, рдЗрд╕рд▓рд┐рдП рдЧреЗрдЯ рдХреБрдЫ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рд╕рддреНрд░-рд╕реНрддрд░реАрдп playback рд╕реВрдЪреА рдЦрд╛рд▓реА рд░рд╣рддреА рд╣реИред рд╕реНрдкреАрдЪ рд╕реНрд╡рдпрдВ, рдорд╛рдЗрдХ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЯреИрдм рдФрд░ рдЯреВрд▓ рдЕрдкреНрд░рднрд╛рд╡рд┐рдд рд░рд╣рддреЗ рд╣реИрдВред
  • dsh-talk тЙд 0.2.1 рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдкреБрд░рд╛рдиреЗ рд▓реЙрдЧ рдХреЛ cold load рд╕реЗ рдкрд╣рд▓реЗ рдорд░рдореНрдордд рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛ рд╕рдХрддреА рд╣реИ: 0.2.1 рддрдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдмрд┐рдирд╛ рдорд╛рд░реНрдХрд░ рд╡рд╛рд▓реЗ dsh-talk/speech events рдЬреЛрдбрд╝рддреЗ рдереЗред 0.1.0-rc.7 рдпрд╛ рдирдП host рдкрд░, рдЬрд┐рд╕ session рдХреА log рдореЗрдВ рдпреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реЛрдВ рдЙрд╕рдХрд╛ рдЕрдЧрд▓рд╛ cold load SessionFormatUnsupportedError рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИред рд╕реБрдзрд╛рд░: host рд░реЛрдХреЗрдВ, session рдХреА .jsonl log рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдВ, рд╣рд░ рдЙрд╕ JSON рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╢реАрд░реНрд╖-рд╕реНрддрд░ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ "ignorable":true рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рд╕рдХрд╛ "type" "dsh-talk/speech" рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реБрд░реБрдЖрддреА { рдХреЗ рдареАрдХ рдмрд╛рдж "ignorable":true, рдбрд╛рд▓реЗрдВ), рдлрд┐рд░ session рджреЛрдмрд╛рд░рд╛ рдЦреЛрд▓реЗрдВред рдмрд╛рдХреА рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рдФрд░ рдХреБрдЫ рднреА рдЦреЛрддрд╛ рдирд╣реАрдВ; рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдирдП append рдХрднреА рдмрд┐рдирд╛-рдорд╛рд░реНрдХрд░ рдЗрд╡реЗрдВрдЯ рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗред

рд╡рд┐рдХрд╛рд╕

pnpm install        # node ^22.19 || >=24
pnpm run typecheck  # tsc: src + tests рд╕реНрдерд╛рдиреАрдп рд╣рд╛рд░реНрдиреЗрд╕ рдЪреЗрдХрдЖрдЙрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдз
pnpm run typecheck:ci  # tsc рдкреНрд░рдХрд╛рд╢рд┐рдд 0.1.2-rc.1 рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз (рдмрд┐рдирд╛ paths)
pnpm test           # vitest: 77 рдЯреЗрд╕реНрдЯ, 13 рд╕реБрдЗрдЯ
pnpm run build      # tsc рдШреЛрд╖рдгрд╛рдПрдБ + tsdown рдмрдВрдбрд▓ (lib/)
pnpm run verify:self-contained  # рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдкреЗрдХ registry рд╕реЗ рд╣рд▓ рд╣реЛрддреА рд╣реИрдВ
pnpm run verify:artifacts       # рдирд┐рд░реНрдорд┐рдд ESM рдлрд╝реЗрд╕ + рдХреНрд▓рд╛рдЗрдВрдЯ ModuleLoader рд╣реИрдВрдбрд╢реЗрдХ
pnpm pack           # рдкреНрд░рдХрд╛рд╢рд┐рдд tarball

Topics

dsh, dsh-plugin, deepseek-harness, deepseek, cordis, voice, speech, tts, stt, speech-to-text, text-to-speech, microphone

Contributors

  • @PerryLink тАФ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдореЗрдВрдЯреЗрдирд░: рд╡реЙрдЗрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди, рд╕реНрдкреАрдЪ рдЗрдВрдЬрди, рдорд╛рдЗрдХ рд░рд┐рдХреЙрд░реНрдбрд░, рдЗрд╡реЗрдВрдЯ рдШреЛрд╖рдгрд╛рдПрдБ, рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдпреВрдирд┐рдЯ рдФрд░ рдкрд╛рдБрдЪ-рднрд╛рд╖рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ред

рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ PerryLink рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░рдХреНрд╖рд┐рдд 37 DeepSeek Harness рдкреНрд▓рдЧрдЗрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рднреА рдХрд░реЗрдВрдЧреЗ:

PluginOne-liner
dsh-auto-reviewрдЕрдиреБрдореЛрджрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рджреНрд╡рд┐рддреАрдп-рдореЙрдбрд▓ рд╕реНрд╡рддрдГ-рд╕рдореАрдХреНрд╖рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓-рдмрдВрдж
dsh-background-agentsрд╡реЗрдм UI рд╕рд╛рдЗрдбрдмрд╛рд░, рд╕рдВрджреЗрд╢ рдФрд░ рдЕрд╡рд░реЛрдзрди рдХреЗ рд╕рд╛рде рдЯрд┐рдХрд╛рдК рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд╛рдЗрд▓реНрдб рдПрдЬреЗрдВрдЯ
dsh-budgetDeepSeek Harness рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдкреНрд░рд╢рд╛рд╕рди: рдмрдЬрдЯ, рдХрд╛рд░реНрдмрди рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдПрдХ рдкреИрдирд▓ рдореЗрдВред
dsh-checkpoint-rewindClaude Code /rewind-рд╕рдорддреБрд▓реНрдп: рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕рддреНрд░ рдлрд╝реЙрд░реНрдХ, рдПрдХ-рдмрд╛рд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛
dsh-claude-moveClaude Code рд╕рддреНрд░, рдореЗрдореЛрд░реА, рдХреМрд╢рд▓ рдФрд░ CLAUDE.md рдХреЛ DSH рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
dsh-clickDeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЗрдЯрд┐рд╡ рдбреЗрд╕реНрдХрдЯреЙрдк рдирд┐рдпрдВрддреНрд░рдг тАФ Windows рдкрд╣рд▓реЗред
dsh-composer-historyрд╡реЗрдм рдХрдВрдкреЛрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓-рд╢реИрд▓реА рдЗрдирдкреБрдЯ рдЗрддрд┐рд╣рд╛рд╕: рддреАрд░, Ctrl+R рдЦреЛрдЬ
dsh-data-qualityрдбреЗрдЯрд╛рд╕реЗрдЯ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рдБрдЪ рд╡ рдЙрджреНрдзрд░рдг рд╕рддреНрдпрд╛рдкрди (рдпрд╣рд╛рдБ рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрдЦреНрдпрд╛-рд╕реЗрддреБ)
dsh-defendDeepSeek Harness рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдореНрдкреНрдЯ-рдЗрдВрдЬреЗрдХреНрд╢рди, рдЬреЗрд▓рдмреНрд░реЗрдХ рдФрд░ рд╕реАрдХреНрд░реЗрдЯ-рд▓реАрдХ рд░рдХреНрд╖рд╛ред
dsh-doublecheckрдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ-рдЕрдиреБрд╢рд╛рд╕рди рд░рдХреНрд╖рдХ: рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдкреВрдЫрддрд╛рдЫ, рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░, рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕рдореАрдХреНрд╖рд╛
dsh-drawDeepSeek Harness рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рд╕реНрдереИрддрд┐рдХ-рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рд░реВрдЯрд┐рдВрдЧред
dsh-fastDeepSeek Harness рдХреЗ рд▓рд┐рдП рд░реАрдб-рдУрдирд▓реА рдкреНрд░рджрд░реНрд╢рди рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ред
dsh-fund-researchрдЪреАрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореНрдпреВрдЪреБрдЕрд▓ рдлрдВрдб рдХреЗ рд▓рд┐рдП рдирд┐рдпрддрд╛рддреНрдордХ рдЕрдиреБрд╕рдВрдзрд╛рди рд░рд┐рдкреЛрд░реНрдЯ
dsh-githubDSH рдХреЗ рд▓рд┐рдП GitHub PR/issues рдПрдХреАрдХрд░рдг, рд╣рд░ рд▓реЗрдЦрди рдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд
dsh-industry-researchрдЙрджреНрдпреЛрдЧ-рдЕрдиреБрд╕рдВрдзрд╛рди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЬреЛ рдЗрд╕ рдкреНрд▓рдЧрд┐рди рдХреЗ ctx.researchReport.assemble рд╕реЗ рдбрд┐рд▓реАрд╡рд░реЗрдмрд▓ рд╕реАрд▓ рдХрд░рддрд╛ рд╣реИ
dsh-libraryDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреНрдЮрд╛рдирдХреЛрд╢ред
dsh-local-aiDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп-рдореЙрдбрд▓ (Ollama) рдПрдХреАрдХрд░рдгред
dsh-lsp-actionsрднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ LSP рдирд┐рджрд╛рди, рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдкреВрд░реНрдгрддрд╛, рдХреЛрдб рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рдирд╛рдо рдмрджрд▓рдирд╛
dsh-maskPII рдорд╛рд╕реНрдХрд┐рдВрдЧ рдорд┐рдбрд▓рд╡реЗрдпрд░: рдореЙрдбрд▓ рд╕реАрдорд╛ рдкрд░ рдЕрдирд╛рдо рдХрд░реЗрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рд▓реЗрдпрд░ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
dsh-mcp-panelрдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓рд╛ MCP рд░рдирдЯрд╛рдЗрдо рдкреИрдирд▓: /mcp рдХрдорд╛рдВрдб + рд╕реНрдерд┐рддрд┐, рдЯреВрд▓ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ Settings рдЯреИрдм
dsh-mementoрдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд рдХреНрд░реЙрд╕-рд╕рддреНрд░ рдореЗрдореЛрд░реА: ctx.memory рд╕реАрдо + SQLite + рдореЗрдореЛрд░реА рдЯреВрд▓
dsh-observeDeepSeek Harness рдХреЗ рд▓рд┐рдП OpenTelemetry рдФрд░ Langfuse рдЕрд╡рд▓реЛрдХрдиреАрдпрддрд╛ рдирд┐рд░реНрдпрд╛рддрдХред
dsh-output-stylesClaude Code outputStyles-рд╕рдорддреБрд▓реНрдп рд░рдирдЯрд╛рдЗрдо рд╢реИрд▓реА рдмрджрд▓рд╛рд╡
dsh-permission-rulesрдСрдбрд┐рдЯ рдХреЗ рд╕рд╛рде Claude Code-рд╢реИрд▓реА рдШреЛрд╖рдгрд╛рддреНрдордХ allow/deny/ask рдЕрдиреБрдорддрд┐ рдирд┐рдпрдо
dsh-personal-directiveрд╢реАрд░реНрд╖-рдмрд╛рд░ рдЯреЙрдЧрд▓ рдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рдирд┐рд░реНрджреЗрд╢ рдЗрдВрдЬреЗрдХреНрдЯрд░ (рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг)
dsh-plugin-guideрдорд╛рдБрдЧ рдкрд░ рдПрдЬреЗрдВрдЯ рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓рдЧрдЗрди-рд╡рд┐рдХрд╛рд╕ рдЬреНрдЮрд╛рди рдЖрдзрд╛рд░
dsh-reachрдорд▓реНрдЯреА-рдЪреИрдирд▓ рдЕрдиреБрдореЛрджрди/рдкреНрд░рд╢реНрди рдмреНрд░рд┐рдЬ: WeChat/Telegram/Feishu, рд╕рддреНрд░ рдХрдВрд╕реЛрд▓
dsh-research-reportрд╕рд╛рдордЧреНрд░реА-рдкрддрд╛ рд╕рд╛рдХреНрд╖реНрдп рдФрд░ рд╕реАрд▓рдмрдВрдж рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╡рд╛рд▓рд╛ рд╕рддреНрдпрд╛рдкрди-рдпреЛрдЧреНрдп рдЕрдиреБрд╕рдВрдзрд╛рди-рд░рд┐рдкреЛрд░реНрдЯ рдЗрдВрдЬрди
dsh-scoreDeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреА рдмрд╣реБ-рдЖрдпрд╛рдореА рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрдХреЛрд░рд┐рдВрдЧред
dsh-session-pinрдЯрд┐рдХрд╛рдК рдХреНрд░рдо рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рд╕рддреНрд░ рдкрд┐рди рдХрд░реЗрдВ
dsh-session-syncDeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдбрд┐рд╡рд╛рдЗрд╕ рд╕рддреНрд░ рд╕рд┐рдВрдХ тАФ рдЖрдкрдХреЗ рд╕рддреНрд░ рд╕реНрдЯреЛрд░ рдХрд╛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд git рдорд┐рд░рд░ред
dsh-skill-pack-securityрд╕реБрд░рдХреНрд╖рд╛-рдСрдбрд┐рдЯ рдХреМрд╢рд▓ рдкреИрдХ: рдЧреБрдкреНрдд рд╕реНрдХреИрди, рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЖрдкреВрд░реНрддрд┐-рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдореАрдХреНрд╖рд╛
dsh-test-driveDeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрдердХ рдЗрдВрд╕реНрдЯреЙрд▓-рдПрдВрдб-рд╕реНрдореЛрдХ рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ред
dsh-ticktickTickTick/Dida365 рдХрд╛рд░реНрдп рдмреНрд░рд┐рдЬ: рд╕рддреНрд░-рд╣реЗрдбрд░ рдкреИрдирд▓ + 11 рдЯреВрд▓
dsh-translateDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╡реЗрдВрдбрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ JSON рдорд░рдореНрдорддред
dsh-wechatWeChat тЖФ DSH рдмреНрд░рд┐рдЬ (Tencent iLink bot): рдЯреЗрдХреНрд╕реНрдЯ/рдЗрдореЗрдЬ/рдлрд╝рд╛рдЗрд▓/рдЖрд╡рд╛рдЬрд╝, рдЪреИрдЯ рдореЗрдВ рдЕрдиреБрдореЛрджрди

License

Apache License 2.0 ┬й 2026 dsh-talk contributors

DSH Desktop рдорд╛рд░реНрдХреЗрдЯ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

рд╕рднреА PerryLink рдкреНрд▓рдЧрдЗрди DSH Desktop рдХреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: Market тЖТ Sources тЖТ add source тЖТ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json тЖТ рдЪреБрдиреЗрдВред рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдорд╛рд░реНрдХреЗрдЯ рдХреЗ npm-identity рд╕рддреНрдпрд╛рдкрди рдФрд░ рдЖрдкрдХреА рдкреБрд╖реНрдЯрд┐ рд╕реЗ рд╣реА рд╣реЛрддрд╛ рд╣реИред