This documentation always describes the latest published version. For older versions, see the CHANGELOG.
Project Hub is a Claude Code plugin for structured project management directly in Claude. It replaces scattered notes, email threads, and spreadsheets with a central, searchable project registry β contacts, meeting logs, decisions, and communication drafts, all in the context of the active project.
What Project Hub is:
What Project Hub is not:
| Feature | Manual Notes | Project Hub |
|---|---|---|
| Contact overview | Scattered across emails, notes | Central contact registry per project |
| Meeting minutes | Word files, everywhere | Structured notes with type and date |
| Decisions | Somewhere in the chat history | Documented with date and context |
| Communication | Manually written | Context-aware drafting via /compose |
| Search | Full-text search across all files | /search across all notes and contacts |
| Handoffs | Re-briefing required | /resume loads the full project context instantly |
| Related projects | No linking, kept in your head | Projects can be linked, visible in dashboard and report |
Every project is loaded once (/project-hub:resume), and Claude then knows:
Internal and external contacts with:
Internal contacts can be marked as shared β they then become automatically available in every project, without duplicates:
/resume loads shared contacts under "Shared Contacts" automatically/add-contact asks whether the person should be shared across projectsTyped notes:
Notes and projects can attach files (tool_attach_file). For PDFs, Word, and Excel documents, an .md sibling file is generated automatically on attach (via MarkItDown conversion) β Claude can then read the content directly, without parsing the original format. Images are skipped (no real text recognition).
Conversion is best-effort: if it fails, or a file with that
.mdname already exists, the original attachment is still kept.
/project-hub:compose creates drafts for:
The draft automatically uses project context, known contact names, and the current phase.
Each project type has a knowledge repository (~/.project-hub/knowledge/{type}/):
/resume/project-hub:report generates full HTML reports:
Linked projects (see Project Links) are automatically shown in both the dashboard and reports.
/project-hub:vacation-handover generates a complete handover document for all open projects of the active project type β based on a knowledge template (~/.project-hub/knowledge/{type}/vacation-handover.md). A built-in template already ships for merchant-onboarding.
/knowledge update vacation-handover)If no template exists for the active project type, the skill generates no document β templates must be created first via
/project-hub:knowledge.
Two projects can be linked together β for example to represent a follow-up engagement or a multi-market rollout, without keeping the history in your head.
| Relation | Meaning |
|---|---|
successor |
Project A is the successor of Project B (e.g. "Joybuy 2" after "Joybuy") |
predecessor |
The reverse of successor |
related |
Symmetric link with no direction (e.g. two markets of the same rollout) |
Behavior:
Links are currently set only via the MCP tools
tool_link_project/tool_unlink_projectβ there is no dedicated skill for this yet.
Project Hub ships with 6 built-in project types:
| Type | Use Case |
|---|---|
merchant-onboarding |
Enterprise merchant onboarding (BNPL, direct debit, multi-market) |
it-project |
IT / software projects |
consulting |
Consulting engagements |
marketing |
Marketing campaigns |
event |
Event planning and coordination |
generic |
General projects |
Create custom types via /project-hub:type-creator β define knowledge documents, status levels, and role patterns.
Detailed documentation: Project Types
Project Hub has 20 skills, invoked via /project-hub:<skill-name>:
| Skill | Purpose |
|---|---|
new-project |
Create a new project |
get-template |
Get a fillable project template to prepare outside the chat |
resume |
Load / switch a project |
dashboard |
Overview of all projects |
status |
Show and update project status |
add-contact |
Add a contact |
add-note |
Log a note, minutes, email, or decision |
edit-note |
Edit an existing note |
search |
Full-text search across all content |
summarize |
Summarize an email or meeting transcript |
compose |
Draft an email, Slack, or Teams message |
knowledge |
View and manage the knowledge repository |
session-start |
Initialize a session, check setup |
next-step |
Recommend the next sensible step |
configure |
Edit plugin settings |
setup |
First-time setup |
type-creator |
Create a custom project type |
report |
Generate an HTML report |
vacation-handover |
Generate a vacation handover document for all open projects |
help |
Show all available skills |
In addition to these 20 user-facing skills, there are internal, machine-invoked test skills for automated rollout testing β not part of this reference.
Detailed documentation: Skills in Detail
The Project Hub MCP server (project-hub-mcp) provides the following tools:
tool_list_projects(status?) β all projects (filtered by status)tool_get_project(identifier) β load a project with all metadatatool_create_project(...) β create a new projecttool_update_project(project_id, ...) β update project datatool_link_project(identifier, related_identifier, relation_type) β link two projects (successor / predecessor / related)tool_unlink_project(identifier, related_identifier) β remove a link, regardless of direction or typetool_list_contacts(project_id) β all contacts of a projecttool_list_shared_contacts() β all shared contacts (cross-project)tool_add_contact(project_id, ..., is_shared?) β add a contact (is_shared=true for shared ones)tool_update_contact(contact_id, ..., is_shared?) β edit a contact (sharing changeable later)tool_delete_contact(contact_id) β delete a contacttool_search_contacts(query, project_id?) β search contacts (including shared)tool_list_notes(project_id, ...) β list notestool_get_note(note_id) β load a single notetool_add_note(project_id, ...) β log a new notetool_update_note(note_id, ...) β edit a notetool_delete_note(note_id) β delete a notetool_search_notes(project_id, query) β search notestool_get_all_knowledge(project_type) β load all knowledge documents of a typetool_get_knowledge(project_type, doc_name) β load a single knowledge documenttool_save_knowledge(project_type, doc_name, content) β save a knowledge documenttool_delete_knowledge(project_type, doc_name) β delete a knowledge documenttool_list_knowledge(project_type) β list available knowledge documentstool_get_session() β load the active sessiontool_set_session(project_id?, ...) β set the sessiontool_clear_session() β clear the sessiontool_list_attachments(project_id) β list a project's file attachmentstool_attach_file(project_id, file_path) β attach a file (auto-generates a readable .md sibling for supported formats)tool_list_docs(project_id) β list documents in a project's docs folder| Component | Version |
|---|---|
| Claude Code | Latest |
| Python | 3.11+ |
| Operating System | Windows, macOS, Linux |
No API key needed β Project Hub uses Claude Code's built-in Claude access.
Project Hub runs natively on Windows β no WSL required.
/project-hub:setupresolves the Python interpreter automatically viapy -3, including on devices where thepython/python3alias is blocked by the Microsoft Store.
# 1. Add the marketplace
claude plugin marketplace add markus-michalski/project-hub
# 2. Install the plugin
claude plugin install project-hub@project-hub
# 3. First-time setup
/project-hub:setup
Marketplace installation is the preferred path: future updates run via
claude plugin update project-hub, no manualgit pullneeded.
# 1. Clone the plugin
git clone https://github.com/markus-michalski/project-hub \
~/.claude/plugins/project-hub
Add to ~/.claude/settings.json:
{
"enabledPlugins": {
"project-hub@project-hub": true
}
}
# 2. First-time setup
/project-hub:setup
Configuration file: ~/.project-hub/config.yaml
name: My Name # Your name (for communication drafts)
language: en # Default language (de / en)
Interactive configuration via /project-hub:configure.
1. /project-hub:setup # First-time setup
2. /project-hub:new-project # Create a new project
3. /project-hub:add-contact # Add a stakeholder
4. /project-hub:add-note # Log the first meeting
5. /project-hub:next-step # What's next?
6. /project-hub:compose email # Draft an email
Second session:
/project-hub:resume [project-name] # Pick up right where you left off
~/.project-hub/
βββ config.yaml # Plugin configuration
βββ project-hub.db # SQLite database (projects, contacts, notes)
βββ knowledge/
β βββ merchant-onboarding/
β β βββ governance.md
β β βββ process.md
β β βββ roles.md
β β βββ vacation-handover.md
β βββ it-project/
β β βββ architecture.md
β β βββ charter.md
β β βββ runbook.md
β βββ {custom-type}/
β βββ ...
βββ projects/
βββ {project-slug}/
βββ docs/
βββ emails/
βββ meeting-notes/
βββ misc/
On Windows, the same directory lives under %USERPROFILE%\.project-hub\.
The knowledge system stores project-type-specific knowledge that becomes automatically available when a project is loaded.
Built-in knowledge documents:
| Project Type | Documents |
|---|---|
merchant-onboarding |
governance.md, process.md, roles.md, vacation-handover.md |
it-project |
architecture.md, charter.md, runbook.md |
consulting |
engagement.md, governance.md, roles.md |
event |
logistics.md, runsheet.md, stakeholders.md |
marketing |
campaign-brief.md, stakeholders.md |
generic |
charter.md |
Custom documents: Simply drop Markdown files under ~/.project-hub/knowledge/{type}/. They're loaded automatically on the next /resume.
Managing knowledge: /project-hub:knowledge shows all available documents and allows direct editing in context.
On /resume, Project Hub loads in 8 steps:
tool_get_session() β check the active sessiontool_list_projects("active") β user picks a projecttool_get_project(identifier) β load full project datatool_list_contacts(project_id) β load project-specific contactstool_list_shared_contacts() β load shared contacts (cross-project)tool_get_all_knowledge(project_type) β load domain knowledgetool_list_notes(project_id) β load notes and activitiesIf a project is specified directly (/project-hub:resume Acme), step 2 is skipped.
ls ~/.claude/plugins/project-hub/skills/
The plugin directory must be registered in ~/.claude/settings.json under enabledPlugins.
/project-hub:setup
ls ~/.project-hub/
If the directory is missing: run /project-hub:setup once.
Knowledge files must live under ~/.project-hub/knowledge/{project-type}/. Check with /project-hub:knowledge.
On some Windows devices, the python/python3 alias is blocked by the Microsoft Store. /project-hub:setup detects this automatically and falls back to py -3. If that also fails: install Python 3.11+ directly from python.org.
Project Hub is licensed under the PolyForm Noncommercial License 1.0.0. Personal, non-commercial use is free. Commercial use requires a separate license.
CLA for contributors: Contributor Agreement