HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
coast-guard
coasts
Rust2026–2026
coast-guard / coasts

coasts

Localhost service isolation and orchestration for git worktrees.

2Distinct people
3Mentions
0Explicit recommenders
435GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Localhost service isolation and orchestration for git worktrees.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by day3 dated mentions

Observed mentions: 2026-03-05 07:53:21 UTC to 2026-03-30 15:17:51 UTC.

012026-03-05 00:00:00 UTC to 2026-03-06 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 52026-03-06 00:00:00 UTC to 2026-03-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-07 00:00:00 UTC to 2026-03-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-08 00:00:00 UTC to 2026-03-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-09 00:00:00 UTC to 2026-03-10 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2026-03-10 00:00:00 UTC to 2026-03-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-11 00:00:00 UTC to 2026-03-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-12 00:00:00 UTC to 2026-03-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-13 00:00:00 UTC to 2026-03-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-14 00:00:00 UTC to 2026-03-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-15 00:00:00 UTC to 2026-03-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-16 00:00:00 UTC to 2026-03-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-17 00:00:00 UTC to 2026-03-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMar 172026-03-18 00:00:00 UTC to 2026-03-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-19 00:00:00 UTC to 2026-03-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-20 00:00:00 UTC to 2026-03-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-21 00:00:00 UTC to 2026-03-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-22 00:00:00 UTC to 2026-03-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-23 00:00:00 UTC to 2026-03-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-24 00:00:00 UTC to 2026-03-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-25 00:00:00 UTC to 2026-03-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-26 00:00:00 UTC to 2026-03-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-27 00:00:00 UTC to 2026-03-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-28 00:00:00 UTC to 2026-03-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-29 00:00:00 UTC to 2026-03-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-30 00:00:00 UTC to 2026-03-31 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsMar 30

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Mar 52026-03-05 00:00:00 UTC2026-03-06 00:00:00 UTC101
Mar 62026-03-06 00:00:00 UTC2026-03-07 00:00:00 UTC000
Mar 72026-03-07 00:00:00 UTC2026-03-08 00:00:00 UTC000
Mar 82026-03-08 00:00:00 UTC2026-03-09 00:00:00 UTC000
Mar 92026-03-09 00:00:00 UTC2026-03-10 00:00:00 UTC110
Mar 102026-03-10 00:00:00 UTC2026-03-11 00:00:00 UTC000
Mar 112026-03-11 00:00:00 UTC2026-03-12 00:00:00 UTC000
Mar 122026-03-12 00:00:00 UTC2026-03-13 00:00:00 UTC000
Mar 132026-03-13 00:00:00 UTC2026-03-14 00:00:00 UTC000
Mar 142026-03-14 00:00:00 UTC2026-03-15 00:00:00 UTC000
Mar 152026-03-15 00:00:00 UTC2026-03-16 00:00:00 UTC000
Mar 162026-03-16 00:00:00 UTC2026-03-17 00:00:00 UTC000
Mar 172026-03-17 00:00:00 UTC2026-03-18 00:00:00 UTC000
Mar 182026-03-18 00:00:00 UTC2026-03-19 00:00:00 UTC000
Mar 192026-03-19 00:00:00 UTC2026-03-20 00:00:00 UTC000
Mar 202026-03-20 00:00:00 UTC2026-03-21 00:00:00 UTC000
Mar 212026-03-21 00:00:00 UTC2026-03-22 00:00:00 UTC000
Mar 222026-03-22 00:00:00 UTC2026-03-23 00:00:00 UTC000
Mar 232026-03-23 00:00:00 UTC2026-03-24 00:00:00 UTC000
Mar 242026-03-24 00:00:00 UTC2026-03-25 00:00:00 UTC000
Mar 252026-03-25 00:00:00 UTC2026-03-26 00:00:00 UTC000
Mar 262026-03-26 00:00:00 UTC2026-03-27 00:00:00 UTC000
Mar 272026-03-27 00:00:00 UTC2026-03-28 00:00:00 UTC000
Mar 282026-03-28 00:00:00 UTC2026-03-29 00:00:00 UTC000
Mar 292026-03-29 00:00:00 UTC2026-03-30 00:00:00 UTC000
Mar 302026-03-30 00:00:00 UTC2026-03-31 00:00:00 UTC110

What Hacker News says

3 sources

Show HN: Coasts – Containerized Hosts for Agents

Hi HN - We've been working on Coasts (“containerized hosts”) to make it so you can run multiple localhost instances, and multiple docker-compose runtimes, across git worktrees on the same computer. Here’s a demo: https://www.youtube.com/watch?v=yRiySdGQZZA. There are also videos in our docs that give a good conceptual overview: https://coasts.dev/docs/learn-coasts-videos. Agents can make code changes in different worktrees in isolation, but it's hard for them to test their changes without multiple localhost runtimes that are isolated and scoped to those worktrees as well. You can do it up to a point with port hacking tricks, but it becomes impractical when you have a complex docker-compose with many services and multiple volumes. We started playing with Codex and Conductor in the beginning of this year and had to come up with a bunch of h
Read the rest
acky workarounds to give the agents access to isolated runtimes. After bastardizing our own docker-compose setup, we came up with Coasts as a way for agents to have their own runtimes without having to change your original docker-compose. A containerized host (from now on we’ll just say “coast” for short) is a representation of your project's runtime, like a devcontainer but without the IDE stuff—it’s just focused on the runtime. You create a Coastfile at your project root and usually point to your project's docker-compose from there. When you run `coast build` next to the Coastfile you will get a build (essentially a docker image) that can be used to spin up multiple Docker-in-Docker runtimes of your project. Once you have a coast running, you can then do things like assign it to a worktree, with `coast assign dev-1 -w worktree-1`. The coast will then point at the worktree-1 root. Under the hood the host project root and any external worktree directories are Docker-bind-mounted into the container at creation time but the /workspace dir, where we run the services of the coast from, is a separate Linux bind mount that we create inside the running container. When switching worktrees we basically just do umount -l /workspace, mount --bind <path_to_worktree_root>, mount --make-rshared /workspace inside of the running coast. The rshared flag sets up mount propagation so that when we remount /workspace, the change flows down to the inner Docker daemon's containers. The main idea is that the agents can continue to work host-side but then run exec commands against a specific coast instance if they need to test runtime changes or access runtime logs. This makes it so that we are harness agnostic and create interoperability around any agent or agent harness that runs host-side. Each coast comes with its own set of dynamic ports: you define the ports you wish to expose back to the host machine in the Coastfile. You're also able to "checkout" a coast. When you do that, socat binds the canonical ports of your coast (e.g. web 3000, db 5432) to the host machine. This is useful if you have hard coded ports in your project or need to do something like test webhooks. In your Coastfile you point to all the locations on your host-machine where you store your worktrees for your project (e.g. ~/.codex/worktrees). When an agent runs `coast lookup` from a host-side worktree directory, it is able to find the name of the coast instance it is running on, so it can do things like call `coast exec dev-1 make tests`. If your agent needs to do things like test with Playwright it can so that host-side by using the dynamic port of your frontend. You can also configure volume topologies, omit services and volumes that your agent doesn't need, as well as share certain services host-side so you don't add overhead to each coast instance. You can also do things like define strategies for how each service should behave after a worktree assignment change (e.g. none, hot, restart, rebuild). This helps you optimize switching worktrees so you don't have to do a whole docker-compose down and up cycle every time. We'd love to answer any questions and get your feedback!
99 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.