GemiHub

September 5, 2026 · View on GitHub

Read your documents, mark them up, and ask Gemini about them — all inside your own Google Drive.

Open a PDF, EPUB, or Markdown note from your Drive, highlight a passage, and pin a memo to it. Highlights, memos, dashboards, chat history, and workflows are all plain files in your Drive — so the AI can read every one of them, and you can walk away with everything at any time. No external database. Self-hostable.

Try GemiHub at gemihub.net → · 日本語版 README

GemiHub

Why GemiHub?

Documents you read, with the notes you took

Open a PDF, EPUB, Markdown, text, or image file — in the main viewer or in a dashboard File widget — select a passage, right-click, and Add to memo. Every document gets its own memo timeline.

  • Quote-anchored highlights — the quote is captured with its surrounding context and painted into the document via the CSS Custom Highlight API. Anchors are quote-first, so highlights survive document edits and EPUB reflow.
  • Jump both ways — click a highlight to reach its memo; click the quote inside a memo to jump back to the exact passage.
  • A real timeline — WYSIWYG or raw Markdown composer, pin/edit/delete, wiki links that open in the IDE, and a collapsible rail so highlights stay visible while you read.
  • Plain Markdown storage — memos are ordinary files under Dashboards/Memos/ in your Drive. Portable, searchable, syncable — and because they are just files, chat and RAG can use them too.

A built-in pdf.js viewer (selectable text, page navigation, zoom) and a client-side EPUB reader (font size, page width) make GemiHub a comfortable place to actually read what you annotate.

Document Memos

A dashboard assembled from your own files

The home screen is a drag-and-drop widget grid: file viewers with their memos, a memo list, Obsidian-style Base queries over a folder of notes, kanban boards that write status changes back into the source Markdown, a timeline microblog, an encrypted secret manager, live workflow output, and web embeds. Build several dashboards, pin one as home — each is saved as a .dashboard file in your Drive, editable as a rendered view or as raw YAML.

Dashboard

AI that already has the context

Chat streams from Gemini with function calling, thinking display, and image generation, and it reaches straight into your files: read, search, create, and update. Add semantic search over your Drive with RAG, curated Markdown knowledge bases with OKF bundles, external tools over MCP, and reusable Agent Skills — then automate the whole thing with visual workflows that run in the browser and stream their output live.

Visual Workflow Editor

Your data, your control

Everything lives in a gemihub/ folder in your own Google Drive: chat history, workflows, settings, edit history. No proprietary database, no lock-in. Optional hybrid RSA + AES encryption protects sensitive files, and a standalone Python decryption script ships with the repo so you can always read your own data without GemiHub.

GemiHub is offline-first: files are cached in IndexedDB and load instantly, edits work with no connection, and Push/Pull syncs on your terms — with MD5 conflict detection, a diff-based resolution dialog, and a backup of whatever you did not keep. The same _sync-meta.json format is spoken by the Obsidian plugin, so a vault and GemiHub can share one Drive folder.

Push/Pull Sync

Features

Reading & annotation — Per-document memo timelines on Markdown, PDF, EPUB, text, and image files, with quote-anchored two-way highlights, stored as plain Markdown · pdf.js PDF viewer · client-side EPUB reader · Memo List widget across every annotated document

Dashboard — Drag-and-drop grid with undo/redo, one-click column/row alignment, multiple dashboards and a pinned home · File, Memo List, Base (Obsidian .base queries as table/cards/list), Kanban (.kanban YAML, drag-to-restatus written back to Markdown), Secret Manager, Timeline, Workflow output (with auto-refresh), and Web widgets

AI chat — Streaming Gemini chat with function calling, thinking display, image generation, and attachments · user-defined slash commands with {content} / {selection} / @file templates and per-command model and tool overrides · /run @workflow.yaml from chat

Knowledge — RAG semantic search over Drive files · OKF knowledge bundles selectable per chat · MCP servers as tools (OAuth support, interactive MCP Apps) · Agent Skills, including one-click external skills from the catalog · plugins installed from GitHub or developed locally

Editing — WYSIWYG Markdown editor (wysimark-lite) · Obsidian-compatible JSON Canvas · unified-diff edit history for files and workflows · publish any document to a public URL · encrypted files, chat history, and workflow logs

Automation — Visual workflow editor with 25 node types that run in the browser (plus Gmail, Calendar, and Sheets nodes on paid plans), YAML import/export, and real-time SSE execution · AI workflow generation from natural language with streaming diff preview

Teams — Organization projects on managed Cloud Storage and Vertex AI, with member roles, per-member AI budgets, and project-scoped dashboards and workflows

Also — Configurable keyboard shortcuts · curated Gemini and Gemma model selection, kept current in-app · encrypted secret storage · trash with recovery · English and Japanese UI

More screenshots

Dashboard widgets — kanban boards, workflow output, the timeline microblog, and Base view settings.

Dashboard Kanban Board Dashboard Workflow Widget Timeline Widget Base Widget Settings Dashboard Editing

Secret Manager — RSA + AES encrypted values as self-contained .encrypted files in a Drive folder, searchable by name and visible metadata before unlocking.

Secret Manager Widget New Secret Dialog

Knowledge & skills — OKF bundles in chat, AI-authored bundles, and one-click external skills.

OKF Knowledge Bundle in Chat AI Authoring an OKF Bundle External Skills

Workflows — node editing, live execution logs, and AI generation.

Edit Workflow Node Workflow Execution AI Workflow Generation

Organizations — shared projects with member management and project dashboards.

Organization Project Organization Settings Shared Project Dashboard

Files — context menu with publishing, history, encryption, and downloads; canvas editing.

File Management Canvas Editor

Getting Started

The fastest path is the hosted app: gemihub.net — sign in with Google and add your Gemini API key in Settings.

To run it yourself:

git clone <repository-url>
cd gemihub
npm install
cp .env.example .env   # fill in OAuth credentials and SESSION_SECRET
npm run dev            # http://localhost:8132

You need Node.js 24+, a Google Cloud OAuth client, and a Gemini API key. The full walkthrough — creating the Cloud project, the OAuth consent screen, the drive.file scope and what it implies, environment variables, and Docker/production builds — is in docs/architecture/self-hosting.md.

Plans

GemiHub is MIT-licensed and fully usable for free with your own Gemini API key. The hosted service adds three paid plans; see docs/architecture/premium.md for details.

FreePremium — ¥300/month (≈$2)Pro — ¥3,000/month (≈$20)Business — ¥7,500/month (≈$50), per organization
Everything above
Upload limit20 MB/file5 GB/file5 GB/file5 GB/file
Gmail send and Google Calendar workflow nodes
PDF generation, external sync token, temp edit URL
Interactions API chat (function tools + RAG + Web Search together)
Scheduled workflows + page hosting from web/ ({slug}.gemihub.net)✓, served from your own Drive✓, plus CDN, custom domains, workflow APIs
Google Sheets workflow nodes
Shared organization on Cloud Storage + Vertex AI100 GB, $30/month AI budget included

Don't want to manage a Gemini API key? Turn on personal Vertex AI in Settings and chat runs on GemiHub's Vertex connection against a prepaid balance you top up in $10 (¥1,500) units — no expiry, available on any plan. A Business organization's included $30/month AI budget can be topped up the same way.

Business is the one exception to "everything stays in your Drive": a shared project's files live in managed Cloud Storage with Firestore metadata, and its chat runs on Vertex AI. Personal My Drive work is unaffected. See docs/architecture/mounts.md.

Documentation

Documentation lives in docs/ as an OKF bundle — docs/index.md is the table of contents.

TopicDocument
Chat & AIfeatures/chat.md
Dashboard (widgets, memos)features/dashboard.md
Editorfeatures/editor.md
Searchfeatures/search.md
Sync & Offline Cachefeatures/sync.md
Edit Historyfeatures/history.md
MCPintegrations/mcp.md
Pluginsintegrations/plugins.md
RAGintegrations/rag.md
Agent Skillsintegrations/skill.md
OKF Knowledge Sourcesreferences/OKF.md
Workflow Execution Engineworkflows/workflow_execution.md
Workflow Node Referenceworkflows/workflow_nodes.md
Self-Hostingarchitecture/self-hosting.md
Storage Mounts & AI Providersarchitecture/mounts.md
Infrastructurearchitecture/infrastructure.md
Paid Plansarchitecture/premium.md
Encryptionarchitecture/encryption.md
Utils (Context Menu, Trash, Commands)architecture/utils.md

Architecture

LayerTech
FrontendReact 19, React Router 7, Tailwind CSS v4, Mermaid
BackendReact Router server (SSR + API routes)
AIGoogle Gemini API (@google/genai); Vertex AI for organization projects
StorageGoogle Drive API (default mount), Cloud Storage (organization projects), Firestore
AuthGoogle OAuth 2.0 → session cookies
InfrastructureCloud Run, Cloud Build, Artifact Registry, Cloud DNS, Certificate Manager, Cloud Scheduler, Global HTTPS LB + CDN
Editorwysimark-lite (Slate-based WYSIWYG)

Acknowledgments

GemiHub's built-in Markdown, Base, and Canvas Agent Skills were initially informed by kepano/obsidian-skills. The corresponding file-format support was independently implemented from publicly described formats and behavior and does not incorporate Obsidian source code. Base is described as a compatibility format rather than an independently standardized open format; Canvas follows the open JSON Canvas specification.

The WYSIWYG Markdown editor uses takeshy/wysimark-lite, a lightweight fork of portive/wysimark. We are grateful to Steph Ango (@kepano), the Wysimark authors and contributors, and the maintainers of JSON Canvas. See Third-Party Notices for copyright and license details.

GemiHub is an independent project and is not affiliated with, endorsed by, or sponsored by Obsidian.

License

MIT

MCP permissions and read-only tools

MCP tool calls require approval by default. The dialog shows the server name, tool name and execution arguments. Choose Allow once, Always allow this tool, or Deny; dismissing the dialog denies execution. Server settings provide an Always approve option (off by default) and a removable allowed-tool list. Workflow command and mcp nodes can use confirm: "false" to skip MCP approval for that node, including automatic runs. Later MCP App interactions follow the server settings again. Read-only mode allows built-in reading, listing and searching, and blocks built-in writes (including timeline append). External MCP and skill/workflow operations retain their own permissions. Connection tests disable editing while running and display errors for correction.