Show HN: Ferry – Sync your coding agent setup to remote Linux boxes Developer dlhck released Ferry, an open-source tool that syncs coding agent setups — skills, instructions, MCP servers and supported settings — from a local machine to remote Linux boxes via a private git snapshot repository. Ferry installs and updates the claude, codex, pi and cursor-agent CLIs on each box, starts logins there without copying tokens, and offers ferry watch, ferry tunnel --follow, ferry move and ferry auth commands, installable via curl or npm i -g @dlhck/ferry on macOS or Linux, arm64 or x64. Your agent setup. Wherever you run. Run agents on your laptop or a remote Linux box with the skills, instructions, MCP servers and supported settings you already use. Ferry keeps them in sync as you work, so every box gets your setup without you rebuilding it by hand. Change a skill locally. Your remote agents get it too. curl -fsSL https://raw.githubusercontent.com/dlhck/ferry/main/install.sh | sh npm i -g @dlhck/ferry macOS or Linux, arm64 or x64. With npm, do not pass --omit=optional . Update later with ferry self-update . Stop setting up the same workflow on every machine. You've taught your agents how you work. Moving to a remote box should carry that work with you. - Configure once. Keep every box in sync.Update your skills and instructions on your machine. Ferry's watcher sends those changes to your boxes automatically. ferry watch install cmd-watch - Open remote previews in your local browser.Forward remote dev server ports to localhost, with automatic forwarding for servers announced through Ferry. ferry tunnel --follow cmd-tunnel - Continue your project on another machine.Move a Git project to a box and back, with its untracked files and its Claude and Codex sessions, so you can resume the conversation there. ferry move cmd-move - Logins stay where they are.Ferry starts logins on the box and never copies a token. ferry auth cmd-auth Your machine publishes. Each box pulls. Your machine is the source of truth. The boxes follow it through a private git repository that Ferry calls the snapshot. 1. Your machineYour skills, ~/AGENTS.md , Claude subagents, commands and hook scripts, some Claude, Codex, Pi and Cursor Agent settings, and remote and stdio MCP servers. 2. Private snapshot repoAn empty private git repository you create. Ferry publishes the carried files to it. 3. box a, box b, ...Each box clones the snapshot and links its harness directories to it. It also sets up the box Ferry installs and updates the agent CLIs on each box claude , codex , pi , cursor-agent , plus gh , jq and the tools you list. It starts logins there. It never copies one. See the plan first --dry-run on init , sync , update , move , revert and box remove shows what Ferry will do. --json on any command gives output for scripts and agents. Four agents, ready on every box For each agent, Ferry installs and updates the CLI on the box and starts its login there. Codex, Pi and Cursor Agent read the shared skills in ~/.agents/skills , and Claude Code reads its own in ~/.claude/skills . The instruction files of Claude Code, Codex and Pi link to your ~/AGENTS.md . On a box, a header that names the box and your instructions for that box come first. - Claude Code claude - Carries - Skills in ~/.claude/skills , ~/.claude/CLAUDE.md , subagents, custom commands, hook scripts in ~/.claude/hooks , and the remote and stdio MCP servers in ~/.claude.json . - Settings - enabledPlugins , extraKnownMarketplaces , permissions , hooks , attribution , includeCoAuthoredBy , model , alwaysThinkingEnabled . The box installs the plugins. env and apiKeyHelper stay on your machine. - Login - ferry auth claude , finished in a browser here. MCP logins with ferry auth claude --mcp