Tot el que necessites saber, res del que no.
English | Català
Estem al 2026. Construïm sobre tmux (2007), git worktrees (2015), terminals (1978, l’era del VT100, quan fins i tot en Francesc era només un projecte de futur), i renderitzat per GPU (gràcies Mitchell per Ghostty). Eines velles, trucs nous.
Necessites dues coses: un Mac i la vaga sensació que el teu flux de treball podria ser millor.
brew install --cask barnolacesc/tap/dockyard
Dockyard funciona millor quan tens instal·lat el següent (t’avisarà si falta alguna cosa):
No cal cap fitxer de configuració. Dockyard detecta automàticament la teva configuració de git, les eines instal·lades i les connexions amb GitHub.
Les tres coses amb les quals interactuaràs cada dia.
Un projecte és un repositori git. Arrossega un directori al sidebar o fes clic al botó +. Dockyard comprova si és un repositori git (i t’ofereix inicialitzar-ne un si no ho és).
La vista general del projecte mostra informació del repositori, detalls de GitHub (estrelles, forks, issues obertes), fins a 5 PRs recents, i documentació markdown detectada automàticament del teu repositori.
Els projectes s’ordenen per Recent (última activitat) per defecte. Canvia a A-Z si ets d’aquest tipus de persona.
Fes clic dret sobre un projecte al sidebar per accés ràpid: Reveal in Finder, Open in External Terminal, Open on GitHub, o Remove (els fitxers es queden al disc, no som monstres).
Un workstream és on passa la feina. Cadascun té el seu propi git worktree, branch, terminal, coding agent, i navegador. Estan completament aïllats entre si.
⌘N crea un workstream nou. Entre bastidors:
dy).env i .env.local des del repositori principal (si està activat)La interfície apareix a l’instant, la creació del worktree passa en segon pla.
Amb Auto-rename branch activat a la configuració, el coding agent canvia automàticament el nom de la teva branch per coincidir amb la teva tasca actual basat en els teus prompts. Així dy/coral-tidal-reef es converteix en dy/fix-login-timeout.
Quan un PR es fusiona, Dockyard mostra un badge “Purge” perquè sàpigues que pots netejar tranquil·lament.
La pestanya Coding Agent executa Claude Code, Codex, OpenCode o Antigravity CLI en un terminal integrat. Tria el CLI a la configuració.
Les quick actions executen tasques puntuals amb el CLI de codi des del sidebar:
S’executen en segon pla amb el CLI seleccionat quan és compatible. Activa Quick action debug mode a la configuració si vols saber com es fa l’embotit. Confia en nosaltres, en Francesc va passar més temps del que pot admetre depurant comportaments estranys allà dins.
Terminals, navegadors, i dreceres, les eines dins de cada workstream.
Els terminals es renderitzen per GPU via Ghostty. Són ràpids.
Pots arrossegar fitxers i text sobre el terminal. Perquè de vegades el ratolí està bé, la veritat.
⌘Option+T obre el directori del workstream a la teva aplicació de terminal externa preferida.
Cada workstream pot tenir pestanyes de navegador (⌘B). El navegador és integrat, no cal canviar de finestra.
Quan el teu run script inicia un servidor de desenvolupament, Dockyard detecta automàticament el port en escolta i hi navega el navegador. No cal configurar res. El llançador dy-run monitoritza l’arbre de processos per trobar listeners TCP.
El navegador mostra una pàgina d’error de connexió amb un botó de reintentar si el servidor encara no està llest. Navegarà automàticament quan es detecti el port.
Dockyard prioritza el teclat. Aquí tens tot.
| Drecera | Acció |
|---|---|
| ⌘N | Nou workstream (o projecte, si no n’hi ha cap) |
| ⌘Shift+N | Nou projecte |
| ⌘, | Configuració |
| ⌘/ | Ajuda |
| ⌘Option+S | Commuta barra lateral |
| ⌘Option+. | Commuta l’amplada de la barra lateral |
| Drecera | Acció |
|---|---|
| ⌘1 | Info |
| ⌘2 | Coding Agent |
| ⌘3-9 | Canvia de tab |
| ⌘Shift+[ | Tab anterior |
| ⌘Shift+] | Tab següent |
| ⌘Return | Focus Coding Agent |
| ⌘T | Nou Terminal |
| ⌘B | Nou navegador |
| ⌘O | Nou Editor |
| ⌘W | Tanca tab |
| ⌘Shift+W | Arxiva workstream |
| ⌘L | Barra d’adreces (navegador) |
| ⌘Shift+M | Commuta la versió mòbil (navegador) |
| ⌘Shift+Return | Inicia/reinicia run |
| Drecera | Acció |
|---|---|
| ⌘[ | Workstream anterior |
| ⌘] | Workstream següent |
| ⌘↑ | Projecte anterior |
| ⌘↓ | Projecte següent |
| ⌘0 | Torna al projecte |
| ⌘Option+B | Obre al navegador extern |
| ⌘Option+T | Obre al terminal extern |
Com automatitzar les parts avorrides.
Posa un .dockyard.json a l’arrel del teu projecte per automatitzar el cicle de vida dels workstreams.
{
"setup": "npm install",
"run": "PORT=$DY_PORT npm run dev",
"teardown": "docker-compose down"
}
| Hook | Quan s’executa |
|---|---|
setup |
Un cop, quan es crea un workstream. Instal·la dependències, executa migracions, el que sigui. |
run |
Sota demanda des del tab Environment. Embolcallat amb dy-run per a port detection. |
teardown |
Quan un workstream s’arxiva o es purga. Atura contenidors, neteja. |
Tots els camps són opcionals. Els scripts s’executen al directori del workstream usant el teu shell de login. Sí, fins i tot fish. No preguntis quant de temps va costar.
Dockyard també llegeix .emdash.json, conductor.json i .superset/config.json si .dockyard.json no existeix. Perquè la compatibilitat és de bona educació. (Hora d’un estàndard?) Quan s’usa una configuració de compatibilitat, Dockyard injecta variables d’entorn de compatibilitat perquè els scripts funcionin sense modificació (p. ex. CONDUCTOR_PORT, EMDASH_PORT, SUPERSET_PORT_BASE).
Disposició en panell dividit: Setup a l’esquerra, Run a la dreta.
Cada terminal, setup script, i comanda run d’un workstream té aquestes variables:
| Variable | Què és | Exemple |
|---|---|---|
DY_PROJECT |
Nom del projecte | my-app |
DY_WORKSTREAM |
Nom del workstream | coral-tidal-reef |
DY_PROJECT_DIR |
Ruta del repositori principal | /Users/you/my-app |
DY_WORKTREE_DIR |
Ruta del worktree | ~/.dockyard/worktrees/my-app/coral-tidal-reef |
DY_PORT |
Port determinista (40001-49999) | 42847 |
DY_DEFAULT_BRANCH |
Branca per defecte (main, master, etc.) | main |
Cada workstream obté un port determinista basat en un hash de la ruta del worktree. Mateix workstream, mateix port, sempre. Sense conflictes de port entre workstreams. Usa’l al teu run script: PORT=$DY_PORT npm run dev. Si el teu rotllo és executar milers de workstreams simultàniament, potser et trobes una col·lisió 🎲 però amb sort et quedes sense memòria abans.
Quan està activat (Settings > General), Dockyard fa symlink de .env i .env.local des del teu repositori principal a cada worktree. Així els teus secrets et segueixen sense haver de copiar i enganxar.
Obre amb ⌘, o fes clic a la icona d’engranatge.
dy).env i .env.local als worktreesConnectant Dockyard amb tot el demés.
Instal·la la comanda dy des de Settings > Environment > Install CLI. Després:
dy /path/to/your/project
Obre el directori a Dockyard. Això és tot el que fa, i és tot el que necessita fer.
Requereix el gh CLI amb autenticació (gh auth login).
Des del sidebar, executa operacions d’un sol clic: Create PR (títol i descripció generats per IA), Push (a l’origin amb -u), o Close PR (tanca amb un comentari). Perquè si estàs cansat d’escriure “ara fes commit, push, i obre una PR” a Claude per centèsima vegada, no ets l’únic.
Dockyard mostra un badge al sidebar quan hi ha una versió més nova disponible. També pots comprovar-ho manualment des de Dockyard > Check for Updates…
Usuaris de Homebrew:
brew upgrade dockyard
Usuaris de DMG: les actualitzacions es gestionen automàticament via Sparkle. Comprova manualment des del menú: Dockyard > Check for Updates…
Activa Bleeding edge updates a Settings > Advanced per a builds de pre-llançament. Per als que els agrada viure al límit i enviar informes d’errors.
Hi ha un editor integrat (⌘O) per consultar fitxers i fer petits canvis. La intenció és que facis servir les eines que ja t’agraden: Zed, VS Code, el que sigui. Dockyard et dóna un coding agent, un navegador, i un worktree. A més, qui escriu codi avui en dia?
Tampoc. El teu client de git ja ho fa millor del que nosaltres mai podríem. Nosaltres només ens assegurem que cada workstream tingui una branch neta llesta per a revisió. Estàs mantenint les teves PRs petites i evitant conflictes de merge, oi? …Oi?
Dockyard detecta les eines des del teu shell de login. Si claude, gh, git, o tmux no apareixen:
-L dockyard), així que la teva configuració personal de tmux no interferirà$DY_PORT (o que el port es detecta des de l’arbre de processos)dy-run embolcalla el run script, monitoritza els processos fills per trobar listeners TCP