A native macOS app built on Ghostty's GPU-rendered terminal. Manages git worktrees, coding agent sessions, and dev servers from a single window. Each workstream gets its own branch, terminal, and AI agent — all running in parallel, all at native speed.
~/my-project git status
On branch dy/new-feature
Working tree clean
❯ _
No more juggling terminals, browsers, and git clients. Each workstream is a self-contained development environment.
Each workstream gets its own branch and worktree. Switch between tasks without stashing, with .env files automatically symlinked.
Run Claude Code, Antigravity CLI, or Codex with resume support across app restarts and YOLO mode toggles.
Agent sessions survive app restarts via tmux on a dedicated socket. No more lost context or interrupted workflows.
Configure setup, run, and teardown scripts per project via .dockyard.json with automated port detection.
Preview your web app side-by-side with automatic port detection (:3000, :5001, etc.) without leaving your workspace.
Create workstreams from GitHub issues, inspect live CI check popovers with CodeRabbit AI reviews, and manage PRs directly.
Go from repo to running workstream in seconds. Each workstream is isolated and self-contained.
Drop a directory on the sidebar, or create a new one. Dockyard detects git repos, installed tools, and GitHub connections automatically.
A new git worktree with a fresh branch, your selected coding CLI, a terminal, and a browser tab. Port detection is automatic — the browser opens your dev server as soon as it starts listening.
The coding agent gets to work immediately. Setup scripts install dependencies. Switch between workstreams without losing state.
Automate your workstream lifecycle with setup, run, and teardown scripts. Install dependencies when a worktree is created, start dev servers on demand, and clean up resources when archiving.
Add a
.dockyard.json
to your project root.
{
"setup": "npm install",
"run": "PORT=$DY_PORT npm run dev",
"teardown": "docker-compose down"
}
| Hook | When it runs |
|---|---|
| setup | Once, when a workstream is created. Use for installing dependencies or build steps. |
| run | On demand via the Environment tab. Wrapped in dy-run for automatic port detection. |
| teardown | When a workstream is archived. Use for cleanup like stopping containers. |
All fields are optional. Scripts run in the workstream directory using your login shell.
Every workstream terminal, setup script, and run command has access to these environment variables. Use them in your scripts and dev server configs.
| Variable | Description |
|---|---|
| DY_PROJECT | Project name |
| DY_WORKSTREAM | Workstream name |
| DY_PROJECT_DIR | Main repository path |
| DY_WORKTREE_DIR | Worktree path for this workstream |
| DY_PORT | Deterministic port for this workstream |
Context-sensitive shortcuts that adapt to whether you're in a project view or a workstream.
Dockyard is MIT-licensed and free to use. The source code is available on GitHub. Contributions, bug reports, and feature requests are welcome.
brew install --cask barnolacesc/tap/dockyard