MCPcopy Index your code
hub / github.com/bholmesdev/hubble.md

github.com/bholmesdev/hubble.md @desktop-v0.1.17

Chat with this repo
repository ↗ · DeepWiki ↗ · release desktop-v0.1.17 ↗ · + Follow
981 symbols 2,604 edges 178 files 26 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Hubble.md

The best notepad for you and your agents. Free, open source, backed by Markdown and HTML.

Download · Releases · Contributing · @bholmesdev

What is Hubble?

Hubble is a free, open-source notetaking app for you and your agents.

  • Feels familiar. The same writing experience you're used to from Notion or Apple Notes, but for Markdown. / commands, Markdown shortcuts, and file properties / frontmatter are supported.
  • Agent ready. Point your agent at your notes folder to start collaborating. Hubble will live-reloads as your agent edits.
  • Build any view. Beyond Markdown, you can build and view HTML-based apps. Install the skills and tell your coding agent what to build. Turn a folder of notes into a table, a bookshelf, a map... anything you can think of.

Download

Hubble ships as a desktop app. Install the latest build from the releases page.

macOS, Windows, and Linux are supported. macOS builds are signed and notarized; Windows and Linux builds are unsigned, so your OS may warn before the first launch.

Compile from source

Want to build Hubble directly? First, install the prerequisites:

  • Node.js
  • pnpm
  • macOS desktop builds: Xcode Command Line Tools via xcode-select --install

Then from the repo root:

pnpm install
pnpm bundle:desktop:mac
# or for windows:
pnpm bundle:desktop:win
# or for linux:
pnpm bundle:desktop:linux

This creates a production desktop bundle under apps/desktop/release/. For the live dev flow and packaging detail, see apps/desktop/README.md.

Repository structure

This repo is a pnpm workspace:

.
├── apps
│   ├── desktop  # Electron desktop app (the main Hubble app)
│   ├── web      # Astro landing page (hubble.md homepage)
│   └── www      # React + Convex web app (Hubble in the browser. HEAVILY WIP)
└── packages
    ├── editor         # Framework-agnostic Markdown editor core (Tiptap + Markdown conversion)
    ├── ui             # Shared React editor UI built on the editor core
    ├── runtime        # Runtime injected into HTML Apps and Embeds
    ├── sync           # Filesystem sync engine (HEAVILY WIP)
    ├── convex-client  # Convex client used by the sync engine
    ├── sync-backend   # Convex backend powering Cloud Sync
    └── cli            # `hubble` CLI for syncing a folder from the terminal

Common commands

From the repo root:

pnpm install          # install dependencies
pnpm dev:desktop      # run the desktop app in dev
pnpm dev:www          # run the web app in dev
pnpm build            # check, build all packages, and typecheck
pnpm bundle:desktop:mac   # build a production desktop bundle for macOS
pnpm check            # run Biome
pnpm typecheck        # typecheck all packages

Documentation

  • CONTRIBUTING.md covers the contribution flow, local setup, and pre-PR checks.
  • CONTEXT.md is the shared glossary for project terms (Workspace, HTML App, Embed, and more).
  • apps/desktop/README.md covers desktop build, dev, and packaging.

Contributing

Contributions of any size are welcome. Open an issue before substantial work so we can agree on the approach together. See CONTRIBUTING.md for the full flow.

This project follows our Code of Conduct. To report a security issue, see our security policy.

License

Hubble.md is licensed under the MIT License.

Extension points exported contracts — how you extend this code

Commands (Interface)
(no doc)
packages/editor/src/FindExtension.ts
Commands (Interface)
(no doc)
packages/ui/src/editor/SmartLinkExtension.ts
FileSystem (Interface)
(no doc)
packages/sync/src/fs.ts
ImportMetaEnv (Interface)
(no doc)
apps/www/src/vite-env.d.ts
Window (Interface)
(no doc)
apps/desktop/src/vite-env.d.ts
ExtensionStorage (Interface)
(no doc)
packages/editor/src/FakeSelectionExtension.ts
SyncBackend (Interface)
(no doc)
packages/sync/src/backend.ts
ImportMeta (Interface)
(no doc)
apps/www/src/vite-env.d.ts

Core symbols most depended-on inside this repo

cn
called by 29
packages/ui/src/lib/utils.ts
tiptapDocToMarkdown
called by 24
packages/editor/src/prosemirrorToMarkdown.ts
formatShortcut
called by 21
packages/ui/src/lib/shortcut.ts
sendToRenderer
called by 20
apps/desktop/electron/main.ts
markdownToTiptapDoc
called by 18
packages/editor/src/markdownToProsemirror.ts
normalizeDisplayPath
called by 18
packages/ui/src/lib/filePath.ts
normalizePath
called by 17
apps/desktop/src/lib/filePath.ts
subscribe
called by 16
apps/desktop/electron/preload.ts

Shape

Function 941
Method 24
Interface 10
Class 6

Languages

TypeScript100%

Modules by API surface

apps/desktop/electron/main.ts60 symbols
apps/desktop/src/store/actions.ts56 symbols
packages/ui/src/components/Sidebar.tsx47 symbols
packages/ui/src/editor/LinkPopover.tsx37 symbols
packages/cli/src/index.ts28 symbols
apps/www/src/store/actions.ts25 symbols
packages/ui/src/editor/FilePropertiesPanel.tsx23 symbols
packages/editor/src/prosemirrorToMarkdown.ts21 symbols
packages/editor/src/markdownToProsemirror.ts19 symbols
apps/desktop/src/editor/IframeView.tsx19 symbols
apps/desktop/src/components/TerminalPanel.test.tsx19 symbols
apps/desktop/scripts/dev.mjs19 symbols

For agents

$ claude mcp add hubble.md \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact