核心思路:告别 localhost:端口号,每个项目一个 .local 域名,链接即用。
解决什么问题
本地开发经常遇到:
Coulson 用一套方案覆盖这些场景。
使用方式
安装:下载 Coulson.app 打开即可,守护进程自动启动。
1. 端口代理 — 一行搞定
已有服务跑在 3000 端口:
echo 3000 > ~/.coulson/myapp
# 访问 http://myapp.coulson.local:18080/
文件名就是域名前缀,写入端口号就完事了。
2. Python / Node.js — 首次访问自动启动
软链接项目到 ~/.coulson/,Coulson 自动识别并管理进程:
ln -s ~/Projects/hello ~/.coulson/hello
# 访问 http://hello.coulson.local:18080/
空闲 15 分钟自动回收,下次访问再拉起。
3. 手机/局域网 — mDNS 直连
在 Web 控制台或菜单栏应用中给项目开启「 LAN Access 」,.local 域名通过 mDNS 发布,同网段的手机、平板等设备即可直接访问。
4. 公网分享 — 一条命令
coulson tunnel start myapp
生成公网链接(基于 Cloudflare Tunnel ),发给任何人即可访问。支持快速隧道(随机 URL )和命名隧道(自有域名泛解析,新增项目即时可达)。
5. 请求记录与重放
对项目开启 Inspect ,网关自动记录每个请求的完整信息,可在 Web 控制台回看并一键重放。调试 webhook 不用再让对方重发。
为什么说 Vibe coding 友好
在外面用手机或平板 SSH 到开发机,通过 Claude Code 、OpenCode 、Codex 这些终端工具 vibe coding ,服务跑起来了但没法预览。开一条 Tunnel ,项目即时获得公网地址,在手机浏览器里直接看效果。
其他特性
技术栈
Rust + Pingora( Cloudflare 开源的反向代理库)、Swift ( macOS 菜单栏应用)。
GitHub: https://github.com/ratazzi/coulson

