# ЁЯЪЪ dsh-claude-move - **1024 рд╕реНрдЯреЛрд░ рдЪреИрдирд▓**: рдПрдХ рдмрд╛рд░ `npm i -g dsh1024`, рдлрд┐рд░ `dsh1024 plugin --profile web add dsh-claude-move` ([deepseek1024.com](https://deepseek1024.com) рдЗрдВрд╕реНрдЯреЙрд▓ рд░реИрдВрдХрд┐рдВрдЧ рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред **Claude Code, Codex, OpenCode рдФрд░ Hermes рдХреЛ DeepSeek Harness рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ тАФ рд╕рддреНрд░, рдпрд╛рджреЗрдВ, рдХреМрд╢рд▓, рдирд┐рд░реНрджреЗрд╢ рдФрд░ рд╕реНрд▓реИрд╢ рдХрдорд╛рдВрдб рдХреЛ рдлрд┐рд░-рд╕реЗ-рд╢реБрд░реВ рд╣реЛрдиреЗ рдпреЛрдЧреНрдп DSH рд╕рддреНрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдХреЗрд╡рд▓-рдХреЙрдкреА рдФрд░ рдЕрдиреБрдореЛрджрди-рдЧреЗрдЯреЗрдбред** *рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрддреЗ рд╕рдордп рдЕрдкрдирд╛ Claude Code рдЗрддрд┐рд╣рд╛рд╕ рдмрдирд╛рдП рд░рдЦреЗрдВ: рдПрдХ рд╣реА рдЗрдВрд╕реНрдЯреЙрд▓, рдлрд┐рд░-рд╕реЗ-рд╢реБрд░реВ рд╕рддреНрд░, рдЪрд╛рд▓реВ Claude Code рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрд╡ рддрд╛рд▓рдореЗрд▓, рдФрд░ рдПрдХ рдЪрд╛рд░-рд╕реНрд░реЛрдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╡рд┐рдЬрд╝рд╛рд░реНрдбред* [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![Gitee](https://img.shields.io/badge/Gitee-mirror-c71d23?logo=gitee)](https://gitee.com/perrylink/dsh-claude-move) [![DSH plugin](https://img.shields.io/badge/dsh--plugin-тЬЕ-green)](https://github.com/topics/dsh-plugin) [![dsh-doctor](https://raw.githubusercontent.com/PerryLink/dsh-plugin-doctor/main/badges/PerryLink__dsh-claude-move.svg)](https://github.com/PerryLink/dsh-plugin-doctor#verified-х╛╜чла) [![DSH Market](https://raw.githubusercontent.com/2BingLing/dsh-market/master/assets/readme/badge-top-rated.svg)](https://dsh.market/) [![Node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-brightgreen.svg)](#) [![CI](https://img.shields.io/github/actions/workflow/status/PerryLink/dsh-claude-move/test.yml?branch=master&label=CI)](https://github.com/PerryLink/dsh-claude-move/actions) [![Version](https://img.shields.io/github/v/tag/PerryLink/dsh-claude-move?label=version)](https://github.com/PerryLink/dsh-claude-move/releases) [![npm version](https://img.shields.io/npm/v/dsh-claude-move)](https://www.npmjs.com/package/dsh-claude-move) [![npm downloads](https://img.shields.io/npm/dm/dsh-claude-move)](https://www.npmjs.com/package/dsh-claude-move) [English](README.md) ┬╖ [чоАф╜Уф╕нцЦЗ](README-zh.md) ┬╖ [Espa├▒ol](README-es.md) ┬╖ [Portugu├кs](README-pt.md) ┬╖ [рд╣рд┐рдиреНрджреА](README-hi.md) ```sh dsh plugin --profile add dsh-claude-move ```
--- ![Terminal demo of dsh-claude-move](docs/assets/dsh-claude-move-hero.png) ![Animated terminal demo of dsh-claude-move](docs/assets/dsh-claude-move-demo.gif) ## рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ - **git рдЪреИрдирд▓** (рдирд╡реАрдирддрдо `master`): `dsh plugin --profile web add "github:PerryLink/dsh-claude-move#master"` тАФ рд╢реБрджреНрдз ESM, рдХреЛрдИ `prepare` рдпрд╛ `allowBuilds` рдЪрд░рдг рдирд╣реАрдВред - **npm рдЪреИрдирд▓** (рдкреНрд░рдХрд╛рд╢рд┐рдд рд░рд┐рд▓реАрдЬрд╝): `dsh plugin --profile web add dsh-claude-move`ред - **tarball рдЪреИрдирд▓**: рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ `npm pack`, рдлрд┐рд░ `dsh plugin --profile web add ./dsh-claude-move-.tgz`ред - **рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓**: рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ bundles рд╕реЗ `claude-move` рдкрдВрдХреНрддрд┐ рд╣рдЯрд╛рдПрдБ рдФрд░ `dsh` рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ DSH рдХреА рдбреЗрдЯрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ; рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ рдЕрдкрдирд╛ рдХреИрд╢ (`$DSH_HOME/claude-move/`) рдФрд░ `claudecode` workspace рдлрд╝реЛрд▓реНрдбрд░ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ Claude рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЛ рдХрднреА рдирд╣реАрдВ рдЫреВрддрд╛ред ## рдЕрдиреБрдХреВрд▓рддрд╛ - `dsh 0.1.6-alpha.2` (web profile, рд╕рддреНрд░ рдкреНрд░рд╛рд░реВрдк V3) рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ; peer рдирд┐рд░реНрднрд░рддрд╛рдПрдБ `>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0` рдЪрд╛рд╣рд┐рдПред 2026-09-18 рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд (checkJs рдкреНрд░рдХрд╛рд░ рдЧреЗрдЯ + 287 рдЕрд╕рд░реНрд╢рди, 38 рд╕реВрдЯ)ред рдЬрдм рд╣реЛрд╕реНрдЯ `sessions.open()` рдирд╣реАрдВ рджреЗрддрд╛, рдкреИрдирд▓ рдХрд╛ "рд╕рддреНрд░ рдЦреЛрд▓реЗрдВ" рдмрдЯрди рдЕрдм рд╡рд┐рд╡рд░рдгреА title рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдХреНрд░рд┐рдп рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╣реЛрддрд╛ рд╣реИ, рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрддрд╛ред Node `^22.19 || >=24`ред `0.1.2-rc.1` (2026-09-04 рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд): рд╕рддреНрд░ рд▓рд┐рдлрд╝рд╛рдлрд╝рд╛ рдЕрдкрдирд╛ ignorable рдлрд╝реАрд▓реНрдб рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣реАрдд-рд▓реЙрдЧ рдкрдарди рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрддрд╛ рд╣реИ - Session.append рдЕрднреА рднреА рдЗрд╕реЗ рд╕реНрдЯреИрдореНрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдЧреЗрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИред - 0.4.0 рдореЗрдВ `sessionPersistence` рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░реА-рдмреЗрд╕рд▓рд╛рдЗрди рд░рдирдЯрд╛рдЗрдо shim рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕реЗ API рдЖрдХрд╛рд░ рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХрднреА рдирд╣реАрдВ): рд▓реАрдЧреЗрд╕реА API (`create`/`append`/`readFrom`, `list()` рд╣реЗрдбрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ) рдФрд░ рд╣реИрдВрдбрд▓ рд╕реАрдо (`create` рдПрдХ `SessionHandle` рд▓реМрдЯрд╛рддрд╛ рд╣реИ, `list()`/`stat()` рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ) рджреЛрдиреЛрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╣реИрдВрдбрд▓ рд╕реАрдо рдЕрдм alpha рд▓рд╛рдЗрди рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИ (`@deepseek-ai/dsh-session-persistence` / `-jsonl` `0.1.5-rc.2`), рдЗрд╕рд▓рд┐рдП compat рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЙрд╕реЗ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓ рдкрде рдкрд░ рд╣рд░ append рдХреЗ рдмрд╛рдж `flush()` (рд╕реНрдерд╛рдпрд┐рддреНрд╡ рдЕрд╡рд░реЛрдз) рдФрд░ рдпреБрдЧреНрдорд┐рдд `close()` (рдПрдХрд▓-рд▓реЗрдЦрдХ рд╕реНрд╡рд╛рдорд┐рддреНрд╡) рд╣реЛрддрд╛ рд╣реИ; рд╣реЗрдбрд░ рдкрд░ рдмреИрдХрдПрдВрдб рдХрд╛ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╛рд░реВрдк рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕реНрдкрд╖реНрдЯ `isSeeded` рдЕрдВрдХрд┐рдд рд╣реЛрддрд╛ рд╣реИ; рдЕрдиреБрдкрд╕реНрдерд┐рдд assistant model рд╕реНрд░реЛрдд provider рдкрд░ рдЧрд┐рд░рддреЗ рд╣реИрдВ; рдФрд░ 0.4.5 рд╕реЗ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд `assistant/message` рдИрд╡реЗрдВрдЯ рддрдм `stream: []` рд▓реЗрдХрд░ рдЖрддреЗ рд╣реИрдВ рдЬрдм рдмреИрдХрдПрдВрдб рдкреНрд░рд╛рд░реВрдк рд╕рдВрд╕реНрдХрд░рдг >= 2 рд╣реЛ тАФ V3 рдХрд╛ `Session.fromRestore` `Array.isArray(data.stream)` рдорд╛рдБрдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рд▓реЙрдЧ рд▓рд┐рдЦрд╛ рдФрд░ рдкрдврд╝рд╛ рддреЛ рдЬрд╛рддрд╛ рдерд╛ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред рдЬрдм рдХрд┐рд╕реА рд╕реВрдЪреАрдмрджреНрдз рддрддреНрд╡ рдХрд╛ `header.id` рд╣рд▓ рдирд╣реАрдВ рд╣реЛ рдкрд╛рддрд╛ рддреЛ рдЖрдпрд╛рдд-рд╕реНрдХреИрди рдХреА рд╕рдлрд╝рд╛рдИ рдЪрд▓рдиреЗ рд╕реЗ рдордирд╛ рдХрд░ рджреЗрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП `imports.json` рдХрднреА рдЪреБрдкрдЪрд╛рдк рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛрддрд╛ред - рдЕрдВрддрд┐рдо рдмрд╛рд░ рдПрдХ рддрд╛рдЬрд╝рд╛ tarball рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕рддреНрдпрд╛рдкрд┐рдд: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреИрди, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреИрдЪ рдЖрдпрд╛рдд (рдЖрдЗрдбреЗрдореНрдкреЛрдЯреЗрдВрдЯ рдкреБрдирдГ-рдЖрдпрд╛рдд), workspace рдЬреБрдбрд╝рд╛рд╡ рдФрд░ рдкрд░реНрд╕рд┐рд╕реНрдЯреЗрдВрд╕ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХреА рдкреБрд╖реНрдЯрд┐; macOS/Linux CI рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рд╣реИрдВред рдЖрдпрд╛рддрд┐рдд рд▓реЙрдЧ рд╕рддреНрд░ рдкреНрд░рд╛рд░реВрдк V3 рдореЗрдВ рд╣реИрдВ рдФрд░ `dsh <= 0.1.2-rc.1` рдЙрдиреНрд╣реЗрдВ рдкрдврд╝ рдирд╣реАрдВ рд╕рдХрддрд╛ (рдЙрдиреНрдирдпрди рдПрдХрддрд░рдлрд╝рд╛ рд╣реИ; рд╡рд┐рдХрд▓реНрдк рд╕реНрд░реЛрдд transcript рд╕реЗ рдкреБрдирдГ рдЖрдпрд╛рдд рд╣реИ)ред ### рдЕрдиреБрдХреВрд▓рддрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ (рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реАрдо) | рд╕рддрд╣ | рдЙрдкрдпреЛрдЧ | рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рдлрд╝реЙрд▓рдмреИрдХ | |---|---|---| | Host рд╕реЗрд╡рд╛рдПрдБ (`tools` / `sessionPersistence` / `workspaceRegistry` / `commands` / `systemPrompt` / `skills` / `webServer`) | рдЬрд╣рд╛рдБ рд╕реВрдЪреАрдмрджреНрдз рд╡рд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ | рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реЗрд╡рд╛рдПрдБ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддреА рд╣реИрдВ; `fs` рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЬрд╝реЛрд░ рд╕реЗ рд╡рд┐рдлрд▓ | | `sessionPersistence` рджреЛрд╣рд░реА рдмреЗрд╕рд▓рд╛рдЗрди: рд▓реАрдЧреЗрд╕реА `listSnapshots` / `readFrom` / `append` рдмрдирд╛рдо рд╣реИрдВрдбрд▓ `open` / `stat` / рд╕реНрдиреИрдкрд╢реЙрдЯ `list()` | рд░рдирдЯрд╛рдЗрдо рдкрд░ рдлрд╝реАрдЪрд░-рдбрд┐рдЯреЗрдХреНрдЯреЗрдб (API рдЖрдХрд╛рд░, рд╕рдВрд╕реНрдХрд░рдг рдХрднреА рдирд╣реАрдВ) | `header.id` рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЧрд╛рд░реНрдб рд╕реНрдХреИрди рдХреЛ рдЬрд╝реЛрд░ рд╕реЗ рд░реЛрдХ рджреЗрддрд╛ рд╣реИ, `imports.json` рдЪреБрдкрдЪрд╛рдк рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп | | `streamText`-рд╕рдХреНрд╖рдо `fs` / `ctx.jobs` / `ctx.agents.resume` | рдлрд╝реАрдЪрд░-рдбрд┐рдЯреЗрдХреНрдЯреЗрдб | рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдирд╛ рдФрд░ рдЬрд╝реЛрд░ рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ / рд╕реНрд╡рдпрдВ рдХрд╛ job map / рд╣реИрдВрдбрдСрдлрд╝ рдЗрдВрдЬреЗрдХреНрдЯ | | Client shell рд╕реЗрд╡рд╛рдПрдБ (`sessions.refresh/open`, `workspaces.refresh`) | рдкреИрдирд▓ apply рдкрд░ рдлрд╝реАрдЪрд░-рдбрд┐рдЯреЗрдХреНрдЯреЗрдб | рдкреВрд░реНрдг-рдкреГрд╖реНрда рд░реАрд▓реЛрдб | | рдирдИ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреНрд╖рдорддрд╛рдПрдБ рдХрднреА рдХрдареЛрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдирд╣реАрдВ рд╣реЛрддреАрдВ тАФ рдкреНрд▓рдЧрдЗрди рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреА рд╕рдорд░реНрдерд┐рдд рд▓рд╛рдЗрди (`0.1.2-rc.1`) рдкрд░ рдмреВрдЯ рд╣реЛрдиреЗ рдпреЛрдЧреНрдп рд░рд╣рддрд╛ рд╣реИред | | | ## рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ 1. **рд╕реНрд╡рддрдГ-рдЦреЛрдЬ** тАФ `claude_scan` Claude рдбреЗрдЯрд╛ рд░реВрдЯ (`$CLAUDE_CONFIG_DIR`, рдлрд╝реЙрд▓рдмреИрдХ `~/.claude`) рдЦреЛрдЬрддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд╕рддреНрд░, рдпрд╛рдж, рдХреМрд╢рд▓, рд╡реИрд╢реНрд╡рд┐рдХ `CLAUDE.md` рдФрд░ `settings.json` рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХрд░рддрд╛ рд╣реИ, рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдХреИрд╢ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕реНрдХреИрдирд┐рдВрдЧ (`scanConcurrency`) рдХреЗ рд╕рд╛рдеред 2. **рдкреВрд░реНрдг-рдирд┐рд╖реНрдард╛ рдЖрдпрд╛рдд** тАФ `import_claude` рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд, рдлрд┐рд░-рд╕реЗ-рд╢реБрд░реВ рд╣реЛрдиреЗ рдпреЛрдЧреНрдп DSH рд╕рддреНрд░реЛрдВ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ (`turn/start тЖТ step/start тЖТ user/message тЖТ assistant/message тЖТ tool/call тЖТ tool/result тЖТ step/end тЖТ turn/end`), рдмрд╛рдзрд┐рдд рдЯреВрд▓ рдХреЙрд▓ рдХреА рдорд░рдореНрдордд рдХрд░рддрд╛ рд╣реИ, рдФрд░ `maxTranscriptBytes` рд╕реЗ рдмрдбрд╝реА рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░реАрдо-рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред 3. **рдПрдХ `claudecode` workspace** тАФ рд╣рд░ рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рдПрдХ рд╕рдорд░реНрдкрд┐рдд workspace рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ `$DSH_HOME/claudecode`); `workspaceMode: 'per-project'` рдкреНрд░рддрд┐-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХ-workspace рд╕рдореВрд╣рди рдмрд╣рд╛рд▓ рдХрд░рддрд╛ рд╣реИред 4. **рдХреЗрд╡рд▓-рдХреЙрдкреА рдФрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓** тАФ рдХрд┐рд╕реА рднреА рддрд░рдл рдХреБрдЫ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд, рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдпрд╛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛; рдлрд┐рд░ рдЪрд▓рд╛рдиреЗ рдкрд░ рдХреЗрд╡рд▓ рдирдП рдЯрд░реНрди рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ (`force: true` рдПрдХ рдирдП id рдХреЗ рддрд╣рдд рдЕрддрд┐рд░рд┐рдХреНрдд рдкреВрд░реА рдХреЙрдкреА рд╕рд╣реЗрдЬрддрд╛ рд╣реИ)ред 5. **рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрджрд░реНрдн, рд╣рдореЗрд╢рд╛ рддрд╛рдЬрд╝рд╛** тАФ рдпрд╛рджреЗрдВ рд▓рд╛рдЗрд╡ рдкреНрд░реЙрдореНрдкреНрдЯ рдЕрдиреБрднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рд╣реЛрддреА рд╣реИрдВ, Claude рдХреМрд╢рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DSH рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВ (рд╡реИрд╢реНрд╡рд┐рдХ + рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рд╕реНрддрд░), рд╡реИрд╢реНрд╡рд┐рдХ + рдкреНрд░реЛрдЬреЗрдХреНрдЯ `CLAUDE.md` рдЬрд▓реНрджреА рдЗрдВрдЬреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред 6. **рдЪрд╛рд░-рд╕реНрд░реЛрдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╡рд┐рдЬрд╝рд╛рд░реНрдб** тАФ `/move` рдФрд░ `move_detect` / `move_preview` / `move_run` Claude Code, Codex, OpenCode рдФрд░ Hermes рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреБрдореЛрджрди-рдЧреЗрдЯреЗрдб рдФрд░ рдЖрдЗрдбреЗрдореНрдкреЛрдЯреЗрдВрдЯ (`move.json`)ред 7. **рд╡реЗрдм рдкреИрдирд▓ рдФрд░ рдХрдорд╛рдВрдб** тАФ `/claude-import-all`, `/resume-claude`, `/claude-move-reset`, `/claude-export`, рдФрд░ рдПрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкреИрдирд▓ред 8. **рджреНрд╡рд┐рджрд┐рд╢ рдирд┐рд░реНрдпрд╛рдд** тАФ `claude_export` (рдпрд╛ `/claude-export `) рдПрдХ DSH рд╕рддреНрд░ рдХреЛ рд╡рд╛рдкрд╕ resumable Claude Code JSONL transcript рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ (`user`/`assistant`/`tool` рдЯрд░реНрди, `thinking` + `tool_use`/`tool_result` рдЬреЛрдбрд╝реА, рд╕рд░реНрд╡реЛрддреНрддрдо-рдкреНрд░рдпрд╛рд╕ `cwd` рдореИрдкрд┐рдВрдЧ), рддрд╛рдХрд┐ рдЗрддрд┐рд╣рд╛рд╕ рдлрд┐рд░ рд╕реЗ DSH рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛ рд╕рдХреЗред ## рдЪрд╛рд░-рд╕реНрд░реЛрдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╡рд┐рдЬрд╝рд╛рд░реНрдб ```text /move # рдПрдХ-рдЪрд░рдг рд╡рд┐рдЬрд╝рд╛рд░реНрдб: рдкрддрд╛ рд▓рдЧрд╛рдПрдБ тЖТ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди тЖТ рдирд┐рд╖реНрдкрд╛рджрди тЖТ рд░рд┐рдкреЛрд░реНрдЯ (рдЪрд╛рд░реЛрдВ рд╕реНрд░реЛрдд) move_detect # Claude Code / Codex / OpenCode / Hermes рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдВ move_preview # рдкреНрд░рддрд┐-рдЖрдЗрдЯрдо рдпреЛрдЬрдирд╛: new | unchanged | changed | conflict (diff рд╕рд╣рд┐рдд) | unsupported move_run # рдЕрдиреБрдореЛрджрди рдЧреЗрдЯ рдХреЗ рдкреАрдЫреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ; рд╡рд┐рд░реЛрдз рд╕рдорд╛рдзрд╛рди: # skip | overwrite | rename | merge (рдбрд┐рдлрд╝реЙрд▓реНрдЯ skip тАФ рдХрднреА рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛) ``` - **рд╕реНрд░реЛрдд** тАФ Claude Code (`~/.claude`), Codex (`~/.codex`), OpenCode (рдбреЗрдЯрд╛ + config рд░реВрдЯ), Hermes (рдХреМрд╢рд▓/рдпрд╛рдж рд░реВрдЯ); рд╣рд░ рд╕реНрд░реЛрдд рдХрд╛ рдЕрдкрдирд╛ parser + mapper рд╣реИред - **рдореИрдкрд┐рдВрдЧ** тАФ рдпрд╛рджреЗрдВ/рдирд┐рд░реНрджреЗрд╢ тЖТ DSH рд╡реИрд╢реНрд╡рд┐рдХ `AGENTS.md` рдореЗрдВ рдХреЗрд╡рд▓-рдЬреЛрдбрд╝рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рдмрдВрдзрд┐рдд рдЕрдиреБрднрд╛рдЧ (рдкреНрд░рддрд┐ рдЖрдЗрдЯрдо рдПрдХ рдЪрд┐рд╣реНрдирд┐рдд рдЕрдиреБрднрд╛рдЧ); рдХреМрд╢рд▓ тЖТ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DSH рдХреМрд╢рд▓ (`SKILL.md` рдмрдВрдбрд▓ рдЬреНрдпреЛрдВ-рдХрд╛-рддреНрдпреЛрдВ рдХреЙрдкреА, рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдк рдкрд░рд┐рд╡рд░реНрддрд┐рдд); рд╕реНрд▓реИрд╢ рдХрдорд╛рдВрдб тЖТ рдкрдВрдЬреАрдХреГрдд DSH рдХрдорд╛рдВрдб (рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХреЗ рдмрд╛рдж `move.json` рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд); рд╕рддреНрд░ тЖТ рдлрд┐рд░-рд╕реЗ-рд╢реБрд░реВ DSH рд╕рддреНрд░ (рдЪрд░рдг 1 рдХреЗ рд╕рдорд╛рди рдЖрдпрд╛рддрдХ)ред - **рдЖрдЗрдбреЗрдореНрдкреЛрдЯреЗрдВрдЯ** тАФ рд╣рд░ рд▓рд╛рдЧреВ рдпреЛрдЬрдирд╛ `$DSH_HOME/claude-move/move.json` рдореЗрдВ рджрд░реНрдЬ рд╣реЛрддреА рд╣реИ (`digest` / `targetDigest` / `appliedAt`); рдкреБрдирдГ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЖрдЗрдЯрдо рдЫреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ `force` рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред - **рдЕрдиреБрдореЛрджрди-рдЧреЗрдЯреЗрдб** тАФ рдХреЛрдИ рднреА рд░рди рдЬреЛ рдХреБрдЫ рд▓рд┐рдЦреЗрдЧрд╛ рдкрд╣рд▓реЗ `ctx.approval` рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ; `allowed-once` рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рд╣реЛрдиреЗ рдкрд░ рд╢реВрдиреНрдп рд▓реЗрдЦрдиред ## рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд ```sh # 1. рдЕрдкрдиреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрдВрдбрд▓ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ dsh plugin --profile web add "github:PerryLink/dsh-claude-move#master" # рдпрд╛ npm рд╕реЗ (рдкреНрд░рдХрд╛рд╢рд┐рдд рд░рд┐рд▓реАрдЬрд╝) dsh plugin --profile web add dsh-claude-move # 2. рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдкрдВрдХреНрддрд┐ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ dsh --profile web --dump-config | grep -A4 'id: claude-move' ``` рдлрд┐рд░, рдХрд┐рд╕реА рднреА DSH рд╕рддреНрд░ рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ: ```sh /claude-import-all # рд╕реНрдХреИрди тЖТ рд╣рд░ Claude рд╕рддреНрд░ рдХреЙрдкреА рдХрд░реЗрдВ тЖТ рд░рд┐рдкреЛрд░реНрдЯ ``` рдЖрдпрд╛рдд рдХреЗ рдмрд╛рдж DSH рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ тАФ рдЦреБрд▓реЗ рд╡реЗрдм рдкреЗрдЬ рдХреЛ рдПрдХ рдмрд╛рд░ рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░реЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред ## рдХреНрдпрд╛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рд╣реЛрддрд╛ рд╣реИ ``` ~/.claude (рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ) тФЬтФА projects/*/*.jsonl тФАтФАтЖТ рдлрд┐рд░-рд╕реЗ-рд╢реБрд░реВ DSH рд╕рддреНрд░, рдПрдХ "claudecode" workspace рдореЗрдВ рд╕рдореВрд╣рд┐рдд (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) тФЬтФА projects/*/memory/ тФАтФАтЖТ рд▓рд╛рдЗрд╡ system-prompt рдпрд╛рдж рдЕрдиреБрднрд╛рдЧ (рдкреНрд░рддрд┐ рдЕрдиреБрд░реЛрдз рдлрд┐рд░ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ) тФЬтФА skills/** тФАтФАтЖТ рд╡рд╛рд╕реНрддрд╡рд┐рдХ DSH рдХреМрд╢рд▓ тФФтФА CLAUDE.md + settings тФАтФАтЖТ рдЖрд░рдВрднрд┐рдХ рдкреНрд░реЙрдореНрдкреНрдЯ рдЕрдиреБрднрд╛рдЧ + config рд╕реБрдЭрд╛рд╡ (рдХрднреА рд╕реНрд╡рддрдГ рд▓рд╛рдЧреВ рдирд╣реАрдВ) ``` | Claude Code рдореЗрдВ | DSH рдореЗрдВ рдЗрд╕ рд░реВрдк рдореЗрдВ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ | |---|---| | рд╕рддреНрд░ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ (`projects/*/*.jsonl`) | рд╕рдВрддреБрд▓рд┐рдд, рдлрд┐рд░-рд╕реЗ-рд╢реБрд░реВ DSH рд╕рддреНрд░ тАФ `user`/`assistant`/`tool`/`thinking` рдХреА рдкреВрд░реНрдг-рдирд┐рд╖реНрдард╛ рдореИрдкрд┐рдВрдЧ рдФрд░ рдмрд╛рдзрд┐рдд-рдЯреВрд▓-рдХреЙрд▓ рдорд░рдореНрдордд рдХреЗ рд╕рд╛рде тАФ рдПрдХ **`claudecode`** workspace рдореЗрдВ рдпрд╛ рдкреНрд░рддрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХ рдореЗрдВ рд╕рдореВрд╣рд┐рдд | | рдпрд╛рдж рдлрд╝рд╛рдЗрд▓реЗрдВ (`projects/*/memory/*.md`) | рдПрдХ рд▓рд╛рдЗрд╡ system-prompt рд╕рдВрджрд░реНрдн рдЕрдиреБрднрд╛рдЧ, рд╣рд░ рдЕрдиреБрд░реЛрдз рдкрд░ рдлрд┐рд░ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (`feedback > project > reference > user`) | | рдХреМрд╢рд▓ (`~/.claude/skills/**`) | рд╡рд╛рд╕реНрддрд╡рд┐рдХ DSH рдХреМрд╢рд▓ (kebab-case рдирд╛рдо, рдЯрдХрд░рд╛рд╡ рдкреНрд░рддреНрдпрдп, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХрддрдо 30; `README.md`/`MEMORY.md` рдФрд░ рдмрд┐рдирд╛ рд╡рд┐рд╡рд░рдг рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЗрдВ рдЫреЛрдбрд╝ рджреА рдЬрд╛рддреА рд╣реИрдВ) | | `CLAUDE.md` (рд╡реИрд╢реНрд╡рд┐рдХ + рдкреНрд░рддрд┐-рдкреНрд░реЛрдЬреЗрдХреНрдЯ) | рдПрдХ рдЖрд░рдВрднрд┐рдХ рдкреНрд░реЙрдореНрдкреНрдЯ рдЕрдиреБрднрд╛рдЧ; рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд╛рддреА рд╣реИ | | `settings.json` | рд╕реНрдкрд╖реНрдЯ рдЕрдирдореИрдкреЗрдмрд▓-рдХреБрдВрдЬреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде DSH config рд╕реБрдЭрд╛рд╡ | | рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдерд┐рддрд┐ (рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, git branch рдФрд░ рдЧрдВрджрдЧреА рдЧрд┐рдирддреА) | рд╕реНрдХреИрди рдЗрдВрдбреЗрдХреНрд╕, рд╡реЗрдм рдкреИрдирд▓ рдмреИрдЬ рдФрд░ `/resume-claude` рд╣реИрдВрдбрдСрдлрд╝ рдореЗрдВ рджрд┐рдЦрддреА рд╣реИ | ## рдЙрдкрдпреЛрдЧ рдкреНрд▓рдЧрдЗрди рдорд╛рдЙрдВрдЯ рд╣реЛрдиреЗ рдкрд░ рдХрд┐рд╕реА рднреА рд╕рддреНрд░ рдореЗрдВ рдЯреВрд▓ рдХреЙрд▓ рдХрд░реЗрдВ: ``` claude_scan # рдкреВрд░реНрдг рд╕реНрдХреИрди (рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдХреИрд╢) claude_scan { path: "~/.claude/projects/" } # рдЖрдВрд╢рд┐рдХ рд╕реНрдХреИрди claude_scan { refresh: true } # рдХреИрд╢ рдЫреЛрдбрд╝реЗрдВ, рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реНрдХреИрди рдХрд░реЗрдВ claude_scan { projectsLimit: 10, sessionsLimit: 5, fields: "brief" } # рдЖрдЙрдЯрдкреБрдЯ рдЫрд╛рдБрдЯреЗрдВ import_claude { path: "~/.claude/projects//.jsonl" } # рдПрдХ рд╕рддреНрд░ import_claude { path: "~/.claude/projects" } # рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдкреБрдирд░рд╛рд╡рд░реНрддреА) import_claude { path: "all" } # рд╕рдм рдХреБрдЫ # рдХрднреА рднреА рдлрд┐рд░ рдЪрд▓рд╛рдПрдБ: рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдЫреЛрдбрд╝ рджреА рдЬрд╛рддреА рд╣реИрдВ, рдмрдврд╝реА рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ рдХреЗрд╡рд▓ рдирдП рдЯрд░реНрди рдЬреЛрдбрд╝рддреА рд╣реИрдВред # maxTranscriptBytes рд╕реЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЗрдВ рдЦрдВрдбреЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░реАрдо-рдЖрдпрд╛рдд рд╣реЛрддреА рд╣реИрдВ (рдХреЛрдИ рдореЗрдореЛрд░реА рд╕реАрдорд╛ рдирд╣реАрдВ)ред import_claude { path: "...", force: true } # рддрд╛рдЬрд╝рд╛ рдкреВрд░реА рдХреЙрдкреА (рдкрд┐рдЫрд▓реА рдХреЙрдкреА рд░рдЦреА рдЬрд╛рддреА рд╣реИ) claude_export { sessionId: "" } # DSH рд╕рддреНрд░ рдХреЛ рд╡рд╛рдкрд╕ Claude JSONL рдореЗрдВ рд▓рд┐рдЦреЗрдВ claude_export { sessionId: "...", path: "~/.claude/projects//.jsonl" } # рд╕реНрдкрд╖реНрдЯ рд▓рдХреНрд╖реНрдп ``` рдХрдорд╛рдВрдб (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдЯреНрд░рд┐рдЧрд░, рдХреЛрдИ рдореЙрдбрд▓ рдЯрд░реНрди рдирд╣реАрдВ): ``` /claude-import-all # рдПрдХ-рдЪрд░рдг: рд╕реНрдХреИрди тЖТ рд╕рдм рдЖрдпрд╛рдд тЖТ рд░рд┐рдкреЛрд░реНрдЯ тЖТ рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ /resume-claude latest # рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ Claude рд╕рддреНрд░ рдЬрд╛рд░реА рдХрд░реЗрдВ /resume-claude # рд╕реНрд░реЛрдд рд╕рддреНрд░ id рдпрд╛ import- id рд╕реЗ /resume-claude # рд╢реАрд░реНрд╖рдХ рдорд┐рд▓рд╛рдПрдБ; рдХрдИ рдорд┐рд▓рд╛рди рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдХрднреА рдЕрдиреБрдорд╛рди рдирд╣реАрдВ /claude-move-reset # рдкреНрд▓рдЧрдЗрди рдХреИрд╢ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ (рдмреБрдХрдорд╛рд░реНрдХ + рдЖрдпрд╛рдд рдореИрдк); рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ /claude-export [path] # DSH рд╕рддреНрд░ рдХреЛ resumable Claude JSONL transcript рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ ``` рд╡реЗрдм рдкреИрдирд▓: рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд╕рддреНрд░ рдЯреНрд░реА, рд╕реНрдерд┐рддрд┐ рдмреИрдЬ (рдЖрдпрд╛рддрд┐рдд рдирд╣реАрдВ / рдЖрдпрд╛рддрд┐рдд / рдирдП-рдЯрд░реНрди-рд╕рд╣рд┐рдд-рдЖрдпрд╛рддрд┐рдд / рд╕реНрд░реЛрдд рдЕрдиреБрдкрд╕реНрдерд┐рдд / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд / git рдЧрдВрджрд╛), рдХреАрд╡рд░реНрдб рдлрд╝рд┐рд▓реНрдЯрд░, рдкреГрд╖реНрдард╛рдВрдХрд┐рдд рд░реЗрдВрдбрд░рд┐рдВрдЧ, рдкреНрд░рддрд┐-рд╕рддреНрд░ "рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВ" + "рд╕рддреНрд░ рдЦреЛрд▓реЗрдВ" + "рд╕рддреНрд░ рд╕реВрдЪреА рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░реЗрдВ", рд▓рд╛рдЗрд╡ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдФрд░ рд░рджреНрдж рдХреЗ рд╕рд╛рде рдмреИрдЪ рдЖрдпрд╛рдд, рдФрд░ рдПрдХ рдХреИрд╢-рд░реАрд╕реЗрдЯ рдмрдЯрди рд╡рд╛рд▓рд╛ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкреИрдирд▓ред рдкрд╛рда рдмреНрд░рд╛рдЙрдЬрд╝рд░ рднрд╛рд╖рд╛ (zh/en) рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ `ctx.webServer` рд╕реАрдо рдкрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЕрдкрдиреЗ `/api/claude-move/*` JSON рдорд╛рд░реНрдЧреЛрдВ рд╕реЗ рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИред ## рдЖрдпрд╛рдд рдХреЗ рдмрд╛рдж **рдЖрдкрдХреЛ DSH рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред** рдЖрдпрд╛рдд рдкреВрд░реНрдг рд╣реЛрддреЗ рд╣реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ `sessionPersistence` рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯрд┐рдХрд╛рдК рд░реВрдк рд╕реЗ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ: - рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕реВрдЪрд┐рдпрд╛рдБ (`session.list` / `workspace.list` RPC, CLI, рдХреЛрдИ рднреА рдирдпрд╛ рдкреГрд╖реНрда рд▓реЛрдб) рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░реЛрдВ рдХреЛ **`claudecode` workspace** рдХреЗ рдЕрдВрддрд░реНрдЧрдд рддреБрд░рдВрдд рджрд┐рдЦрд╛рддреА рд╣реИрдВред - рдкреИрдирд▓ рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓реЗ рдкреГрд╖реНрда рдХреА рд╕рддреНрд░ рд╕реВрдЪреА рд╕реНрд╡рдпрдВ рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП **рд╕рддреНрд░ рдЦреЛрд▓реЗрдВ** рдмрдЯрди рджреЗрддрд╛ рд╣реИред - рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рддреБрд░рдВрдд рдЦреЛрд▓реЗ, рдкрдврд╝реЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ тАФ `/resume-claude`, рдпрд╛ рд╕реВрдЪреА рдореЗрдВ рд╕рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдХрднреА рднреА рдЖрдпрд╛рдд рдлрд┐рд░ рдЪрд▓рд╛рдиреЗ рдкрд░ рдЙрдиреНрд╣реАрдВ рд╕рддреНрд░реЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдирдП рдЯрд░реНрди рд╕рдордиреНрд╡рдпрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред ## рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдм рд╡реИрдХрд▓реНрдкрд┐рдХ, cordis.yml рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдпреЛрдЧреНрдпред | рдХреБрдВрдЬреА | рдбрд┐рдлрд╝реЙрд▓реНрдЯ | рдЕрд░реНрде | |---|---|---| | `claudeHome` | `$CLAUDE_CONFIG_DIR` рдпрд╛ `~/.claude` | Claude рдбреЗрдЯрд╛ рд░реВрдЯ | | `workspaceMode` | `claudecode` | `claudecode` (рдПрдХ рд╕рдорд░реНрдкрд┐рдд workspace) ┬╖ `per-project` (рдкреНрд░рддрд┐ рд╕реНрд░реЛрдд cwd рдПрдХ workspace) | | `claudecodeDir` | `$DSH_HOME/claudecode` | `claudecode` workspace рдлрд╝реЛрд▓реНрдбрд░ (рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рдлрд╝реЛрд▓реНрдбрд░) | | `scanGit` | `true` | git рдЬрд╛рдБрдЪ рд╕реНрддрд░: `true` (рдкреВрд░реНрдг) ┬╖ `'branch'` (рд╢реВрдиреНрдп git рдХреЙрд▓) ┬╖ `false` | | `gitTimeoutMs` | `5000` | git рдЙрдк-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ | | `scanConcurrency` | `8` | рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрдХреИрди рд╕реАрдорд╛ | | `maxTranscriptBytes` | `67108864` | рд╕реНрдЯреНрд░реАрдо-рдЖрдпрд╛рдд рд╕реАрдорд╛ (рдКрдкрд░ рдЦрдВрдбреЛрдВ рдореЗрдВ) | | `excludeProjects` | `[]` | рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП slug рдЙрдк-рд╕реНрдЯреНрд░рд┐рдВрдЧ | | `enableMemory` | `true` | рдпрд╛рджреЗрдВ рд▓рд╛рдЗрд╡ рдкреНрд░реЙрдореНрдкреНрдЯ рдЕрдиреБрднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВ | | `memoryMaxBytes` | `8192` | рдпрд╛рдж рдЕрдиреБрднрд╛рдЧ рд╕реАрдорд╛ | | `memoryScope` | `current-project` | `current-project` ┬╖ `all` (рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ) | | `enableSkills` | `true` | Claude рдХреМрд╢рд▓ рдХреЛ DSH рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ | | `maxSkills` | `30` | рдХреМрд╢рд▓ рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд╛ | | `extraSkillDirs` | `[]` | рдЕрддрд┐рд░рд┐рдХреНрдд рдХреМрд╢рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ | | `enableInstructions` | `true` | рд╡реИрд╢реНрд╡рд┐рдХ + рдкреНрд░реЛрдЬреЗрдХреНрдЯ `CLAUDE.md` рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВ | | `resumeMaxChars` | `2048` | рд╣реИрдВрдбрдСрдлрд╝ рд╕рд╛рд░рд╛рдВрд╢ рд╡рд░реНрдг рд╕реАрдорд╛ | | `resumeMode` | `inject` | `inject` (рд╣реИрдВрдбрдСрдлрд╝ рд╕рд╛рд░рд╛рдВрд╢) ┬╖ `agents` (ctx.agents.resume) | | `enableWebPanel` | `true` | `/api/claude-move/*` рдкреИрдирд▓ рдорд╛рд░реНрдЧ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ | | `importConcurrency` | `4` | рдкреНрд░рддрд┐ рдмреИрдЪ рд╕рдорд╛рдирд╛рдВрддрд░ рдкрдврд╝рдирд╛ + рд░реВрдкрд╛рдВрддрд░рдг | | `requireApproval` | `true` | рд╡рд┐рдЬрд╝рд╛рд░реНрдб рд▓реЗрдЦрди `ctx.approval` рдорд╛рдБрдЧрддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ allowed-once) | | `codexHome` | `$CODEX_HOME` рдпрд╛ `~/.codex` | Codex рдбреЗрдЯрд╛ рд░реВрдЯ | | `opencodeDataHome` | рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо XDG рдбреЗрдЯрд╛ dir/opencode | OpenCode рдбреЗрдЯрд╛ рд░реВрдЯ | | `opencodeConfigHome` | рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо XDG config dir/opencode | OpenCode config рд░реВрдЯ | | `hermesHome` | `$HERMES_HOME` рдпрд╛ `~/.hermes` | Hermes рдбреЗрдЯрд╛ рд░реВрдЯ | | `skillsDir` | `$DSH_HOME/skills` | рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреМрд╢рд▓ рд▓рдХреНрд╖реНрдп | | `agentsMdPath` | `$DSH_HOME/AGENTS.md` | рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдпрд╛рдж/рдирд┐рд░реНрджреЗрд╢ рд▓рдХреНрд╖реНрдп | | `moveWorkspaceMode` | `per-source` | рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП workspace рд╕рдореВрд╣рди: `per-source` ┬╖ `single` | | `enableExport` | `true` | `claude_export` рдЯреВрд▓ рдФрд░ `/claude-export` рдХрдорд╛рдВрдб рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ | | `exportDir` | `$DSH_HOME/claude-export` | рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдлрд╝реЛрд▓реНрдбрд░ (рд╕реНрдкрд╖реНрдЯ `path` рд╣рдореЗрд╢рд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛) | ## рдЙрдкрдХрд░рдг рдФрд░ рд╕рддрд╣реЗрдВ | рд╕рддрд╣ | рдкреНрд░рдХрд╛рд░ | рдиреЛрдЯреНрд╕ | |---|---|---| | `claude_scan` | рдЯреВрд▓ | рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд╕рддреНрд░/рдпрд╛рдж/рдХреМрд╢рд▓/рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдВрд░рдЪрд┐рдд рдЗрдВрдбреЗрдХреНрд╕ | | `import_claude` | рдЯреВрд▓ | рдПрдХ рд╕рддреНрд░, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрд╛ `all` рдЖрдпрд╛рдд рдХрд░реЗрдВ (рд╡реГрджреНрдзрд┐рд╢реАрд▓; `force` рд╕реЗ рдирдИ рдХреЙрдкреА) | | `claude_export` | рдЯреВрд▓ | DSH рд╕рддреНрд░ рдХреЛ resumable Claude Code JSONL transcript рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ | | `move_detect` / `move_preview` / `move_run` | рдЯреВрд▓ | рдЪрд╛рд░-рд╕реНрд░реЛрдд рд╡рд┐рдЬрд╝рд╛рд░реНрдб: рд╕реНрдХреИрди, diff рд╕рд╣рд┐рдд рдкреНрд░рддрд┐-рдЖрдЗрдЯрдо рдпреЛрдЬрдирд╛, рдЕрдиреБрдореЛрджрди рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрди | | `/claude-import-all` | рдХрдорд╛рдВрдб | рд╕реНрдХреИрди тЖТ рд╕рдм рдЖрдпрд╛рдд тЖТ рд░рд┐рдкреЛрд░реНрдЯ | | `/resume-claude` | рдХрдорд╛рдВрдб | Claude рд╕рддреНрд░ рдЬрд╛рд░реА рдХрд░реЗрдВ (latest, id рдпрд╛ рдХреАрд╡рд░реНрдб) | | `/claude-move-reset` | рдХрдорд╛рдВрдб | рдкреНрд▓рдЧрдЗрди рдХреИрд╢ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ (рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ) | | `/claude-export` | рдХрдорд╛рдВрдб | DSH рд╕рддреНрд░ рдХреЛ resumable Claude JSONL transcript рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ | | `/move` | рдХрдорд╛рдВрдб | рдПрдХ-рдЪрд░рдг рдЪрд╛рд░-рд╕реНрд░реЛрдд рд╡рд┐рдЬрд╝рд╛рд░реНрдб | | рд╡реЗрдм рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкреИрдирд▓ | рдХреНрд▓рд╛рдЗрдВрдЯ | рдкреНрд░рдЧрддрд┐, рд░рджреНрдж, рдкреЗрдЬрд┐рдВрдЧ, рд╕рддреНрд░ рдЦреЛрд▓реЗрдВ рд╡рд╛рд▓рд╛ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреИрдирд▓ | ## рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдФрд░ рдбреЗрдЯрд╛ - **рдЕрдиреБрдорддрд┐рдпрд╛рдБ**: workshop рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ `filesystem:read` рдФрд░ `filesystem:write` рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред - **рдкрдврд╝рддрд╛ рд╣реИ** `~/.claude` (рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ, рдпрд╛рджреЗрдВ, рдХреМрд╢рд▓, `CLAUDE.md`, `settings.json`) тАФ рд╕рдЦреНрддреА рд╕реЗ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ тАФ рдФрд░ рдЬрд┐рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред - **рд▓рд┐рдЦрддрд╛ рд╣реИ** рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ `sessionPersistence` рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ DSH рд╕рддреНрд░ рд▓реЙрдЧ (рдХреЗрд╡рд▓ create + append, рдХрднреА рд╣рдЯрд╛рдП/рджреЛрдмрд╛рд░рд╛ рд▓рд┐рдЦреЗ/рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ), workspace-registry рд░рд┐рдХреЙрд░реНрдб, `$DSH_HOME/claude-move/` рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЕрдкрдирд╛ рдХреИрд╢, рдФрд░ `claudecode` workspace рдлрд╝реЛрд▓реНрдбрд░ред - **рдХрднреА рдирд╣реАрдВ** Claude рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрджрд▓рддрд╛, рдЕрдиреНрдп рдРрдкреНрд╕ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдЫреВрддрд╛, рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ред **рдХреЛрдИ** рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдирд╣реАрдВ рдкрдврд╝рд╛ рдпрд╛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ред ## рд╕реБрд░рдХреНрд╖рд╛ рд╕реАрдорд╛рдПрдБ - **рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ; DSH рд▓реЙрдЧ рдХреЗрд╡рд▓-append** (рдХреЗрд╡рд▓ `create` + `append`)ред - **рдмрд╛рд╣рд░реА рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЗрдирдкреБрдЯ рд╣реИрдВ** тАФ рдЙрдирдореЗрдВ рдХреБрдЫ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛; system/developer/thinking рд╕рд╛рдордЧреНрд░реА рдХрднреА рд░рд┐рдЬрд╝реНрдпреВрдо рд╣реИрдВрдбрдСрдлрд╝ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреАред - **рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗрд╡рд╛рдПрдБ** тАФ `sessionPersistence` / `workspaceRegistry` / `tools` / `commands` / `systemPrompt` / `skills` / `webServer`; рдЗрдВрдЬрди рдпрд╛ UI рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВред - **рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рд╕реНрдерд╛рди рд╕реЗ рд╕реВрдЪрд┐рдд** рд╣реЛрддреА рд╣реИ (file:line:kind); `permission`/`permission-mode`/`queue-operation` рд░рд┐рдХреЙрд░реНрдб рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗред - **рд╡рд┐рдЬрд╝рд╛рд░реНрдб рд▓реЗрдЦрди рдЕрдиреБрдореЛрджрди-рдЧреЗрдЯреЗрдб** тАФ `allowed-once` рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рд╣реЛрдиреЗ рдкрд░ рд╢реВрдиреНрдп рд▓реЗрдЦрдиред ## рдЬреНрдЮрд╛рдд рд╕реАрдорд╛рдПрдБ - рд╢реАрд░реНрд╖рдХ `custom-title`/`ai-title`/рдкрд╣рд▓реЗ рдкреНрд░реЙрдореНрдкреНрдЯ рд╕реЗ рдЖрддреЗ рд╣реИрдВ; Claude `summary` рд░рд┐рдХреЙрд░реНрдб рд╕реВрдЪрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдкрд░ DSH compaction рдиреЛрдб рдореЗрдВ рдореИрдк рдирд╣реАрдВ рд╣реЛрддреЗ (рдПрдХ рд╡реИрдз compaction рд▓реЗрдирджреЗрди рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рдиреЗ рдкрд░ рдЙрд╕рдХреА seq рд░реЗрдВрдЬ рдФрд░ checkpoint рд╕рдВрджреЗрд╢ рдЧрдврд╝рдирд╛ рдкрдбрд╝реЗрдЧрд╛)ред - `thinking` рдмреНрд▓реЙрдХ `reasoning` рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдкрд░ рдХрднреА рд░рд┐рдЬрд╝реНрдпреВрдо рд╣реИрдВрдбрдСрдлрд╝ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗред - рдмрд╛рдзрд┐рдд рдЯреВрд▓ рдХреЙрд▓ рд╕рд┐рдВрдереЗрдЯрд┐рдХ рддреНрд░реБрдЯрд┐ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдорд░рдореНрдордд рд╣реЛрддреЗ рд╣реИрдВ (рдХрднреА рдЫреЛрдбрд╝реЗ рдирд╣реАрдВ рдЬрд╛рддреЗ), `repaired.synthesized` рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪрд┐рддред - рдЕрдиреБрдорддрд┐-рд╡рд░реНрдЧ рд░рд┐рдХреЙрд░реНрдб рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ; DSH рдЕрдиреБрдорддрд┐-рдкреНрд░реАрд╕реЗрдЯ рд╕реБрдЭрд╛рд╡ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред - рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ `fs.streamText` рд╕рддрд╣ рдХреЗ рдмрд┐рдирд╛ рд╣реЛрд╕реНрдЯ рдкрд░, `maxTranscriptBytes` рд╕реЗ рдмрдбрд╝реА рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ рдЖрдВрд╢рд┐рдХ рдЖрдпрд╛рдд рдХреЗ рдмрдЬрд╛рдп рдЬрд╝реЛрд░ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрддреА рд╣реИрдВред - `workspaceMode: 'per-project'` рдореЗрдВ, рдЬрд┐рди рд╕рддреНрд░реЛрдВ рдХреА рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣рдЯрд╛ рджреА рдЧрдИ рдереА рд╡реЗ рдлрд┐рд░ рднреА рдЖрдпрд╛рдд рд╣реЛрддреЗ рд╣реИрдВ рдкрд░ workspace рдЬреБрдбрд╝рд╛рд╡ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ (рдмрд┐рдирд╛ рд╕рдореВрд╣ рдХреЗ рдЫреВрдЯ рдЬрд╛рддреЗ рд╣реИрдВ; `workspace.attached: false` рдФрд░ рдПрдХ `reason`)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ `claudecode` workspace рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ред - рдпрджрд┐ рдХреЛрдИ рдЯреНрд░рд╛рдВрд╕рдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд╛рди рдкрд░ рд╣реА рдХрд╛рдЯ рджреА рдЧрдИ рдпрд╛ рд░реАрд╕реЗрдЯ рдХрд░ рджреА рдЧрдИ (рджрд░реНрдЬ рдЖрдпрд╛рдд рд╕реЗ рдХрдо рдЯрд░реНрди), рддреЛ рдкреБрдирдГ-рдЖрдпрд╛рдд рдЙрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ `sourceShrunk` рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ; рддрд╛рдЬрд╝рд╛ рдкреВрд░реА рдХреЙрдкреА рдХреЗ рд▓рд┐рдП `force: true` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред - рд╡реЗрдм рдкреИрдирд▓ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЕрдкрдиреЗ JSON рдорд╛рд░реНрдЧреЛрдВ рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╢реВрдиреНрдп-рдмрд┐рд▓реНрдб рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреИрдирд▓ рд╣реИ; рдпрд╣ shell рдХреА рдЖрдВрддрд░рд┐рдХ UI рд╕реНрд▓реЙрдЯ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ред ## рдореЙрдбрд▓ рдЕрдиреБрднрд╡ - рдореЙрдбрд▓ рдХреЗ рд╕рд╛рдордиреЗ рдХреА рд╕рддрд╣ рджреЛ рдЯреВрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг/schema рдФрд░ рдЙрдирдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВ: `claude_scan` рд╕рдВрд░рдЪрд┐рдд рдЗрдВрдбреЗрдХреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, `import_claude` рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐-рдлрд╝рд╛рдЗрд▓ рд╕рд╛рд░рд╛рдВрд╢ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЯреВрд▓ рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рдпрдВ `tool/result` рдШрдЯрдирд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдпреЛрдЧреНрдп рд╣реИред - рдХреЛрдИ рдЫрд┐рдкрд╛ рдореЙрдбрд▓-рд╕рд╛рдордиреЗ рдкрд╛рда рдирд╣реАрдВ; рдпрд╛рдж/`CLAUDE.md` рдЕрдиреБрднрд╛рдЧ `ctx.systemPrompt` рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВ (рдкреНрд░реЙрдореНрдкреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА, рд╕рддреНрд░ рд▓реЙрдЧ рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдпреЛрдЧреНрдп)ред ## рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг - рдкрдВрдХреНрддрд┐ рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ: `dsh --profile

--dump-config` рдХреЛ `# == dsh-claude-move` рдЫрд╛рдкрдирд╛ рдЪрд╛рд╣рд┐рдП; `dsh plugin --profile

add ...` рдлрд┐рд░ рдЪрд▓рд╛рдПрдБред - рд╡реЗрдм рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИ рдкрд░ рдЪреБрдкрдЪрд╛рдк рдЕрдЯрдХ рдЬрд╛рддрд╛ рд╣реИ: `dsh plugin add` рджреНрд╡рд╛рд░рд╛ рдЖрд░рдВрдн рдХрд┐рдП рдЧрдП рдирдП рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ `dsh-base` рд╣реЛрддрд╛ рд╣реИ тАФ `dsh.profile.bundles` рдореЗрдВ `@deepseek-ai/dsh-web-app` рдЬреЛрдбрд╝реЗрдВред рдореМрдЬреВрджрд╛ `web` рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред - рдкреИрдирд▓ рдорд╛рд░реНрдЧ 404: рд╡реЗ рдХреЗрд╡рд▓ рддрднреА рдкрд░реЛрд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм `enableWebPanel: true` рдФрд░ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕рдВрдпреЛрдЬрд┐рдд рд╣реЛ; рдмреВрдЯ рд▓реЙрдЧ рдореЗрдВ FAILED fibers рджреЗрдЦреЗрдВред - рдЖрдпрд╛рдд "transcript ш┐Зхдз" рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ: `maxTranscriptBytes` рдмрдврд╝рд╛рдПрдБ рдпрд╛ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВред - рдЖрдпрд╛рдд рд╕рдлрд▓ рд╣реБрдЖ рдкрд░ рд╕рд╛рдЗрдбрдмрд╛рд░ рдХреЛрдИ рдирдпрд╛ рд╕рддреНрд░ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛: рдкреГрд╖реНрда рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓рд╛ рдерд╛ тАФ рдкреИрдирд▓ рдХрд╛ рд░реАрдлрд╝реНрд░реЗрд╢ рдмрдЯрди рдПрдХ рдмрд╛рд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдпрд╛ рдкреГрд╖реНрда рдлрд┐рд░ рд▓реЛрдб рдХрд░реЗрдВ)ред DSH рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдХрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред - рд▓реЙрдЧ: рдмреВрдЯ рд╡рд┐рдлрд▓рддрд╛рдПрдБ `dsh` рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЫрдкрддреА рд╣реИрдВ; рдкреНрд▓рдЧрдЗрди workspace/рдЖрдпрд╛рдд-рдореИрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП `[claude-move]`-рдЙрдкрд╕рд░реНрдЧ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред ## рд╢реНрд░реЗрдп (рдУрдкрди-рд╕реЛрд░реНрд╕ рдШрдЯрдХ) рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ Apache License 2.0 рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИ; рдирд┐рдореНрди MIT-рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдШрдЯрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ (рдкреВрд░рд╛ рдкрд╛рда [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) рдореЗрдВ): - рд░реВрдкрд╛рдВрддрд░рдг рдХреЛрд░ [Nwflower/dsh-chat-import](https://github.com/Nwflower/dsh-chat-import) рд╕реЗ vendored (MIT)ред - рдЦреЛрдЬ рдкрд░рдВрдкрд░рд╛рдПрдБ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбрд▓ [Demogorgon314/dsh-resume-plugin](https://github.com/Demogorgon314/dsh-resume-plugin) рд╕реЗ (MIT)ред - рдпрд╛рдж/рдХреМрд╢рд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ frontmatter рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдкреИрдЯрд░реНрди [YYTbit/dsh-plugin-claude-bridge](https://github.com/YYTbit/dsh-plugin-claude-bridge) рд╕реЗ (MIT)ред ## рд╡рд┐рдХрд╛рд╕ ```sh npm install # peer deps: @deepseek-ai/dsh-tools@>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0, @deepseek-ai/cordis, schemastery npm test # node --test test/*.test.mjs ``` CI GitHub Actions ([test.yml](.github/workflows/test.yml)) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Linux/macOS/Windows рдкрд░ Node 22 рдореЗрдВ рдкреВрд░реА рд╕реБрдЗрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИред ## рд╡рд┐рд╖рдп `deepseek-harness`, `dsh-plugin`, `claude-code`, `migration`, `session-import`, `resume` ## рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ - [@PerryLink](https://github.com/PerryLink) тАФ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдХ: рдЖрдпрд╛рдд рдкрд╛рдЗрдкрд▓рд╛рдЗрди, рдЪрд╛рд░-рд╕реНрд░реЛрдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╡рд┐рдЬрд╝рд╛рд░реНрдб, рд╡реЗрдм рдкреИрдирд▓, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, CI/CD рдФрд░ рд░рд┐рд▓реАрдЬрд╝ред - [@OLDnana1](https://github.com/OLDnana1) тАФ рдмрд╛рдзрд┐рдд рдЯреВрд▓-рдХреЙрд▓ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХрд╛ рдореВрд▓-рдХрд╛рд░рдг рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рд░рд┐рдЬрд╝реНрдпреВрдо рдкрд░ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ HTTP 400 рд▓реМрдЯрд╛рддреЗ рдереЗред - [@GooodWei](https://github.com/GooodWei) тАФ рдкрд╣рдЪрд╛рдирд╛ рдХрд┐ `README.md` (рдФрд░ рдХреЛрдИ рднреА рд╡рд┐рд╡рд░рдг-рд░рд╣рд┐рдд `.md`) рдЧрд▓рддреА рд╕реЗ рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛ рдЬрд╛рддрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ DSH рдХрд╛ рдХреМрд╢рд▓ рд▓реЛрдб рдЯреВрдЯ рдЬрд╛рддрд╛ рдерд╛ред ## PerryLink DSH рдкреНрд▓рдЧрдЗрди рдкрд░рд┐рд╡рд╛рд░ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ [PerryLink](https://github.com/PerryLink) рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░рдХреНрд╖рд┐рдд [42 DeepSeek Harness рдкреНрд▓рдЧрдЗрдиреЛрдВ](https://github.com/PerryLink) рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рднреА рдХрд░реЗрдВрдЧреЗ: | Plugin | рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ | рд╕реНрдерд┐рддрд┐ | |---|---|---| | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | рдЕрдиреБрдореЛрджрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рджреНрд╡рд┐рддреАрдп-рдореЙрдбрд▓ рд╕реНрд╡рддрдГ-рд╕рдореАрдХреНрд╖рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓-рдмрдВрдж | | | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | рд╡реЗрдм UI рд╕рд╛рдЗрдбрдмрд╛рд░, рд╕рдВрджреЗрд╢ рдФрд░ рдЕрд╡рд░реЛрдзрди рдХреЗ рд╕рд╛рде рдЯрд┐рдХрд╛рдК рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд╛рдЗрд▓реНрдб рдПрдЬреЗрдВрдЯ | | | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдкреНрд░рд╢рд╛рд╕рди: рдмрдЬрдЯ, рдХрд╛рд░реНрдмрди рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдПрдХ рдкреИрдирд▓ рдореЗрдВред | | | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-рд╕рдорддреБрд▓реНрдп: рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕рддреНрд░ рдлрд╝реЙрд░реНрдХ, рдПрдХ-рдмрд╛рд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ | | | **[dsh-click](https://github.com/PerryLink/dsh-click)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЗрдЯрд┐рд╡ рдбреЗрд╕реНрдХрдЯреЙрдк рдирд┐рдпрдВрддреНрд░рдг тАФ Windows рдкрд╣рд▓реЗред | | | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | рд╡реЗрдм рдХрдВрдкреЛрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓-рд╢реИрд▓реА рдЗрдирдкреБрдЯ рдЗрддрд┐рд╣рд╛рд╕: рддреАрд░, Ctrl+R рдЦреЛрдЬ | | | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | рдбреЗрдЯрд╛рд╕реЗрдЯ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рдБрдЪ рд╡ рдЙрджреНрдзрд░рдг рд╕рддреНрдпрд╛рдкрди (рдпрд╣рд╛рдБ рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрдЦреНрдпрд╛-рд╕реЗрддреБ) | | | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдореНрдкреНрдЯ-рдЗрдВрдЬреЗрдХреНрд╢рди, рдЬреЗрд▓рдмреНрд░реЗрдХ рдФрд░ рд╕реАрдХреНрд░реЗрдЯ-рд▓реАрдХ рд░рдХреНрд╖рд╛ред | | | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ-рдЕрдиреБрд╢рд╛рд╕рди рд░рдХреНрд╖рдХ: рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдкреВрдЫрддрд╛рдЫ, рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░, рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕рдореАрдХреНрд╖рд╛ | | | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рд╕реНрдереИрддрд┐рдХ-рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рд░реВрдЯрд┐рдВрдЧред | | | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рд░реАрдб-рдУрдирд▓реА рдкреНрд░рджрд░реНрд╢рди рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ред | | | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | рдЪреАрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореНрдпреВрдЪреБрдЕрд▓ рдлрдВрдб рдХреЗ рд▓рд┐рдП рдирд┐рдпрддрд╛рддреНрдордХ рдЕрдиреБрд╕рдВрдзрд╛рди рд░рд┐рдкреЛрд░реНрдЯ | | | **[dsh-github](https://github.com/PerryLink/dsh-github)** | DSH рдХреЗ рд▓рд┐рдП GitHub PR/issues рдПрдХреАрдХрд░рдг, рд╣рд░ рд▓реЗрдЦрди рдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд | | | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | рдЙрджреНрдпреЛрдЧ-рдЕрдиреБрд╕рдВрдзрд╛рди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЬреЛ рдЗрд╕ рдкреНрд▓рдЧрд┐рди рдХреЗ `ctx.researchReport.assemble` рд╕реЗ рдбрд┐рд▓реАрд╡рд░реЗрдмрд▓ рд╕реАрд▓ рдХрд░рддрд╛ рд╣реИ | | | **[dsh-library](https://github.com/PerryLink/dsh-library)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреНрдЮрд╛рдирдХреЛрд╢ред | | | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп-рдореЙрдбрд▓ (Ollama) рдПрдХреАрдХрд░рдгред | | | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ LSP рдирд┐рджрд╛рди, рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдкреВрд░реНрдгрддрд╛, рдХреЛрдб рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рдирд╛рдо рдмрджрд▓рдирд╛ | | | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII рдорд╛рд╕реНрдХрд┐рдВрдЧ рдорд┐рдбрд▓рд╡реЗрдпрд░: рдореЙрдбрд▓ рд╕реАрдорд╛ рдкрд░ рдЕрдирд╛рдо рдХрд░реЗрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рд▓реЗрдпрд░ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ | | | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓рд╛ MCP рд░рдирдЯрд╛рдЗрдо рдкреИрдирд▓: /mcp рдХрдорд╛рдВрдб + рд╕реНрдерд┐рддрд┐, рдЯреВрд▓ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ Settings рдЯреИрдм | | | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | рдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд рдХреНрд░реЙрд╕-рд╕рддреНрд░ рдореЗрдореЛрд░реА: ctx.memory рд╕реАрдо + SQLite + рдореЗрдореЛрд░реА рдЯреВрд▓ | | | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП OpenTelemetry рдФрд░ Langfuse рдЕрд╡рд▓реЛрдХрдиреАрдпрддрд╛ рдирд┐рд░реНрдпрд╛рддрдХред | | | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-рд╕рдорддреБрд▓реНрдп рд░рдирдЯрд╛рдЗрдо рд╢реИрд▓реА рдмрджрд▓рд╛рд╡ | | | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | рдорд▓реНрдЯреА-рдЪреИрдирд▓ рдЕрдиреБрдореЛрджрди/рдкреНрд░рд╢реНрди рдмреНрд░рд┐рдЬ: WeChat/Telegram/Feishu, рд╕рддреНрд░ рдХрдВрд╕реЛрд▓ | | | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | рдСрдбрд┐рдЯ рдХреЗ рд╕рд╛рде Claude Code-рд╢реИрд▓реА рдШреЛрд╖рдгрд╛рддреНрдордХ allow/deny/ask рдЕрдиреБрдорддрд┐ рдирд┐рдпрдо | | | **[dsh-personal-directive](https://github.com/PerryLink/dsh-personal-directive)** | рд╢реАрд░реНрд╖-рдмрд╛рд░ рдЯреЙрдЧрд▓ рдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрддрд┐рдЧрдд рдирд┐рд░реНрджреЗрд╢ рдЗрдВрдЬреЗрдХреНрдЯрд░ (рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг) | | | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | рдорд╛рдБрдЧ рдкрд░ рдПрдЬреЗрдВрдЯ рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓рдЧрдЗрди-рд╡рд┐рдХрд╛рд╕ рдЬреНрдЮрд╛рди рдЖрдзрд╛рд░ | | | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | рд╕рд╛рдордЧреНрд░реА-рдкрддрд╛ рд╕рд╛рдХреНрд╖реНрдп рдФрд░ рд╕реАрд▓рдмрдВрдж рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╡рд╛рд▓рд╛ рд╕рддреНрдпрд╛рдкрди-рдпреЛрдЧреНрдп рдЕрдиреБрд╕рдВрдзрд╛рди-рд░рд┐рдкреЛрд░реНрдЯ рдЗрдВрдЬрди | | | **[dsh-score](https://github.com/PerryLink/dsh-score)** | DeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреА рдмрд╣реБ-рдЖрдпрд╛рдореА рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрдХреЛрд░рд┐рдВрдЧред | | | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | рдЯрд┐рдХрд╛рдК рдХреНрд░рдо рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рд╕рддреНрд░ рдкрд┐рди рдХрд░реЗрдВ | | | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдбрд┐рд╡рд╛рдЗрд╕ рд╕рддреНрд░ рд╕рд┐рдВрдХ тАФ рдЖрдкрдХреЗ рд╕рддреНрд░ рд╕реНрдЯреЛрд░ рдХрд╛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд git рдорд┐рд░рд░ред | | | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | рд╕реБрд░рдХреНрд╖рд╛-рдСрдбрд┐рдЯ рдХреМрд╢рд▓ рдкреИрдХ: рдЧреБрдкреНрдд рд╕реНрдХреИрди, рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЖрдкреВрд░реНрддрд┐-рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдореАрдХреНрд╖рд╛ | | | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рдЖрд╡рд╛рдЬрд╝-рдкреНрд░рдердо рд╕рддреНрд░ рд▓реВрдк: рдмреЛрд▓реЗрдВ рдФрд░ рдЙрддреНрддрд░ рд╕реБрдиреЗрдВред | | | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | DeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрдердХ рдЗрдВрд╕реНрдЯреЙрд▓-рдПрдВрдб-рд╕реНрдореЛрдХ рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ред | | | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 рдХрд╛рд░реНрдп рдмреНрд░рд┐рдЬ: рд╕рддреНрд░-рд╣реЗрдбрд░ рдкреИрдирд▓ + 11 рдЯреВрд▓ | | | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | DeepSeek Harness рдХреЗ рд▓рд┐рдП рд╡реЗрдВрдбрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ JSON рдорд░рдореНрдорддред | | | **[dsh-wechat](https://github.com/pan17/dsh-wechat)** | WeChat тЖФ DSH рдмреНрд░рд┐рдЬ (Tencent iLink bot): рдЯреЗрдХреНрд╕реНрдЯ/рдЗрдореЗрдЬ/рдлрд╝рд╛рдЗрд▓/рдЖрд╡рд╛рдЬрд╝, рдЪреИрдЯ рдореЗрдВ рдЕрдиреБрдореЛрджрди | | | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | | | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | | | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | | | **[dsh-kit](https://github.com/PerryLink/dsh-kit)** | One-command starter pack that installs the core family | | | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | | | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | | | **[dsh-plugin-portal](https://github.com/PerryLink/dsh-plugin-portal)** | Zero-dependency static portal rendering the whole plugin family as one page | | | **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` тЖТ `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | | | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | | | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | | | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | | ### DSH Desktop рдорд╛рд░реНрдХреЗрдЯ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рд╕рднреА PerryLink рдкреНрд▓рдЧрдЗрди DSH Desktop рдХреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: **Market тЖТ Sources тЖТ add source тЖТ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ** `https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json` **тЖТ рдЪреБрдиреЗрдВ**ред рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдорд╛рд░реНрдХреЗрдЯ рдХреЗ npm-identity рд╕рддреНрдпрд╛рдкрди рдФрд░ рдЖрдкрдХреА рдкреБрд╖реНрдЯрд┐ рд╕реЗ рд╣реА рд╣реЛрддрд╛ рд╣реИред ## рд▓рд╛рдЗрд╕реЗрдВрд╕ [Apache License 2.0](LICENSE) ┬й 2026 dsh-claude-move contributors