AxelGoal/Deepharn--plugins-deepharn-piel ↗★ 0
deepharn-piel
La piel de Deepharn: paleta y tipografías propias sobre la interfaz de dsh.
AI 분석
核心用途是为 Deepharn 桌面应用(非编程场景的 macOS 客户端)提供视觉主题定制。适合使用 Deepharn 客户端并追求个性化界面的用户。
설치
검증된 bundle이 없거나 호환성 검사에 실패했습니다. 먼저 저장소 설명을 읽어 주세요. 전체 README 읽기 ↗
Deepharn
Una app de escritorio para DeepSeek Harness en macOS, pensada para todo lo que no es programar: escribir, investigar, orquestar tareas y quedarte con lo que producen.
No es un tema ni un envoltorio de la interfaz oficial: es un frontend distinto que habla con el harness por su API, servido desde el propio harness y metido en una ventana nativa.
┌──────────────────────────────────────────────────────────────┐
│ Espacio de trabajo modelo ▾ esfuerzo ▾ ⤢ │
├───────────────┬───────────────────────────┬──────────────────┤
│ En marcha 2 │ │ SALA DE CONTROL │
│ · Informe │ Conversación │ · Informe 62% │
│ · Resumen │ │ · Resumen 18% │
│ │ ¿En qué te ayudo? ├──────────────────┤
│ Hoy 3 │ │ ENTREGABLES │
│ · Notas │ │ informe.md │
│ · Borrador │ │ tabla.csv │
│ │ ┌─────────────────────┐ │ EN USO │
│ Skills │ │ Escribe y pulsa ⏎ │ │ skills · agentes │
│ Ajustes │ └─────────────────────┘ │ plugins │
└───────────────┴───────────────────────────┴──────────────────┘
plegable siempre plegable
Qué hace
- Conversaciones agrupadas en En marcha / Hoy / Antes, con su hora y sus tokens.
- Sala de control con lo que está corriendo, y entregables con los archivos que ha producido la conversación.
- En uso: qué skills ve el agente, qué subagentes ha lanzado y qué plugins están cargados.
- Selector de modelo y de esfuerzo de razonamiento, con filtro (OpenRouter ofrece más de cien modelos).
- Ajustes con instalador de plugins y gestor de skills, sin bajar a la terminal.
- Borrar conversaciones y proyectos, renombrarlos.
- Tres columnas plegables y modo «solo chat». Claro y oscuro.
La respuesta del agente se pinta según se escribe, y el texto se renderiza como markdown: párrafos, viñetas, código.
Cómo está montado
Tres piezas, cada una con un trabajo:
| Pieza | Qué es |
|---|---|
app/ | Concha de escritorio en Swift + WKWebView. Arranca el harness, lo vigila y lo para al salir. |
plugins/deepharn-front/ | Plugin de host: sirve el frontend en /deepharn y añade endpoints propios para instalar plugins y gestionar skills. |
plugins/deepharn-piel/ | Plugin de cliente: reescribe los tokens de color y tipografía de la interfaz oficial. Opcional. |
El frontend es HTML, CSS y JavaScript a pelo. Sin framework, sin compilación, sin dependencias: se edita y se recarga.
Por qué se sirve desde el propio harness: su API compara el Host de cada
petición y rechaza lo que venga de otro puerto. Servir el frontend desde fuera no
funciona; desde dentro, las llamadas a /api salen gratis.
Instalar
Lo que necesitas: macOS 14+ (Apple Silicon), Node 22+, pnpm, las Command Line
Tools de Xcode y el harness (npm i -g @deepseek-ai/dsh). Si te falta algo, el
instalador te lo dice antes de tocar nada.
git clone https://github.com/AxelGoal/Deepharn.git
cd Deepharn
./instalar.sh
Eso crea un perfil propio llamado deepharn —no toca el que ya uses—, instala
los dos plugins, los monta en el árbol y compila la app en /Applications.
Luego, desde Launchpad, o:
open -a Deepharn
Hacerlo a mano, paso a paso
# Un perfil propio, copiado del que ya tienes
cp -R ~/.dsh/profiles/web ~/.dsh/profiles/deepharn
# Los plugins
dsh plugin --profile deepharn add ./plugins/deepharn-front
dsh plugin --profile deepharn add ./plugins/deepharn-piel
Y sus filas en ~/.dsh/profiles/deepharn/cordis.patch.yml. Ojo con el
envoltorio insert: una entrada suelta con id: sobrescribe una fila existente
en vez de añadir una nueva.
- insert:
- id: deepharn-front
name: deepharn-front
- insert:
- id: deepharn-piel
name: deepharn-piel
Luego la app: cd app && ./construir.sh
También vale sin app: dsh --profile deepharn y abrir
http://127.0.0.1:3081/deepharn/ en el navegador.
Desinstalar
rm -rf ~/.dsh/profiles/deepharn /Applications/Deepharn.app
Nada más. El perfil que ya usabas queda intacto, y tus conversaciones también:
viven en ~/.dsh/sessions, fuera del perfil.
Cómo arranca
Abrir la app es lo único que hay que hacer:
- Comprueba los puertos 3081-3083, preguntando por su propio endpoint y no solo si el puerto responde — así no se engancha a un harness ajeno.
- Si lo encuentra, se engancha y no arranca nada. Al cerrarla, ese servidor sigue vivo.
- Si no hay nada, lo lanza:
dshinstalado, la caché de npx, onpx -y @deepseek-ai/dsh. - Si falla, dice por qué, enseña el registro y ofrece reintentar.
- Al salir, para el harness solo si lo arrancó ella.
Lo que aprendimos por el camino
Está en COMO-ESTA-HECHO.md: la API del harness, sus métodos y sus trampas. Si vas a construir algo parecido, ahí tienes el mapa.
Trastear
El frontend está en plugins/deepharn-front/web/: tres archivos, sin compilación.
Se edita y se recarga con ⌘R. Si tocas la mitad de servidor (lib/), reinicia el
harness con ⇧⌘R.
La piel —colores y tipografías— está en plugins/deepharn-piel/src/piel.css; tras
editarla, node construir.mjs la reensambla.
Si algo no aparece: el harness compone su árbol al arrancar, así que los plugins y las skills nuevas piden reinicio.
Estado
Funciona y se usa a diario, pero es joven y el harness que hay debajo está en developer preview, así que rompe compatibilidad de vez en cuando.
Lo que falta: streaming letra a letra por WebSocket (ahora sondea), adjuntar archivos, y un botón de reinicio que no pase por el menú.
Licencia
MIT.