メインコンテンツへスキップ
W

dsh-agent-bridge

wiiwings1988/dsh-agent-bridge

Lists Claude Code and Codex sessions in the DSH Workspace browser, where they can be opened, continued, pinned, renamed and archived, with terminal, file and git tabs.

インストール

dsh plugin --profile web add github:wiiwings1988/dsh-agent-bridge

README

dsh-agent-bridge

English | 中文

Use your Claude Code and Codex sessions inside DeepSeek Harness (DSH). They appear in the DSH Workspace browser next to your DSH sessions, grouped under the same project folders. You can open them, keep talking, and pin, rename or archive them there.

Unofficial community plugin. Not affiliated with DeepSeek, Anthropic or OpenAI.

Features

  • One sidebar for all your agents. Claude Code and Codex sessions are listed in the stock DSH Workspace browser under their project folder, with a small Claude or Codex mark on each row.
  • The stock row menu works on them. Pin, Rename and Archive use DSH's own menu items, pin indicator and rename dialog. Pins and archives survive restarts.
  • Continue any session. Opening a row shows the full transcript. You can send messages, stop a turn, answer permission prompts and questions, pick the model and reasoning effort, and attach images. Claude runs through the Claude Agent SDK and Codex through codex app-server, so the sessions stay compatible with the CLIs.
  • Start new sessions in any folder, or clone a repository first.
  • Search the contents of every session.
  • Workbench tabs next to each conversation:
    • Terminal.
    • Files: browse, edit and upload.
    • Git: status, diff, branches, worktrees, and drafting commit messages.
    • Extensions: Claude MCP servers, skills and your global git identity.
    • Tasks: TaskMaster.
  • Scheduled follow-ups. Send a message to a session at a set time.
  • Optional tools:
    • Screen control through Peekaboo (macOS).
    • A browser through Playwright MCP.
    • Voice dictation and read-aloud through any OpenAI-compatible speech endpoint.
    • Desktop notifications when a turn ends.
  • Safe fallback. If a future DSH release changes the sidebar so the plugin cannot join it, the sessions move to a standalone "Claude / Codex" page instead of breaking the sidebar.

Requirements

  • DeepSeek Harness 0.2.x, desktop app or dsh web. It is tested with 0.2.1.
  • Node.js 22.19 or newer. DSH ships its own Node.js.
  • Claude Code, installed and logged in.
  • Codex CLI is optional. Without it, only Claude sessions are listed.
  • Developed and tested on macOS. Linux should work; Windows is untested.

Install

Choose the DSH profile you run. The desktop app uses desktop; dsh web uses web.

dsh plugin --profile desktop add github:wiiwings1988/dsh-agent-bridge

Restart DSH. The desktop app ships the dsh command at /Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh on macOS.

To uninstall, run dsh plugin --profile desktop remove dsh-agent-bridge and restart DSH.

Configuration

Every option has a default, so no configuration is required. To change one, add an entry to your profile's cordis.patch.yml, for example ~/.dsh/profiles/desktop/cordis.patch.yml:

- id: agent-bridge
  config:
    claudeExecutable: /path/to/claude
    codexEnabled: false
OptionDefaultMeaning
claudeExecutableclaudeClaude Code command or path. A bare name is looked up on PATH, then in ~/.local/bin, ~/.claude/local, /opt/homebrew/bin and /usr/local/bin.
codexEnabledtrueList and run Codex sessions.
codexExecutablecodexCodex command or path, looked up the same way.
codexApprovalPolicyuntrusteduntrusted or on-request.
codexSandboxworkspace-writeread-only or workspace-write.
codexHistoryTurns20How many recent Codex turns to load when a session is opened.
permissionModedefaultClaude permission mode: default, acceptEdits or plan.
allowedTools[]Claude tools that run without asking.
sessionLimit100Most recent sessions listed per engine.
defaultCwdhome folderFolder for new sessions when none is chosen.
memoryFileemptyA file appended to the system prompt of new Claude sessions, for example the MEMORY.md of a DSH memory plugin.
computerUsetrueGive Claude screen control through Peekaboo, if Peekaboo is installed.
peekabooCommandpeekabooPeekaboo command or path.
browserUsetrueGive Claude a Playwright browser.
browserHeadedfalseShow the browser window.
voiceBaseUrlemptyOpenAI-compatible speech endpoint. Empty turns voice off.
voiceApiKeyEnvVOICE_API_KEYName of the environment variable that holds the speech API key.
voiceSttModel, voiceTtsModel, voiceTtsVoicewhisper-1, tts-1, alloySpeech models and voice.
taskmasterCommandnpxCommand used to run TaskMaster.
watchIntervalMs500How often an open transcript is checked for changes.

Data and privacy

  • The plugin reads sessions where the CLIs keep them: ~/.claude (or CLAUDE_CONFIG_DIR) and ~/.codex. It never uploads them.
  • Rename, fork and delete change the CLI's own session files, so the CLIs see the same result.
  • Pins, archives, drafts and scheduled messages are stored in ~/.dsh/agent-bridge/state.json.
  • The terminal, file and git tabs act on your machine with your user's rights. They are served only to the DSH UI, behind DSH's own login token.
  • Voice sends audio and text only to the speech endpoint you configure.

Development

The build reuses the DSH client bundle preset and type definitions, so it needs a DeepSeek Harness source checkout. Clone this repository three folder levels below the checkout root:

git clone https://github.com/deepseek-ai/deepseek-harness.git dsh
cd dsh && pnpm install && pnpm run build:artifacts
git clone https://github.com/wiiwings1988/dsh-agent-bridge.git local/plugins/dsh-agent-bridge
cd local/plugins/dsh-agent-bridge && pnpm install
pnpm run typecheck && pnpm run build
  • Run your build: dsh plugin --profile web add link:$PWD installs the working copy into a profile.
  • Unit tests: run one file at a time, for example node --import tsx/esm --test tests/graft.test.mjs.
  • End-to-end tests: tests/e2e*.mjs drive a running dsh web instance with Playwright. Pass the instance through DEV_BASE (URL) and DEV_HOME (its DSH_HOME). tests/fixtures holds stand-ins for the Claude and Codex executables.

lib/ is committed, so installing from GitHub needs no build step. Rebuild it before committing source changes.

License

MIT

関連プラグイン