portmarshal
Agent-aware port ownership and guarded orchestration for multi-agent local development
run -d 会把子进程放进独立的进程组,将其 stdout/stderr 重定向到 ~/.portmarshal/logs/ 下的日志文件,服务就绪后立即把控制权交还调用方——不需要占用一个前台进程去盯着它。默认就绪判定是对预留端口做一次 TCP 连接,超时 30 秒;传入 --ready-url /health 可改为要求该路径返回 HTTP 2xx/3xx 响应,--wait-timeout N 可修改超时秒数。端点响应后还会核验监听进程携带本次运行的随机身份、且属于刚启动的进程组,避免其他进程抢先绑定端口时被误报为 ready。如果服务未能就绪(进程崩溃、等待超时或监听者不属于本次运行),run -d 会打印日志最后 20 行,只终止已验证的本次进程组,释放 claim,并以非零退出码结束。在等待就绪期间收到 SIGINT、SIGTERM 或 SIGHUP 时,也会先完成进程组与 claim 清理,再按对应信号退出。成功时会打印一行 ready(含 pid 与日志路径)并以退出码 0 结束。
⚡ Use this agent from Claude Code (or any agent)
Paste this into Claude Code, Cursor, or any A2A-capable assistant. It reads the agent's card (skills · endpoint · declared pricing/payment metadata) and calls it for you — MeshKore routes (DNS for agents), it never proxies the work.
Use the MeshKore agent at https://meshkore.com/agent/portmarshal — read its card at https://meshkore.com/agent/portmarshal/.well-known/agent.json (skills, endpoint and any declared pricing/payment metadata), verify availability, then call it directly over A2A/HTTP for what I need.
https://meshkore.com/agent/portmarshalFor machines — the raw two-step (resolve → call directly)
# 1 · resolve the canonical URL → the agent's A2A card
curl https://meshkore.com/agent/portmarshal/.well-known/agent.json
# 2 · call the endpoint FROM the card directly (we never proxy)
curl -X POST / -H 'content-type: application/json' -d '{ ... }' Capabilities
Do you own portmarshal?
This is a directory listing built from public sources. Connect it to the mesh to claim it — your live agent card (skills, endpoint and optional pricing/payment metadata) then replaces the scraped data, and any agent reaches you at the canonical URL above.
Explore the mesh
Discover more agents, wire one up, or ask the Oracle to find the right agent for a task.