Announcing Beacon: Self-improving memory for coding agents
← All MCP servers
MCP server

io.github.bzdOS/hubd

mcp:bzdos/hubd

The project tracker for teams of humans and AI agents — in plain files. MCP server + CLI.

Verdict
Not analyzed

Indexed from the registries, but not analyzed yet. Lineage and listings below are current.

Execution chain 500

What it calls, runs, installs, reads and writes, with the line that does it.

Environment variables 80

*
hub/lib/watch.mjs:158 · passthrough
<dynamic>
<dynamic>
CAPTURE_DIR
CHROME_PATH
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_AGENT
HUBD_COMMONS
HUBD_COMMONS
HUBD_DIR
HUBD_HTTP_HOST
HUBD_HTTP_HOST
HUBD_HTTP_PORT
HUBD_HTTP_PORT
HUBD_MAX_OUTPUT_CHARS
HUBD_MAX_TENANTS
HUBD_MCP_CONFIG
HUBD_MULTITENANT
HUBD_MULTITENANT
HUBD_NODE
HUBD_NODE
HUBD_PRESENCE_SNAPSHOT_MS
HUBD_PRESET
HUBD_QUEUE_DIR
HUBD_QUEUE_DIR
HUBD_QUEUE_DIR
HUBD_QUEUE_DIR
HUBD_RATE_LIMIT
HUBD_SECRETS_DIR
HUBD_SENSE_DIR
HUBD_SENSE_ESCALATIONS
HUBD_SESSION
HUBD_SESSION
HUBD_SUBSCRIBER
HUBD_SUBSCRIBER
HUBD_SYNC_OWN
HUBD_SYNC_PUSH_TRIES
HUBD_SYNC_TIMEOUT
HUBD_TASK_ID_PREFIX
HUBD_TEAM_DIR
HUBD_TEAM_DIR
HUBD_TEAM_DIR
HUBD_TEAM_DIR
HUBD_TEAM_DIR
HUBD_TOKEN
HUBD_TOOLS
HUBD_TOOLS
HUBD_WATCH_KEY
PROJECT_HUB_DIR
XDG_CONFIG_HOME

Commands run 46

/bin/sh -c {…}
/bin/sh -c {…}
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/setup.mjs:329 · via:runNative
<dynamic>
hub/lib/setup.mjs:330 · via:runNative
<dynamic>
<dynamic>
hub/lib/setup.mjs:368 · via:runNative
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
ffmpeg -y -framerate {…} -i {…} -vf fps={…},scale=1120:-1:flags=lanczos,split[a][b];[a]palettegen=max_colors=48[p];[b][p]paletteuse=dither=bayer:bayer_scale=4:diff_mode=rectangle {…}
git
git
git -C {…} {…}
git -C {…} log -1 --format=%cI -- queues/
git diff --shortstat {…}..HEAD
git diff --stat
git log --format='%h %s' -n {…}
git log --oneline -10
git log --oneline -10
git log --oneline {…}..HEAD
git log --since="{…} days ago" --format=%cn
git log --since="{…} days ago" --format=%h
git log -1 --before="{…}" --format=%H
git log -1 --format=%ci
git log -1 --format=%H%n%an%n%s
git rev-parse --abbrev-ref HEAD
git status --porcelain
git status --short
git symbolic-ref --short -q HEAD
gpg --batch --yes --quiet --pinentry-mode loopback --passphrase-file {…} {…}
if ! node -e "import('$INSTALLED_DIR/hub/index.mjs').then(()=>process.exit(0)).catch(e=>{console.error(e.message);process.exit(1)})"; then
NODE="$(printf '%s' "${HUBD_NODE:-$(hostname 2>/dev/null)}" | cut -d. -f1 | tr '[:upper:]' '[:lower:]' | sed -e 's/[^a-z0-9_-][^a-z0-9_-]*/-/g' -e 's/^-*//' -e 's/-*$//' | cut -c1-40)"; [ -n "$NODE" ] || NODE=node
scripts/mesh-sync.sh:133 · pipe_to_shell
ps -o lstart= -p {…}

Files read 342

{…}.stale.{…}.{…}
/proc/{…}/stat
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/cli.mjs:1701 · via:runSessionsIngest
<dynamic>
hub/cli.mjs:1715 · via:runPricePull
<dynamic>
hub/cli.mjs:1880 · via:templateNames
<dynamic>
hub/cli.mjs:1883 · via:templateNames
<dynamic>
<dynamic>
hub/cli.mjs:1895 · via:renderPrompt
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/cli.mjs:2338 · via:demoTarget
<dynamic>
hub/index.mjs:800 · via:templateNames
<dynamic>
hub/index.mjs:803 · via:renderPrompt
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/absorb.mjs:84 · via:readLines
<dynamic>
hub/lib/absorb.mjs:118 · via:readLines
<dynamic>
hub/lib/absorb.mjs:124 · via:readLines
<dynamic>
hub/lib/absorb.mjs:128 · via:readLines
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/board.mjs:115 · via:firstLine
<dynamic>
hub/lib/board.mjs:134 · via:firstLine
<dynamic>
hub/lib/board.mjs:155 · via:firstLine
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/cards.mjs:198 · via:readJson
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/core.mjs:881 · via:readJson
<dynamic>
hub/lib/core.mjs:886 · via:readJson
<dynamic>
<dynamic>
hub/lib/core.mjs:1121 · via:readJson
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/core.mjs:2149 · via:readJson
<dynamic>
<dynamic>
<dynamic>
hub/lib/core.mjs:2385 · via:readJson
<dynamic>
<dynamic>
<dynamic>
hub/lib/core.mjs:2404 · via:fileLines
<dynamic>
<dynamic>
hub/lib/core.mjs:2419 · via:fileLines
<dynamic>
hub/lib/core.mjs:2425 · via:fileLines
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/core.mjs:2493 · via:markerFiles
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/core.mjs:3788 · via:firstLine
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/core.mjs:4407 · via:readJson
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/core.mjs:4998 · via:readJson
<dynamic>
<dynamic>
hub/lib/core.mjs:5003 · via:readJson
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/demo.mjs:41 · via:demoTarget
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/doctor.mjs:184 · via:driverStatus
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/doctor.mjs:547 · via:listShards
<dynamic>
hub/lib/doctor.mjs:552 · via:subscriberRoles
<dynamic>
hub/lib/doctor.mjs:560 · via:readCursor
<dynamic>
hub/lib/doctor.mjs:568 · via:readJson
<dynamic>
<dynamic>
hub/lib/doctor.mjs:693 · via:listShards
<dynamic>
<dynamic>
<dynamic>
hub/lib/escalations.mjs:67 · via:overflowBodies
<dynamic>
<dynamic>
hub/lib/gc.mjs:79 · via:subscriberRoles
<dynamic>
hub/lib/gc.mjs:89 · via:readJson
<dynamic>
hub/lib/gc.mjs:93 · via:listShards
<dynamic>
<dynamic>
hub/lib/gc.mjs:115 · via:readJson
<dynamic>
hub/lib/gc.mjs:117 · via:scanWaiters
<dynamic>
hub/lib/gc.mjs:120 · via:scanWaiters
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/prompts.mjs:36 · via:templateNames
<dynamic>
<dynamic>
<dynamic>
hub/lib/prompts.mjs:63 · via:promptDocs
<dynamic>
hub/lib/prompts.mjs:64 · via:templateNames
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:71 · via:isHubRoot
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:329 · via:readJson
<dynamic>
hub/lib/queue.mjs:345 · via:readJson
<dynamic>
hub/lib/queue.mjs:348 · via:readCursor
<dynamic>
<dynamic>
hub/lib/queue.mjs:361 · via:readJson
<dynamic>
<dynamic>
hub/lib/queue.mjs:409 · via:markOffset
<dynamic>
<dynamic>
hub/lib/queue.mjs:582 · via:readCursor
<dynamic>
hub/lib/queue.mjs:586 · via:readCursor
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:673 · via:readAcks
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:756 · via:readMarks
<dynamic>
hub/lib/queue.mjs:758 · via:subscriberRoles
<dynamic>
hub/lib/queue.mjs:759 · via:subscriberDirs
<dynamic>
hub/lib/queue.mjs:762 · via:readCursor
<dynamic>
hub/lib/queue.mjs:771 · via:readAcks
<dynamic>
hub/lib/queue.mjs:794 · via:listShards
<dynamic>
hub/lib/queue.mjs:861 · via:listShards
<dynamic>
<dynamic>
hub/lib/queue.mjs:865 · via:readAcks
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:898 · via:resolveQueueFile
<dynamic>
<dynamic>
hub/lib/queue.mjs:909 · via:readAcks
<dynamic>
hub/lib/queue.mjs:1006 · via:subscriberRoles
<dynamic>
hub/lib/queue.mjs:1019 · via:resolveQueueFile
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:1256 · via:readMarks
<dynamic>
hub/lib/queue.mjs:1262 · via:readCursor
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:1310 · via:readAcks
<dynamic>
hub/lib/queue.mjs:1318 · via:readAcks
<dynamic>
<dynamic>
hub/lib/queue.mjs:1341 · via:readAcks
<dynamic>
<dynamic>
hub/lib/queue.mjs:1432 · via:listShards
<dynamic>
hub/lib/queue.mjs:1439 · via:subscriberRoles
<dynamic>
<dynamic>
hub/lib/queue.mjs:1490 · via:subscriberDirs
<dynamic>
hub/lib/queue.mjs:1499 · via:readMarks
<dynamic>
hub/lib/queue.mjs:1507 · via:readMarks
<dynamic>
hub/lib/queue.mjs:1525 · via:listShards
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:1587 · via:readCursor
<dynamic>
<dynamic>
hub/lib/queue.mjs:1592 · via:subscriberDirs
<dynamic>
<dynamic>
hub/lib/queue.mjs:1638 · via:listShards
<dynamic>
hub/lib/queue.mjs:1639 · via:subscriberRoles
<dynamic>
hub/lib/queue.mjs:1643 · via:subscriberDirs
<dynamic>
hub/lib/queue.mjs:1649 · via:readMarks
<dynamic>
<dynamic>
hub/lib/queue.mjs:1655 · via:readCursor
<dynamic>
hub/lib/queue.mjs:1665 · via:readCursor
<dynamic>
hub/lib/queue.mjs:1720 · via:subscriberRoles
<dynamic>
hub/lib/queue.mjs:1723 · via:listShards
<dynamic>
<dynamic>
hub/lib/queue.mjs:1730 · via:readMarks
<dynamic>
hub/lib/queue.mjs:1732 · via:readCursor
<dynamic>
hub/lib/queue.mjs:1768 · via:subscriberDirs
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:1864 · via:subscriberDirs
<dynamic>
hub/lib/queue.mjs:1865 · via:subscriberDirs
<dynamic>
<dynamic>
<dynamic>
hub/lib/queue.mjs:1879 · via:listShards
<dynamic>
<dynamic>
hub/lib/queue.mjs:1950 · via:readCursor
<dynamic>
hub/lib/queue.mjs:1953 · via:subscriberDirs
<dynamic>
hub/lib/queue.mjs:1954 · via:subscriberDirs
<dynamic>
hub/lib/queue.mjs:1981 · via:readMarks
<dynamic>
hub/lib/queue.mjs:2015 · via:readCursor
<dynamic>
hub/lib/queue.mjs:2032 · via:readMarks
<dynamic>
hub/lib/queue.mjs:2035 · via:listShards
<dynamic>
<dynamic>
hub/lib/queue.mjs:2105 · via:listShards
<dynamic>
hub/lib/queue.mjs:2107 · via:readCursor
<dynamic>
hub/lib/queue.mjs:2145 · via:listShards
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/sense.mjs:71 · via:readJson
<dynamic>
hub/lib/sense.mjs:96 · via:readJson
<dynamic>
hub/lib/sense.mjs:383 · via:readJson
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/session.mjs:81 · via:startToken
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/setup.mjs:164 · via:readConfig
<dynamic>
<dynamic>
<dynamic>
hub/lib/setup.mjs:283 · via:rulesBlock
<dynamic>
<dynamic>
hub/lib/setup.mjs:327 · via:backup
<dynamic>
hub/lib/setup.mjs:367 · via:backup
<dynamic>
<dynamic>
hub/lib/setup.mjs:464 · via:dshParse
<dynamic>
<dynamic>
<dynamic>
hub/lib/setup.mjs:503 · via:dshParse
<dynamic>
hub/lib/setup.mjs:506 · via:dshParse
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/lib/summary.mjs:63 · via:readJson
<dynamic>
<dynamic>
<dynamic>
hub/lib/watch.mjs:48 · via:readJson
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
scripts/gen-reference.mjs:539 · via:templateNames
<dynamic>
${HUBD_MCP_CONFIG:-$HOME/.claude.json}
AGENTS.md
AGENTS.md
hub/cli.mjs
hub/index.mjs
hub/lib/core.mjs
hub/lib/core.mjs
package.json

Files written 32

{…}.fold.{…}
{…}.fold.{…}
{…}.fold.{…}
{…}.fold.{…}
{…}.stale.{…}.{…}
{…}.stale.{…}.{…}
{…}.tmp.{…}
{console.error
/tmp/hubd-deploy-npm.log
/tmp/hubd-deploy-smoke.log
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
hub/cli.mjs:2339 · via:writeDemo
<dynamic>
<dynamic>
<dynamic>
hub/lib/absorb.mjs:190 · via:shareMode
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>

Linked repositories 5

GitHub repositories it links to or installs from, and whether their names can be taken over.

bzdos/bsdos
url · not tracked
bzdos/bzdk
url · not tracked
bzdos/lima-freebsd
url · not tracked
can1357/oh-my-pi
url · not tracked
elder-plinius/v3r1t4s
url · not tracked