# ЁЯЪЪ dsh-claude-move **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) [![DSH plugin](https://img.shields.io/badge/dsh-plugin-тЬЕ-green)](https://github.com/topics/dsh-plugin) [![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)
--- ## рдЕрдиреБрдХреВрд▓рддрд╛ - `dsh 0.1.0-rc.6` (web profile) рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ; peer рдирд┐рд░реНрднрд░рддрд╛рдПрдБ `0.1.0-rc.6` рдкрд░ рдкрд┐рди рд╣реИрдВред Node `^22.19 || >=24`ред - рдЕрдВрддрд┐рдо рдмрд╛рд░ рдПрдХ рддрд╛рдЬрд╝рд╛ tarball рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕рддреНрдпрд╛рдкрд┐рдд: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреИрди, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреИрдЪ рдЖрдпрд╛рдд (рдЖрдЗрдбреЗрдореНрдкреЛрдЯреЗрдВрдЯ рдкреБрдирдГ-рдЖрдпрд╛рдд), workspace рдЬреБрдбрд╝рд╛рд╡ рдФрд░ рдкрд░реНрд╕рд┐рд╕реНрдЯреЗрдВрд╕ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдХреА рдкреБрд╖реНрдЯрд┐; macOS/Linux CI рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рд╣реИрдВред ### рдЕрдиреБрдХреВрд▓рддрд╛ рдореИрдЯреНрд░рд┐рдХреНрд╕ (рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реАрдо) | рд╕рддрд╣ | рдЙрдкрдпреЛрдЧ | рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рдлрд╝реЙрд▓рдмреИрдХ | |---|---|---| | Host рд╕реЗрд╡рд╛рдПрдБ (`tools` / `sessionPersistence` / `workspaceRegistry` / `commands` / `systemPrompt` / `skills` / `webServer`) | рдЬрд╣рд╛рдБ рд╕реВрдЪреАрдмрджреНрдз рд╡рд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ | рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реЗрд╡рд╛рдПрдБ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддреА рд╣реИрдВ; `fs` рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЬрд╝реЛрд░ рд╕реЗ рд╡рд┐рдлрд▓ | | `sessionPersistence.listSnapshots` / `readFrom` / `streamText`-рд╕рдХреНрд╖рдо `fs` / `ctx.jobs` / `ctx.agents.resume` | рдлрд╝реАрдЪрд░-рдбрд┐рдЯреЗрдХреНрдЯреЗрдб | `list()` / рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдирд╛ рдФрд░ рдЬрд╝реЛрд░ рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ / рд╕реНрд╡рдпрдВ рдХрд╛ job map / рд╣реИрдВрдбрдСрдлрд╝ рдЗрдВрдЬреЗрдХреНрдЯ | | Client shell рд╕реЗрд╡рд╛рдПрдБ (`sessions.refresh/open`, `workspaces.refresh`) | рдкреИрдирд▓ apply рдкрд░ рдлрд╝реАрдЪрд░-рдбрд┐рдЯреЗрдХреНрдЯреЗрдб | рдкреВрд░реНрдг-рдкреГрд╖реНрда рд░реАрд▓реЛрдб | | рдирдИ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреНрд╖рдорддрд╛рдПрдБ рдХрднреА рдХрдареЛрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдирд╣реАрдВ рд╣реЛрддреАрдВ тАФ рдкреНрд▓рдЧрдЗрди rc.6 рдкрд░ рдмреВрдЯ рд╣реЛрдиреЗ рдпреЛрдЧреНрдп рд░рд╣рддрд╛ рд╣реИред | | | ## рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ 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`, рдФрд░ рдПрдХ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкреИрдирд▓ред ## рдЪрд╛рд░-рд╕реНрд░реЛрдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╡рд┐рдЬрд╝рд╛рд░реНрдб ```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 рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ тАФ рдЦреБрд▓реЗ рд╡реЗрдм рдкреЗрдЬ рдХреЛ рдПрдХ рдмрд╛рд░ рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░реЗрдВ рдФрд░ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред ## рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ - **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 рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЛ рдХрднреА рдирд╣реАрдВ рдЫреВрддрд╛ред ## рдХреНрдпрд╛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рд╣реЛрддрд╛ рд╣реИ ``` ~/.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-import-all # рдПрдХ-рдЪрд░рдг: рд╕реНрдХреИрди тЖТ рд╕рдм рдЖрдпрд╛рдд тЖТ рд░рд┐рдкреЛрд░реНрдЯ тЖТ рд╡рд░реНрддрдорд╛рди рд╕рддреНрд░ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ /resume-claude latest # рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ Claude рд╕рддреНрд░ рдЬрд╛рд░реА рдХрд░реЗрдВ /resume-claude # рд╕реНрд░реЛрдд рд╕рддреНрд░ id рдпрд╛ import- id рд╕реЗ /resume-claude # рд╢реАрд░реНрд╖рдХ рдорд┐рд▓рд╛рдПрдБ; рдХрдИ рдорд┐рд▓рд╛рди рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдХрднреА рдЕрдиреБрдорд╛рди рдирд╣реАрдВ /claude-move-reset # рдкреНрд▓рдЧрдЗрди рдХреИрд╢ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ (рдмреБрдХрдорд╛рд░реНрдХ + рдЖрдпрд╛рдд рдореИрдк); рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ ``` рд╡реЗрдм рдкреИрдирд▓: рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд╕рддреНрд░ рдЯреНрд░реА, рд╕реНрдерд┐рддрд┐ рдмреИрдЬ (рдЖрдпрд╛рддрд┐рдд рдирд╣реАрдВ / рдЖрдпрд╛рддрд┐рдд / рдирдП-рдЯрд░реНрди-рд╕рд╣рд┐рдд-рдЖрдпрд╛рддрд┐рдд / рд╕реНрд░реЛрдд рдЕрдиреБрдкрд╕реНрдерд┐рдд / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд / 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` | ## рдЙрдкрдХрд░рдг рдФрд░ рд╕рддрд╣реЗрдВ | рд╕рддрд╣ | рдкреНрд░рдХрд╛рд░ | рдиреЛрдЯреНрд╕ | |---|---|---| | `claude_scan` | рдЯреВрд▓ | рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд╕рддреНрд░/рдпрд╛рдж/рдХреМрд╢рд▓/рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдВрд░рдЪрд┐рдд рдЗрдВрдбреЗрдХреНрд╕ | | `import_claude` | рдЯреВрд▓ | рдПрдХ рд╕рддреНрд░, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрд╛ `all` рдЖрдпрд╛рдд рдХрд░реЗрдВ (рд╡реГрджреНрдзрд┐рд╢реАрд▓; `force` рд╕реЗ рдирдИ рдХреЙрдкреА) | | `move_detect` / `move_preview` / `move_run` | рдЯреВрд▓ | рдЪрд╛рд░-рд╕реНрд░реЛрдд рд╡рд┐рдЬрд╝рд╛рд░реНрдб: рд╕реНрдХреИрди, diff рд╕рд╣рд┐рдд рдкреНрд░рддрд┐-рдЖрдЗрдЯрдо рдпреЛрдЬрдирд╛, рдЕрдиреБрдореЛрджрди рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрди | | `/claude-import-all` | рдХрдорд╛рдВрдб | рд╕реНрдХреИрди тЖТ рд╕рдм рдЖрдпрд╛рдд тЖТ рд░рд┐рдкреЛрд░реНрдЯ | | `/resume-claude` | рдХрдорд╛рдВрдб | Claude рд╕рддреНрд░ рдЬрд╛рд░реА рдХрд░реЗрдВ (latest, id рдпрд╛ рдХреАрд╡рд░реНрдб) | | `/claude-move-reset` | рдХрдорд╛рдВрдб | рдкреНрд▓рдЧрдЗрди рдХреИрд╢ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ (рдЖрдпрд╛рддрд┐рдд рд╕рддреНрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ) | | `/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.0-rc.6, @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) рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░рдХреНрд╖рд┐рдд DeepSeek Harness рдкреНрд▓рдЧрдЗрди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рднреА рд╕рдВрднрд╡рддрдГ рдХрд░реЗрдВрдЧреЗ: | рдкреНрд▓рдЧрдЗрди | рдПрдХ рдкрдВрдХреНрддрд┐ | |---|---| | [dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel) | рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ MCP рд░рдирдЯрд╛рдЗрдо рдкреИрдирд▓: /mcp рдХрдорд╛рдВрдб + рд╕реНрдерд┐рддрд┐, рдЯреВрд▓ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ Settings рдЯреИрдм | | [dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck) | рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ-рдЕрдиреБрд╢рд╛рд╕рди рдЧрд╛рд░реНрдб: рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдкреВрдЫрддрд╛рдЫ, рдЯреЗрд╕реНрдЯ рдЧреЗрдЯ, рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕рдореАрдХреНрд╖рд╛ | | [dsh-background-agents](https://github.com/PerryLink/dsh-background-agents) | Web UI рд╕рд╛рдЗрдбрдмрд╛рд░, рд╕рдВрджреЗрд╢ рдФрд░ рдЗрдВрдЯрд░рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЯрд┐рдХрд╛рдК рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЪрд╛рдЗрд▓реНрдб рдПрдЬреЗрдВрдЯ | | [dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions) | language servers рдкрд░ LSP рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕, рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдХрдореНрдкреНрд▓реАрд╢рди, рдХреЛрдб рдПрдХреНрд╢рди рдФрд░ рдирд╛рдо рдмрджрд▓рдирд╛ | | [dsh-output-styles](https://github.com/PerryLink/dsh-output-styles) | Claude Code outputStyles рдХреЗ рд╕рдорддреБрд▓реНрдп рд░рдирдЯрд╛рдЗрдо рд╕реНрдЯрд╛рдЗрд▓ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ | | [dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind) | Claude Code /rewind рдХреЗ рд╕рдорддреБрд▓реНрдп: рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕рддреНрд░ рдлрд╝реЛрд░реНрдХ, рдПрдХ-рдЪрд░рдг рд░реАрд╕реНрдЯреЛрд░ | | [dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules) | рдСрдбрд┐рдЯ рдХреЗ рд╕рд╛рде Claude Code-рд╢реИрд▓реА рдШреЛрд╖рдгрд╛рддреНрдордХ allow/deny/ask рдЕрдиреБрдорддрд┐ рдирд┐рдпрдо | | [dsh-auto-review](https://github.com/PerryLink/dsh-auto-review) | рдЕрдиреБрдореЛрджрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рджреНрд╡рд┐рддреАрдп-рдореЙрдбрд▓ рдСрдЯреЛ-рд░рд┐рд╡реНрдпреВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ fail-closed | | [dsh-memento](https://github.com/PerryLink/dsh-memento) | рдЕрдиреБрдореЛрджрди-рдЧреЗрдЯреЗрдб рдХреНрд░реЙрд╕-рд╕рддреНрд░ рдпрд╛рдж: ctx.memory рд╕реАрдо + SQLite + рдпрд╛рдж рдЯреВрд▓ | | [dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security) | рд╕реБрд░рдХреНрд╖рд╛-рдСрдбрд┐рдЯ рдХреМрд╢рд▓ рдкреИрдХ: рдЧреЛрдкрдиреАрдп рд╕реНрдХреИрди, рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЖрдкреВрд░реНрддрд┐-рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдореАрдХреНрд╖рд╛ | | [dsh-session-pin](https://github.com/PerryLink/dsh-session-pin) | рдЯрд┐рдХрд╛рдК рдХреНрд░рдо рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рд╕рддреНрд░ рдкрд┐рди рдХрд░реЗрдВ | | [dsh-composer-history](https://github.com/PerryLink/dsh-composer-history) | рд╡реЗрдм composer рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓-рд╢реИрд▓реА рдЗрдирдкреБрдЯ рдЗрддрд┐рд╣рд╛рд╕: рддреАрд░, Ctrl+R рдЦреЛрдЬ | | [dsh-github](https://github.com/PerryLink/dsh-github) | DSH рдХреЗ рд▓рд┐рдП GitHub PR/issues рдПрдХреАрдХрд░рдг, рд╣рд░ рд▓реЗрдЦрди рдЕрдиреБрдореЛрджрди-рдЧреЗрдЯреЗрдб | | [dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide) | рдСрди-рдбрд┐рдорд╛рдВрдб рдПрдЬреЗрдВрдЯ рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓рдЧрдЗрди-рд╡рд┐рдХрд╛рд╕ рдЬреНрдЮрд╛рдирдХреЛрд╢ | | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Claude Code рд╕рддреНрд░, рдпрд╛рдж, рдХреМрд╢рд▓ рдФрд░ CLAUDE.md рдХреЛ DSH рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ | ## рд▓рд╛рдЗрд╕реЗрдВрд╕ [Apache License 2.0](LICENSE) ┬й 2026 dsh-claude-move contributors