Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Banana Reader

bananabanana

Read and annotate Markdown, PDF and EPUB, ask about selected passages, and export notes with source links.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

Read Markdown, original PDF pages and EPUB books with configurable AI, anchored highlights, margin notes and Markdown export.

Desktop only. Requires Obsidian 1.11.4 or later. The plugin interface is currently in Chinese. Version 0.12.3.

完整中文说明 · Releases · Community listing

Installation

Open the community listing and choose Add to Obsidian, then enable Banana Reader in Settings → Community plugins.

For manual installation, download main.js, manifest.json and styles.css from the same GitHub Release. Place all three files in <vault>/.obsidian/plugins/gloss-reader/ and enable the plugin. When updating, preserve your existing data.json and indices/. Do not copy source folders or another user's plugin data into your vault.

Usage

  1. Open a Markdown, PDF or EPUB file. Click the 打开 Banana Reader ribbon icon or run Banana Reader: 进入沉浸阅读 from the command palette. You can also use the file context menu.
  2. In plugin settings, add your own API connection or an already installed and authenticated Codex, Claude or Pi CLI. Select the models you want to use. Assign question, translation and article-summary models independently.
  3. Select a passage to ask a question, translate, highlight, underline or add a note. Selecting text does not send a request. Submit the question to call the chosen service.
  4. Responses show the actual model and available usage. Click a paragraph or PDF-page citation to return to the source. Continue a conversation inside its existing card, or start an independent question from the bottom input.
  5. Open the notebook to review annotations. Choose 导出笔记 to create a new Markdown note in 收集箱/, including excerpts, annotations, conversations and source links. Original documents are not rewritten and existing exports are not overwritten.
  6. Choose 返回文档 to leave immersive reading. Reading controls adjust the theme, font, text size, line spacing and contents navigation. Narrow panes show conversations in the notebook; wider panes also show margin cards.

Reading and annotation features

Markdown uses Obsidian's native rendering. Selection tools support questions, configurable text instructions, translation, straight or wavy underlines, highlights and written annotations. There are four built-in mark colors. Selections remain visible while composing a question. Questions and marks persist across reloads.

PDF files retain the original page layout through Obsidian's native PDF view. Pages scroll continuously; text selections can be questioned or marked. Conversations, notebook entries and exports retain real page numbers. Page links return to the cited page. Fonts and reading text-size controls do not reflow PDF pages. Scanned pages remain readable, but this release has no OCR and cannot select text that is absent from the source. Cross-page selections and full-book PDF summaries are not provided.

EPUB text is read in spine order with chapter navigation and local raster images. Book scripts are not executed and remote images are not loaded. DRM, image-only books, audio/video, SVG illustrations and original fixed-layout styling are not supported. Limits include 40 MB compressed size, 64 MB expanded size, 4 MB per chapter, 600 chapter files and two million characters.

Article briefs provide structured claims, caveats and paragraph citations. Brief generation uses its independently assigned model, or the configured default when no specific model is assigned. Translation can use the built-in Google translation connection or an independently selected language model. Model errors are displayed; the plugin does not silently choose another model.

Optional book retrieval

Configure an OpenAI-compatible embedding service in model settings, mark an added model as an embedding model, and select it for indexing. Inside the reader, use 索引 → 建立索引 to build an index for the current document. A question without a text selection can then retrieve passages across the indexed book. Answers keep source and PDF-page references.

Indexing sends document chunks to the selected embedding provider; searching sends the question to that provider and matched passages to the selected answer model. Automatic indexing is off by default. Enabling it can start requests when entering a document. Indexing can be stopped, and a failed rebuild preserves the previous complete index. Limits are 3,000 pages, five million characters, 8,000 chunks and three million vector values. Retrieval is not a complete reading or summary of every page. Images and scanned-page content are not indexed.

Accounts, costs and network access

The plugin has no author-operated server, advertising, billing or client-side telemetry. AI services require your own account, subscription or API credits and may charge for usage. Model discovery or a cached model name does not establish account entitlement. Requests can fail because of provider access, network conditions or account limits.

Questions, article briefs and model translation send the necessary document context, question and conversation to your chosen model service. Optional question suggestions and automatic indexing are off by default; enabling them can trigger model requests during their documented reading actions. Enabling the plugin alone does not start a model request.

Built-in Google translation sends selected text to translate.googleapis.com. Optional web search sends generated search terms to html.duckduckgo.com and passes returned snippets to the chosen model. Fonts are bundled locally; there are no runtime font-CDN requests. Data processing by a chosen provider is subject to that provider's policies.

Local files, CLI access and privacy

To discover and run local CLIs, the plugin checks configured executables and common installation paths and reads ~/.codex/models_cache.json. It reuses the CLI's existing authentication. Questions and model discovery use temporary workspaces instead of the vault as the CLI working directory; temporary workspaces are cleaned up when finished. CLI tools, extensions and session persistence are disabled where the supported CLI protocol permits. A local CLI can still send requests to its remote model service.

Custom API keys use Obsidian SecretStorage; the compatibility path for an unavailable secret-storage API retains keys only in memory. Plugin data stores service identifiers and secret references, not the API key itself.

Annotations, conversations, drafts, context snapshots and reading progress are stored in <vault>/.obsidian/plugins/gloss-reader/data.json. Optional indexes are stored in the adjacent indices/ directory and contain text excerpts, embeddings and page references. These files are private user data, not release assets. If you synchronize .obsidian, your sync tool may also synchronize these files. The plugin does not provide a separate cloud-sync service.

The reader processes documents you explicitly open. It does not recursively ingest the whole vault or automatically expand embedded notes into model context. It excludes configured private diary, company and investment-data paths. The public source and release contain no books, personal notes, credentials, plugin data, indexes or model caches.

Compatibility and limitations

The plugin ID remains gloss-reader so existing installations retain their commands, annotations, data paths and credential references. The display name is Banana Reader. Removing a service does not automatically assign another default service, and existing conversation records keep their original model information.

This release is desktop-only and its interface is Chinese. Mobile, web import, a cloud bookshelf and text-to-speech are not implemented. Dynamic content from third-party Markdown renderers may not support reliable selection anchoring. Context-size limits produce an explicit error instead of silently truncating input. See the Chinese reference for detailed settings, capacity limits and migration behavior.

Build from source

npm ci
npm run build
npm test

Use the three generated installation files described above. Build output and dependencies are not tracked in Git. The build embeds the project license and complete third-party notices into main.js, so the standard three-file installation carries those notices.

License and source references

Current project code is distributed under MIT. Bundled Newsreader and Schibsted Grotesk fonts retain the SIL Open Font License; the fflate dependency retains MIT. Full notices are in THIRD_PARTY_NOTICES.md.

Nutlope/gloss and Qiaomu Reader were early interaction references. The release audit distinguishes specific reused implementations from standard functionality. Identified margin-layout code, an EPUB path helper and specific reading styles/texture were replaced locally; the full plugin was not rebuilt. The release does not include their web-service components, example books or GPL components. It does not assign an invented license to an unlicensed upstream snapshot. The comparison is evidence of the review performed, not a legal certification or upstream endorsement. See the source audit.

Validation and release status

The tested runtime passed 109 regression tests and native Obsidian 1.14.4/macOS checks using synthetic documents: actual selected-text Q&A with model/usage, source citations, saved highlights, Markdown export, reload persistence, continuous original-PDF reading and page return, EPUB chapter order and cited article briefs. Successful live requests used gpt-6-luna; two other cached model selections failed and were honestly displayed. Windows/Linux, the minimum supported Obsidian version and every external model account were not retested.

The community listing is public and offers Add to Obsidian. The 0.12.1 official review completed and reproduced the release JavaScript byte-for-byte. Version 0.12.2 added English quick-start instructions; 0.12.3 separates this full English guide from the preserved Chinese reference after the directory continued to flag the mixed-language README. The runtime JavaScript and CSS remain byte-identical to the tested 0.12.1 release. The latest review status is recorded in the release audit.

HealthExcellent
ReviewCaution
About
Read with questions. Leave with notes. Read Markdown, original PDF pages and EPUB books inside Obsidian. Select a passage to ask, translate, highlight or add a note. Keep follow-up questions in margin cards, check answers through paragraph or page citations, and export excerpts and conversations as linked Markdown notes. Start by opening a document and clicking the reader icon. Reading, highlighting and export work without an AI account. Connect your own API or an authenticated Codex, Claude or Pi CLI for model features. Assign question, translation and article-brief models independently. Desktop only; the interface is currently Chinese. AI services use your own account and may charge. Model requests send document context to your chosen service; CLI connections need local file/process access. The guide covers setup, data storage and format limits, with a Chinese reference available.
AnnotationAIPDF
Details
Current version
0.12.3
Last updated
5 hours ago
Created
5 hours ago
Updates
3 releases
Compatible with
Obsidian 1.11.4+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
bananabanana
GitHubtreydong
  1. Community
  2. Plugins
  3. Annotation
  4. Banana Reader

Related plugins

Karpathy LLM Wiki

Karpathy's LLM Wiki implementation plugin for Obsidian - turns notes and PDFs into a linked, LLM-powered knowledge base with entity pages, concept pages, graph-powered Q&A, and local-first privacy.

HiNote

Add comments to highlighted notes, use AI for thinking, and flashcards for memory.

HiWords

Effortlessly grow your vocabulary as you read, with automatic highlighting and translation of unfamiliar words.

Admonition

Admonition block-styled content.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Copilot

Run AI agents such as Claude Code, Codex, and OpenCode inside your vault. Turn your second brain into a smart assistant that gets knowledge work done.

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

ChatGPT MD

A seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.

Agent Client

Chat with Claude Code, Codex, Gemini CLI, and more via the Agent Client Protocol — right from your vault.