惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
腾讯CDC
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
B
Blog
S
SegmentFault 最新的问题
P
Privacy & Cybersecurity Law Blog
T
Threatpost
博客园 - 聂微东
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
C
Check Point Blog
N
Netflix TechBlog - Medium
D
DataBreaches.Net
爱范儿
爱范儿
IT之家
IT之家
S
Secure Thoughts
M
MIT News - Artificial intelligence
NISL@THU
NISL@THU
C
Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
有赞技术团队
有赞技术团队
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Schneier on Security
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
雷峰网
雷峰网
Project Zero
Project Zero
博客园 - Franky
H
Heimdal Security Blog
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店 GitHub - EdoardoBambini/Agent-Armor-Iaga: AI agents are getting tool access — shell, file system, databases, APIs, secrets. But **nobody is governing what they actually do with it**. Frameworks like LangChain, CrewAI, AutoGen, and Claude Code give agents the power to execute. Agent Armor gives you the power to control, audit, and approve every single action before it happens. HN Vibes — Week 15, Apr 7–13 2026 GitHub - chojs23/ec: Easy terminal-native 3-way git mergetool vim-like workflow GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - JakOb-dotcom/cloud-sandbox-security-analysis: Technical analysis and Proof of Concept (PoC) regarding environment variable exfiltration in containerized cloud sandboxes via side-channel data leaks. Springboards - Flint Alpha Show HN: A simpler coding agent harness GitHub - audiodude/sudomake-friends GitHub - 256thFission/mini-mythos: OSS clone of Anthropic’s Mythos harness to locate C/C++ memory vulnerabilities Show HN: OpenParallax: OS-level privilege separation for AI agent execution Hacker News Sorted - Chrome 应用商店 Show HN: How to Install Docker on Ubuntu 24.04 LTS: Complete 2026 Guide GitHub - himanshudongre/smriti GitHub - sverrirsig/claude-control: macOS desktop dashboard for monitoring and managing multiple Claude Code sessions GitHub - ory/dockertest: Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work. Chiral - Chrome 应用商店 Show HN: Two Claudes collaborating through shared memory on a $100 mini-PC GitHub - pmichaillat/latex-cv: Minimalist LaTeX template for academic CVs GitHub - oguzbilgic/posse: A web UI for Anthropic Managed Agents. GitHub - sshiraz/depsly: Dependency risk analysis tool for npm packages ABI Add safari/agent-harness — Safari browser automation via safari-mcp by achiya-automation · Pull Request #212 · HKUDS/CLI-Anything GitHub - Halfblood-Prince/trustcheck: Verify PyPI package attestations and improve Python supply-chain security GitHub - oguzbilgic/kern-ai: Agents that do the work and show it. GitHub - bruits/satteri: High-performance Markdown and MDX processing for the JavaScript ecosystem GitHub - tylergibbs1/feedstock: High-performance web crawler and scraper for TypeScript, powered by Bun and Playwright GitHub - Grimm67123/grimmbot: The self-improving sandboxed and open-source AI agent. With persistent memory and scheduling. GitHub - whitevanillaskies/whitebloom: Local whiteboard that blooms. GitHub - hwdsl2/docker-whisper: Docker image for a self-hosted Whisper speech-to-text server with speaker diarization and OpenAI-compatible transcription and translation APIs. Powered by faster-whisper. Supports all Whisper models, NVIDIA GPU (CUDA) acceleration, JSON/SRT/VTT output, SSE streaming, offline mode, and multi-arch (amd64, arm64). GitHub - yisding/reviewwiggum GitHub - MarwanAlsoltany/serrors: Structured errors for Go: sentinel hierarchies, typed data, custom formatting, and slog integration. GitHub - soatok/age-php GitHub - Luthiraa/markitme GitHub - stagas/rtdiff: realtime git diff gui and AI-assisted commits GitHub - tombedor/excalicharts GitHub - wh1le/excalidraw-edit: Open and edit .excalidraw files from the terminal. Offline, auto-saves to disk. MalExt Sentry - Malicious Extension Scanner - Chrome 应用商店 GitHub - syi0808/asciianimesvg: Generate animated ASCII art SVGs from text. CLI, Rust library, WASM, and web editor. GitHub - zaina-ml/ml_forge: A visual-based graph node editor for training computer vision models. GitHub - anakin87/llm-rl-environments-lil-course: 🌱 A little course on Reinforcement Learning Environments for evaluating and training Language Models GitHub - takaakit/superpowers-uml: Superpowers-UML modifies Superpowers to ensure a software development workflow in which AI agents design through UML modeling. AdriByte Studio - Sviluppo Web e Soluzioni Digitali GitHub - chouligi/angel-copilot: Your personalized Angel Investment Advisor Show HN: MoodSense AI (ML and FastAPI and Gradio, Deployed on Hugging Face) Moodsense Ai - a Hugging Face Space by aman179102 GitHub - agenteractai/lodmem: Level Of Detail Context Management for Agents GitHub - ostefani/subnetlens: A fast, concurrent network scanner with a TUI and plain-text CLI, built in Go. It discovers live hosts on your network, scans their open ports, resolves hostnames, and fingerprints operating systems—delivered. Cyber Pulse: Agentic Intel - Apps on Google Play Whisper API: Self-Hostable Speech to Text Transcription The Agent-Web Protocol Stack: A Research Thesis GitHub - msmarkgu/RelayFreeLLM: A restful API designed to route user prompts to various AI model providers. Show HN: Provepy – A Python decorator that proves your code using Lean and LLMs Show HN: Pardonned.com – A searchable database of US Pardons GitHub - patrickdappollonio/dux: Dux is a terminal UI that lets you run multiple AI coding agents side by side, each in its own git worktree, with full companion terminals, macros, commit generation, and a command palette that knows more tricks than you do. kMC Crystal Simulator Show HN: HyperFlow – A self-improving agent framework built on LangGraph GitHub - stef41/vibescore: 🎵 Grade your vibe-coded project. One command, instant letter grade across security, quality, dependencies, and testing. GitHub - stef41/lmscan: 🔍 Detect AI-generated text and fingerprint which LLM wrote it. Open-source GPTZero alternative. Zero dependencies, works offline. imgur.com GitHub - visionscaper/collabmem: Enabling long-term collaboration with Agentic AI - building up episodic and world model memory over time with in-context awareness 在 Steam 上购买 FriedrichAI: Offline AI 立省 10% GitHub - atripati/ark: AI Runtime Kernel — a context operating system for AI agents. Eliminates tool bloat, loads only what’s needed, and gives LLMs their reasoning space back. GitHub - nowork-studio/toprank: Open-source Claude Code skills for SEO, SEM, Google Ads GitHub - tacomanator/sash: Lightweight macOS menu bar app for reliably cycling through windows of the current application. Appents | Social Media Management for Product-First Teams GitHub - pnhoang/youtube-spam-blocker: Automatically detects and hides spam messages in YouTube Live chat. Set rate limits, keyword filters, and block repeat offenders. GitHub - decisionnode/DecisionNode: CLI + Local MCP - A shared structured memory store across Claude Code, Cursor, Windsurf, Antigravity, and every MCP client. Semantically queryable. GitHub - AvaCodeSolutions/django-email-learning: An open source Django app for creating email-based learning platforms with IMAP integration and React frontend components. The $100K Gap in Kubernetes Security Tooling Function Calling Harness: From 6.75% to 100%
GitHub - DmarshalTU/coord: The dev-loop coordinator for AI agents
V1291l · 2026-05-08 · via Hacker News: Show HN

A local coordinator for parallel AI coding agents. One binary. Atomic claims, leased work, blocking watches.

You run multiple Claude Code / Cursor / Codex tabs in parallel and they have no idea the others exist. The tab on v1.1 finds a regression. The tab on v1.2 keeps building on top of it because nobody told it.

The headline primitive in coord is a blocking watch: a Claude or Cursor tab can do coord wait --kind ack --name-contains 'v1.1 stable' and just sit there until some other tab posts a matching task. The daemon holds the connection open and returns the instant the match lands — no polling, no operator coordination, no instruction loop. It's the difference between "please check every minute" and "tell me when it happens."

Backing it are three things that make the watch safe:

  • Atomic task claims (no two agents grab the same work, proven under 16-process contention).
  • Leased claims that auto-reclaim if the holding tab dies, so a closed Cursor window doesn't strand work forever.
  • An optional markdown audit trail that opens in Obsidian as a graph, showing who-did-what across all sessions.
   ┌──────────────┐  ┌──────────────┐  ┌──────────────┐
   │ Claude Code  │  │   Cursor     │  │   Codex      │   ...N apps
   └──────┬───────┘  └──────┬───────┘  └──────┬───────┘
          │  MCP            │  MCP            │  MCP
   ┌──────▼─────────────────▼─────────────────▼───────┐
   │              coord serve  (HTTP A2A)             │
   │   atomic claims · heartbeats · vault · TUI       │
   └──────────────────────────────────────────────────┘
                  SQLite (WAL) · markdown vault

Status

0.4.1. Eleven end-to-end tests gate every change, including a long-poll test that proves the watch primitive unblocks server-side (not via client polling), a 16-process atomic-claim race, a lease/auto-reclaim cycle, and a protocol-layer two-tab dogfood test that walks the AGENTS.md workflow from completing-with-ack to a second tab verifying the work without prior UUID knowledge. 0.4.1 adds atomic tasks/complete + postAck so finishing a task and announcing it land in the same transaction; see AGENTS.md. 0.x until it gets meaningful production use.

Why another one of these?

Several local-coordination layers for AI agents shipped between late 2025 and early 2026 (prior art). coord is opinionated about a small number of things that the others mostly aren't:

  • The watch is the headline. coord wait --kind ack --name-contains 'v1.2' is a long-poll under the hood: the daemon holds the request open and returns within milliseconds of the matching task landing. tests/wait_longpoll.rs asserts a hot match returns in well under one second on a cold start. This is what turns a Claude Code tab into a "waiter" with one chat message instead of an instruction loop.
  • Atomic claims with leases, not mailboxes. Most existing tools are messaging / pub-sub layers. coord exposes a race-free tasks/claim that grants a time-bounded lease. If your agent dies, crashes, or just forgets to call tasks/complete, the daemon's background sweep returns the task to pending after the lease expires and the next agent picks it up. tests/lease.rs proves the full cycle: claim → expire → reclaim → new agent wins → original claimer's stale complete is observable, not silent.
  • Atomic correctness is tested under contention. tests/race.rs hammers 200 tasks × 8 claimers each (1,600 simultaneous claim attempts) and asserts every task ends up with exactly one winner. tests/multi_client.rs does the same end-to-end, with 16 independent OS processes racing over HTTP.
  • SQL-side filters on tasks/list. Filters (state, kind, priority) push into the WHERE clause so a watcher asking for "the most recent pending bug" still sees it when 50 newer non-bug rows exist. The pre-0.4 in-memory filter silently dropped matches at that scale; tests/list_filter.rs is the regression test.
  • Atomic complete-with-ack. tasks/complete accepts a postAck flag that writes the kind=ack row in the same SQLite transaction as the state change, with fixed_bug_id auto-injected to wikilink the ack back to the source task. This closes a 0.4.0 protocol-layer hole where the ack post was a separate (and frequently forgotten) call. tests/protocol_two_tabs.rs proves a second tab can discover the work and the ack using only the queries AGENTS.md tells it to run.
  • Two protocols, one daemon. JSON-RPC 2.0 HTTP surface that implements a subset of A2A v1.0 (tasks/send, tasks/get, tasks/cancel) plus local-loop extensions for claims, leases, and the watch. Acts as an MCP server over stdio for IDE clients. Streamable HTTP, signed Agent Cards, and push notifications from full A2A v1.0 are not implemented; treat the A2A side as compatibility for create / get / cancel only.
  • Optional Obsidian-readable vault. Every state change emits a markdown note with [[wikilinks]] between related tasks (bug → fix → ack, claimer → abandoned task). Drop the vault into Obsidian; the graph view shows who-did-what across all sessions with no plugin.
  • One binary. coord serve, coord top, coord send, coord wait, coord claim, coord extend, coord mcp — all the same executable. No Python venv, no Docker.

If you want a richer mailbox/email metaphor with file leases and threading, MCP Agent Mail is the more mature choice. coord is the one to reach for if you want claim-and-watch with leased work and a tiny surface area.

Install

Homebrew

brew tap dmarshaltu/coord
brew install coord

From source

cargo install --git https://github.com/DmarshalTU/coord

Pre-built binaries

Tagged releases attach binaries for macOS (Apple Silicon), Linux (x86_64), and Windows (x86_64). On Intel Macs and ARM Linux, build from source with cargo install --git ... instead.

# example: macOS Apple Silicon
curl -L https://github.com/DmarshalTU/coord/releases/latest/download/coord-aarch64-apple-darwin -o /usr/local/bin/coord
chmod +x /usr/local/bin/coord

Quickstart

# 1. start the daemon (long-lived; run it once and forget it)
coord serve --vault ~/coord-vault

# 2. in your project, scaffold .mcp.json + AGENTS.md
cd ~/code/my-project
coord init

# 3. open Claude Code / Cursor / Codex in the project — coord shows up as an MCP server

# 4. watch it live
coord top

coord init drops two files:

  • .mcp.json — Claude-Code-style MCP config pointing at coord mcp. Claude Code picks it up automatically. Cursor, Codex, and Gemini CLI accept it with one extra step (see Setup per IDE).
  • AGENTS.md — the protocol every agent in this project should follow (handles, heartbeats, scanning the bulletin, posting acks, using coord wait). Pasted as CLAUDE.md / .cursorrules / system prompt for IDEs that look elsewhere — see below.

If you'd rather do it by hand, the Quickstart above is just:

{
  "mcpServers": {
    "coord": { "command": "coord", "args": ["mcp"] }
  }
}

Setup per IDE

Anything that speaks MCP can drive coord (tasks_send, tasks_claim, tasks_complete, agents_heartbeat, tasks_list, tasks_get, agents_list). The protocol is the same; only where you put the config differs.

Claude Code

coord init is enough. Claude Code reads .mcp.json from the project root on next launch. Confirm with claude mcp list — you should see coord. Drop AGENTS.md (which coord init writes for you) at the project root and Claude Code reads it as the agent protocol.

You can also register coord globally instead of per project:

claude mcp add coord -- coord mcp

Cursor

After coord init, copy the same config into .cursor/mcp.json (Cursor reads MCP servers from there, not from .mcp.json):

mkdir -p .cursor && cp .mcp.json .cursor/mcp.json

Cursor also reads project rules from .cursorrules rather than AGENTS.md, so symlink:

ln -sf AGENTS.md .cursorrules

Codex CLI

Codex configures MCP servers in ~/.codex/config.toml:

[mcp_servers.coord]
command = "coord"
args = ["mcp"]

Codex reads AGENTS.md from the project root natively, so the file coord init writes Just Works.

Gemini CLI / other MCP clients

Most MCP clients accept the same JSON shape. Point them at:

{ "command": "coord", "args": ["mcp"] }

…and paste AGENTS.md into whatever the client uses for system context.

Watch what's happening

coord top
┌coord─────────────────────────────────────────────────────────────────┐
│coord top  •  2 active  0 idle  0 stale  (2 agents total)             │
│tasks: 3 visible / 3 total  pending=1 claimed=1 completed=1           │
│filter: active  •  detail: on  •  refreshed 0.2s ago                  │
└──────────────────────────────────────────────────────────────────────┘
┌agents (2)──────────────┐┌tasks (3/3)──────────────────────────┐
│   ID            UPTIME ││  ID    AGE   PRIO    KIND   STATE   │
│●  feature-a-v1.2 1m23s ││▶ 14f5  27s   normal  bug    pending │
│●  hotfix-v1.1    2m05s ││  5ed1  56s ▲ high    ack    completed│
│                        ││  6ab8  1m09s normal  knowl  completed│
└────────────────────────┘└─────────────────────────────────────┘

Two-prompt demo

Two Claude Code tabs, two release branches, no operator coordination:

Tab A (v1.2 release prep):

Prep the v1.2 release. Wait for v1.1 to be stable before shipping the build.

Tab B (v1.1 hotfix):

Test the v1.1 hotfix branch. If it's red, fix it and post a stable ack.

Tab B runs the tests, finds a regression, fixes it, commits, posts a kind=ack task. Tab A's coord wait --kind ack --name-contains 'v1.1 stable' unblocks the instant that ack lands and ships the v1.2 build artifact. Two prompts, zero coordination from the operator.

A full reproducible scenario lives in scripts/demo.sh.

Architecture

src/
├── main.rs              entry, parses CLI
├── server.rs            serve / mcp / version
├── lib.rs               library re-exports
├── cli/                 client subcommands
│   ├── mod.rs           dispatch
│   ├── client.rs        blocking JSON-RPC client
│   ├── format.rs        plain-text printers
│   ├── tui.rs           ratatui dashboard
│   └── wait.rs          blocking watch primitive
├── core/
│   ├── store.rs         SQLite + atomic claim
│   └── types.rs         wire types
├── a2a/mod.rs           HTTP JSON-RPC server (axum)
├── mcp/mod.rs           stdio MCP bridge (rmcp)
└── vault/mod.rs         markdown audit trail

Concurrency model

  • One coord serve process per project. Multiple agents and IDEs all connect over loopback HTTP; tokio + axum handle the concurrent connections.
  • Storage: SQLite in WAL mode. A single connection guarded by a Mutex serialises writes (correct for SQLite); concurrent readers are unaffected. At the workloads coord is built for (a few dozen agents, a few thousand tasks/day) this is comfortable.
  • Atomic claims: UPDATE tasks SET state='claimed' WHERE id=? AND state='pending' returning rowcount. The DB enforces single-winner.

Task kinds and states

Tasks have a free-form kind and priority plus a fixed lifecycle:

pending  ──claim──▶  claimed  ──complete──▶  completed
   ▲                    ├──cancel────▶   cancelled
   │                    ├──fail──────▶   failed
   └────reclaim─────────┘   (when lease_until < now)

A claim grants a lease: a wall-clock window (default 5 minutes, max 1 hour) within which the claiming agent must either tasks/complete or tasks/extend. If the lease expires the daemon's background ticker (and every tasks/list call) sweeps the row back to pending, clears claimed_by, and announces it on the change bus so any waiter wakes up. A dead Cursor tab no longer strands work.

There's a useful asymmetry: announcement kinds (ack, knowledge, decision) start in completed rather than pending — they're publications, not work to be picked up. The TUI's default filter still surfaces them as context.

JSON-RPC surface (A2A subset + extensions)

coord serves JSON-RPC 2.0 on POST / plus an agent card at GET /.well-known/agent.json. The tasks/send, tasks/get, and tasks/cancel methods follow the A2A v1.0 shape so an A2A-aware client can drive create / get / cancel without a custom integration. Streamable HTTP, signed Agent Cards, and push notifications are not implemented — callers should treat the surface as "JSON-RPC with an A2A-compatible task subset" rather than full A2A.

Method Purpose
tasks/send create a task (A2A-compatible)
tasks/get fetch a task by UUID (A2A-compatible)
tasks/cancel cancel a task (A2A-compatible)
tasks/list list with SQL-side filters; pass wait_ms to long-poll (extension)
tasks/claim atomic pending→claimed with a lease (extension)
tasks/extend push the lease forward, only for the current claimer (extension)
tasks/reclaim sweep expired claims back to pending (extension; auto every 30s)
tasks/complete claimed→completed with result; postAck: true writes the ack row in the same transaction
agents/heartbeat register/refresh agent presence
agents/list list known agents

MCP tools

The same operations are exposed as MCP tools (see src/mcp/mod.rs) so any MCP-aware client can drive coord without a custom integration.

CLI

coord serve          run the daemon (HTTP JSON-RPC surface)
coord mcp            stdio MCP bridge for IDE clients
coord init           scaffold a project (.mcp.json + AGENTS.md)
coord top            live TUI dashboard
coord status         one-shot summary
coord tasks          list recent tasks
coord agents         list known agents
coord send <name>    create a task (--kind, --priority, --payload)
coord claim <id>     atomic claim with a lease (--as <agent>, --lease <secs>)
coord extend <id>    push the lease forward (--as <agent>, --lease <secs>)
coord reclaim        force-sweep expired claims back to pending
coord complete <id>  mark a claimed task complete (--result <json>)
coord cancel <id>    cancel a task
coord heartbeat <id> refresh agent presence
coord wait           long-poll for a matching task (server-pushed, no polling)
coord version        version + protocol info

Every client subcommand obeys --url / COORD_URL (default http://127.0.0.1:7777/).

Configuration

Flag / env var Default
--addr / COORD_ADDR 127.0.0.1:7777
--db / COORD_DB per-user data dir (directories crate)
--vault / COORD_VAULT unset (markdown vault disabled)
--url / COORD_URL http://127.0.0.1:7777/

Tests

cargo test

Eleven tests gate every change:

  • tests/race.rs — atomic claim under in-process contention (200 tasks × 8 claimers)
  • tests/multi_client.rs — atomic claim under multi-process contention (real coord serve + 16 OS processes over HTTP)
  • tests/cancel_race.rs — cancel-vs-complete is sticky
  • tests/lease.rs (4 tests) — fresh claim writes lease metadata; extend is current-claimer-only and moves the lease forward; expired claims are reclaimed to pending and a different agent can win; completed tasks are not eligible for reclaim
  • tests/list_filter.rs — SQL-side filter pushdown surfaces a matching row that 60 newer non-matching rows would otherwise have shadowed
  • tests/wait_longpoll.rstasks/list with wait_ms returns within ~hundreds of milliseconds of a matching tasks/send, end-to-end over HTTP — proves the watch is server-pushed, not client-polled
  • tests/protocol_two_tabs.rs — full AGENTS.md workflow over real HTTP: tab A completes a task with postAck, tab B then runs ONLY the verification queries AGENTS.md prescribes (kind=ack, state=completed, walk fixed_bug_id) and finds both the work and the ack without prior UUID knowledge
  • tests/tui_render.rs — TUI snapshot test

Prior art

Several local-coordination layers for AI agents exist as of 2026 and you should know about them before picking one:

  • MCP Agent Mail — the most mature option in the space. Mailbox/email model with agent identities, advisory file reservations, threaded archives, FastMCP server, Git + SQLite backing store.
  • SynapBus — Go, single binary, MCP-native messaging with a Slack-like web UI and semantic search.
  • Agent Tower — local HTTP daemon with resource locking, announcements, and issue tracking.
  • cross-agent-teams-mcp — minimal SQLite-backed message bus with a wake channel.

coord differs in shape, not in problem space — claim-and-watch semantics, a small JSON-RPC + MCP surface, and an Obsidian-readable vault are the deliberate trade-offs. If your workflow leans on threaded messaging or file leases, MCP Agent Mail is probably the better fit.

Anthropic ships an experimental Agent Teams feature in Claude Code itself; it's lead/teammate orchestration, not a shared bulletin board, so it's complementary rather than competitive.

License

MIT. See LICENSE.