Cards, journal and queues are markdown and JSONL in a folder you own, which is why a person can read them with no LLM involved and a second agent can join by reading a role file. hub_audit is the sharp edge: it compares what the cards claim against what the journal recorded, and turns each disagreement into something somebody has to answer for.
A project tracker that agents write to over MCP and people read through a CLI and a read-only kanban. Everything is markdown and JSONL in a folder you control: project cards, a shared journal, cross-project tasks, role queues agents can block on, and a typed graph of projects and infrastructure.
- Project state — hub_sync collects git facts and your digest from a folder, hub_card_set updates a card with no folder needed, hub_section_add appends one line to one section, hub_context resolves which project your working directory belongs to
- Reading across everything — hub_status, hub_get for one project, hub_search across cards and the journal including archived months, hub_recall for ranked memory over cards, sections, decisions, journal and tasks
- Tasks — hub_task_add, hub_task_get with what blocks it and what it blocks, hub_task_list, hub_task_update, hub_kanban, and hub_trajectory for the critical path across dependencies
- Deciding what to do — hub_next returns the one task to do now and why it won, hub_agenda splits the day by who can act, hub_brief for the morning brief, hub_inbox for what needs a decision, hub_whatsnew for what changed since your own last check
- Journal and accountability — hub_report appends a session report, hub_audit compares what the cards declare against what actually happened, hub_lint checks which of your rules are enforceable rather than prose
- Cost — hub_usage_add records seconds, tokens, cost and model, which only the agent can observe; hub_usage reports a window with supplied and measured figures kept apart
- Coordination — hub_queue_send, hub_queue_wait and hub_queue_wait_all for cross-agent handoffs, hub_claim and hub_release for informational soft locks, hub_heartbeat and hub_presence for the fleet roster
- Context — hub_rules reads or amends the team constitution, hub_operator holds facts and preferences about the human, hub_onboarding orients an agent that has never used the hub
- Infrastructure — hub_resource_set, hub_resource_list, hub_resource_get and hub_graph map hosts, VMs, services, endpoints and providers and the relationships between them
Npm i -g @bzdos/hubd installs both binaries: hubd, the MCP server agents talk to over stdio, and hub, the CLI for people. One claude mcp add command connects an agent. Set HUBD_AGENT on day one — every write is attributed and the field is required, so without it a write falls back to that name plus a session suffix. Name the function rather than the model: model and client names, and placeholders like unknown or cli, are refused. hubd also speaks MCP over HTTP for one shared hub across a team. The ready-made company template lives in the repository, not in the npm package.
One command — npx -y @bzdos/hubd
