Every workspace, one server
One process scans the shared roots once and nests each project workspace under a single Projects folder. Open a project on its own, or the combined view across all of them.
projects/<Name>/hub.config.jsonProject Hub scans your workspaces and shows their repos, Git status, documents and AI agent tools in one browser interface. Browse files, search, bookmark pages, and preview Markdown, PDFs, HTML reports and images. The view updates as files change.
Nothing is hard-coded. Every repo, runtime, skill, command, sub-agent, hook, MCP server and doc on the page comes from a live filesystem scan.
One process scans the shared roots once and nests each project workspace under a single Projects folder. Open a project on its own, or the combined view across all of them.
projects/<Name>/hub.config.jsonA repos table with branch, clean or dirty, ahead and behind, plus each repo's rendered README, latest commit and its CLAUDE.md or AGENTS.md.
git statusSkills, commands, sub-agents, hooks, MCP servers and plugins, split into Project CLIs and User CLIs: Claude Code, Codex, Gemini, OpenCode and Antigravity.
~/.claude · ~/.codex · ~/.geminiMarkdown rendered with its HTML header blocks intact, HTML preview and source, PDF preview, images, and links that jump inside the hub.
md · html · pdf · imagesCtrl+K search ranks runtimes and repos above folders and docs, and suggests close matches. An activity bar switches between explorer, bookmarks, recent documents, favorites and settings.
The hub's own favorites list, imported from any browser or synced live with Edge, Chrome or Brave. Websites can open in tabs inside the hub.
favorites.jsonSeven dark and two light, applied before first paint so a non-default scheme never flashes. The schemes differ in colour only.
obsidian · paper · nord …Binds 127.0.0.1 with a Host-header check and a CSP on every response. Configs, scans and logs stay out of Git. Optional phone access over your own Tailscale network.
127.0.0.1:4273No framework, no bundler, no lockfile. Node's standard library and a single page served as-is.
The server config sets base and any sharedRoots. Each workspace gets its own hub.config.json with a name and dir.
hub/hub.mjs scans and servesIt walks the roots, reads Git state and frontmatter, and serves the result on loopback, by default http://127.0.0.1:4273.
hub/index.html renders itThe whole UI in one file. A watcher streams changes, so the page re-renders on its own when anything on disk moves.
The server checks every Host header and sets a CSP on every reply. It serves one cached scan to every tab, reads files only through the resolveId() gate, and rescans when the watcher sees a change.
Requires Node 18.17+ and Git on PATH. Windows launchers also need PowerShell 7 (pwsh). From the repository root:
# copy the example configs, then edit base, sharedRoots, name and dir > Copy-Item project-hub/hub.config.example.json project-hub/hub.config.json > New-Item -ItemType Directory projects/My_Workspace > Copy-Item projects/_example/hub.config.json.example projects/My_Workspace/hub.config.json # start the hub > ./project-hub/Start-Hub.ps1 # or start Node directly > node hub/hub.mjs --config project-hub/hub.config.json
Then open http://127.0.0.1:4273, or the port you configured. Native file-opening actions are Windows-specific. See the setup guide and the config reference.
Everything lives in the public repo on main.
A hosted, read-only hub over a fictional workspace: the real interface and the real scan output.
project-hub-demo.ai-automation-tools.devSource, issues and the MIT license.
ai-automation-tools/project-hubConfiguration, navigation and reader tools.
project-hub/README.mdAPI, scanning, config and health checks.
Hub/README.mdSetup, usage, design notes and planned work.
Docs/README.mdThe fixture workspace, and what in the demo is real and what is not.
Demo/README.mdOpen your own hub over a private Tailscale network, with nothing on the public internet.
Docs/REMOTE-ACCESS.mdWhat changed, newest first.
Docs/CHANGELOG.mdShipped changes and remaining work.
docs/ROADMAP.mdAn agent skill that adds workspaces to a hub or creates a portable installation.
Skills/project-hub-scaffoldThe canonical home of the scaffold skill and the hub's maintainer skills.
ai-automation-tools/agent-skillsScheduled-task control plane. The hub's watchdog is one of the tasks it can see.
ai-automation-tools/cronsoleMCP server for AI-to-AI conversations. Its workspace is one of the things a hub renders.
ai-automation-tools/roundtable