GGGengXXX/make-dsh-better

Restaura o conjunto de plugins do DeepSeek Harness (DSH) em uma nova máquina a partir de um manifesto com versões fixas, usando a CLI consciente do ambiente Desktop, configuração de perfil opcional e patches locais versionados.

O que é make-dsh-better?

Esta skill permite que um usuário recrie exatamente o mesmo conjunto de plugins do DeepSeek Harness (DSH) em uma nova máquina, sem precisar lembrar nomes de pacotes ou versões. A fonte da verdade é um arquivo `plugins.json` que registra cada plugin com sua versão exata, notas e configurações pós-instalação opcionais. A skill detecta automaticamente a CLI correta do DSH (priorizando o wrapper do aplicativo Desktop), verifica a compatibilidade de versão, gera um plano de instalação/atualização/salto, e executa a instalação após confirmação do usuário. Além disso, oferece patches locais opcionais (como comportamento de tecla Enter vs Cmd+Enter) que são versionados e reversíveis. A skill é idempotente: plugins já instalados na versão correta são ignorados. Ela suporta os perfis desktop, web e tui, e inclui scripts para verificação, captura do manifesto e aplicação de patches. Toda operação respeita a segurança: não copia segredos, chaves de API, sessões ou arquivos de workspace.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/GGGengXXX/make-dsh-better/tree/HEAD/skills/dsh-plugin-bootstrap

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Bootstrap de Plugins DSH

Restaura um conjunto de plugins conhecido do DeepSeek Harness (DSH) em uma nova máquina.

A fonte da verdade é plugins.json: cada plugin está fixado em uma versão exata, com notas e configuração pós-instalação opcional. Os scripts reproduzem a configuração sem que o usuário precise lembrar nomes de pacotes.

História do usuário

Estou em uma máquina nova. Quero que o DSH instale todos os plugins que uso na minha outra máquina, com as mesmas versões e os mesmos comportamentos principais.

Obtendo esta skill na máquina nova

A cópia pública canônica está em:

https://github.com/GGGengXXX/make-dsh-better

Na máquina nova:

git clone https://github.com/GGGengXXX/make-dsh-better.git
mkdir -p ~/.agents/skills
cp -R make-dsh-better/skills/dsh-plugin-bootstrap ~/.agents/skills/

Se você já tem o repositório clonado, apenas copie o diretório da skill. Em seguida, inicie uma nova sessão DSH. O DSH descobre skills em ~/.agents/skills/<nome>/SKILL.md; a skill aparece como dsh-plugin-bootstrap. Se a skill já estiver nesse diretório, pule a cópia.

A cópia de trabalho é a fonte da verdade para edição; copie novamente após alterá-la.

O que esta skill faz

  1. Lê plugins.json (a lista de plugins com versões fixas).
  2. Detecta a CLI correta do DSH. O perfil desktop é reservado pelo aplicativo Desktop, então a skill prefere o wrapper de CLI do aplicativo em vez de um dsh genérico no PATH.
  3. Verifica a versão do DSH em relação ao manifesto e avisa/bloqueia em caso de incompatibilidade.
  4. Mostra um plano de instalação/atualização/salto, pede confirmação e instala cada plugin com dsh plugin --profile <profile> add <nome>@<versão>.
  5. Opcionalmente aplica a configuração de nível de perfil dsh-browser-cdp (caminho do Chrome + --headless) em cordis.patch.yml.
  6. Verifica se cada plugin é uma dependência e um pacote selecionado.
  7. Opcionalmente aplica os dois patches locais com versões fixas:

Ele não copia segredos, chaves de API, sessões, arquivos de workspace ou o diretório ~/.dsh inteiro.

Fluxo de trabalho quando o usuário invoca esta skill

Trabalhe a partir do diretório da skill (o diretório que contém este SKILL.md).

1. Inspecione antes de tocar em qualquer coisa

node scripts/install.mjs --profile desktop --dry-run

Mostre o plano ao usuário. Se o plano instalar ou atualizar algo, peça confirmação explícita antes de executar sem --dry-run.

Se o alvo do usuário não for o aplicativo Desktop, passe o perfil real (por exemplo --profile web ou --profile tui). Para um perfil não-Desktop, um dsh normal no PATH é suficiente; o script lida com isso.

2. Instalar

node scripts/install.mjs --profile desktop --yes

Flags úteis:

FlagSignificado
--dry-runImprime o plano; não altera nada
--yes / -yConfirmação não interativa
--jsonResumo legível por máquina no stdout (logs vão para stderr)
--no-configNão modifica cordis.patch.yml
--skip <pkg>Pula um plugin (repetível)
--strictExige correspondência exata da versão do DSH
--allow-dsh-mismatchContinua mesmo quando major.minor difere
--dsh-cli <caminho>Caminho explícito da CLI
--manifest <caminho>Usa outro manifesto

O script é idempotente: plugins já instalados na versão fixada e selecionados como pacotes são ignorados.

3. Aplicar os patches locais opcionais

Somente se o usuário quiser o comportamento exato da máquina de origem:

node scripts/apply-patches.mjs --profile desktop --dry-run
node scripts/apply-patches.mjs --profile desktop --yes

Isso modifica arquivos de terceiros instalados em node_modules/. Ele recusa em caso de incompatibilidade de versão, a menos que --force seja fornecido, e mantém uma cópia .bak-<timestamp>. Informe ao usuário que isso é um patch local que uma futura atualização do plugin pode sobrescrever; após uma atualização, execute novamente o script de patch ou configure o comportamento nas configurações do plugin.

--only keyboard e --only markdown limitam o escopo do patch.

4. Reiniciar / atualizar

Após instalar plugins, informe ao usuário para reiniciar o DeepSeek Harness (ou forçar atualização da interface Web com Cmd+Shift+R no macOS). Os pacotes do cliente são armazenados em cache por carregamento de página; uma atualização normal pode não ser suficiente.

5. Verificar

O instalador imprime uma tabela de verificação. Se um plugin mostrar FAIL, verifique:

  • as dependências do package.json do perfil e os dsh.profile.bundles;
  • se a versão do pacote é compatível com a versão do DSH em execução;
  • os logs do gerenciador de plugins em ~/.dsh/profiles/<profile>/.plugin-manager/logs/.

Atualizando o manifesto (capturar na máquina de origem)

Quando o usuário instalar/remover plugins na máquina principal, atualize o manifesto:

node scripts/capture.mjs --profile desktop --dry-run   # pré-visualizar
node scripts/capture.mjs --profile desktop             # escrever plugins.json

Isso lê os pacotes selecionados do perfil, registra a versão instalada de cada um e preserva os campos note existentes. Faça commit/push do diretório da skill (ou copie-o para a máquina nova) em seguida.

Regra do perfil Desktop

A CLI genérica do DSH rejeita deliberadamente --profile desktop:

error: perfil "desktop" é gerenciado exclusivamente pelo aplicativo Electron

Use o wrapper de CLI do aplicativo Desktop:

/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh

install.mjs o encontra automaticamente no macOS. Em outras plataformas, ou se o aplicativo estiver em outro local, defina DSH_CLI ou passe --dsh-cli.

Formato do manifesto

plugins.json:

{
  "schemaVersion": 1,
  "targetProfile": "desktop",
  "dshVersion": "0.2.1-rc.2",
  "plugins": [
    { "name": "@scope/plugin", "version": "1.2.3", "note": "por que está aqui" }
  ],
  "config": {
    "dsh-browser-cdp": {
      "chromePath": "auto",
      "runtimeArgs": "--headless"
    }
  },
  "localPatches": [
    { "package": "dsh-keyboard-shortcut", "version": "0.2.0", "description": "..." }
  ]
}
  • dshVersion é a versão na qual o manifesto foi capturado. Mesmo major.minor é permitido com um aviso; major.minor diferente precisa de --allow-dsh-mismatch.
  • targetProfile é apenas um padrão; --profile o substitui.
  • config.dsh-browser-cdp.chromePath: "auto" faz com que o instalador procure locais comuns de Chrome/Chromium/Edge/Brave. Defina um caminho explícito se a busca falhar.
  • localPatches é documentação para humanos; o instalador não o aplica automaticamente. Execute apply-patches.mjs explicitamente.

Conjunto de plugins incluído (capturado em 2026-10-24)

PluginVersãoFunção
@flyer103/dsh-side-chat0.6.0Conversa lateral nativa na barra lateral direita
dsh-browser-cdp1.6.0Navegador agente via Chrome/CDP; painel de watch headless
dsh-keyboard-shortcut0.2.0Enter=nova linha, Cmd/Ctrl+Enter=enviar
dsh-markdown-bubble0.1.5Mensagens de usuário renderizadas em Markdown
dsh-markdown-input0.2.0-alpha.20Editor Markdown ao vivo (alfa)
dsh-better-sidebar0.28.0Árvore de arquivos + CodeMirror editável + Git/tarefas/terminal (pesado)

Notas:

  • dsh-markdown-input é alfa; se sua tomada do editor se comportar mal, desabilite-o em Configurações → Plugins.
  • dsh-better-sidebar é pesado e inclui seu próprio chat lateral; pode coexistir com @flyer103/dsh-side-chat, mas o usuário verá dois pontos de entrada para chat lateral. Decida qual manter.
  • Os Arquivos e Pré-visualização de Documentos internos fazem parte do próprio DSH; não estão neste manifesto e não precisam ser instalados.

Segurança

  • Plugins DSH de terceiros são executados no mesmo processo e podem executar ações com as permissões do usuário. Instale apenas a partir do manifesto em que o usuário confia.
  • Versões exatas são fixadas. Não substitua silenciosamente por latest.
  • Os patches locais modificam node_modules; são opcionais, com versões fixas, com backup e reversíveis (restaure o arquivo .bak ou reinstale o plugin).
  • Não copie ~/.dsh/.credentials.yaml, logs de sessão ou arquivos de workspace como parte de "instalar plugins".

Solução de problemas

SintomaCorreção
perfil "desktop" é gerenciado exclusivamente…Use o wrapper de CLI do aplicativo Desktop ou DSH_CLI; veja acima
Não foi possível encontrar uma CLI dshInstale o DSH Desktop, ou passe --dsh-cli /caminho/para/dsh
perfil "desktop" não está inicializadoAbra o DSH Desktop uma vez para que ~/.dsh/profiles/desktop seja criado
ECONNRESET / falha na buscaTente novamente; o instalador tenta automaticamente uma vez; verifique rede/proxy/registro
Plugin instalado mas UI inalteradaReinicie o DSH ou force atualização (Cmd+Shift+R); os pacotes do cliente estão em cache
Plugin instalado mas não ativoConfirme se está em dsh.profile.bundles; o add do gerenciador de plugins normalmente o anexa
Editor dsh-markdown-input ausenteVerifique Configurações → Plugins; plugin alfa; force atualização; verifique console para erros de slot/editor
Conflito dsh-better-sidebar/side-chatAmbos podem iniciar; escolha uma entrada de chat lateral ou remova um plugin
Patch diz já-patchedEsperado; o arquivo já possui o comportamento alvo
Patch diz pulado — versão …Versão do manifesto/plugin mudou; revise a nova versão antes de usar --force

Arquivos

ArquivoPropósito
SKILL.mdEste fluxo de trabalho
plugins.jsonManifesto de plugins com versões fixas
scripts/install.mjsSimulação/instalação/verificação
scripts/capture.mjsAtualizar manifesto a partir de um perfil ativo
scripts/apply-patches.mjsPatches locais opcionais de comportamento principal
patches/README.mdJustificativa dos patches e fallback manual

Habilidades Relacionadas