MCPcopy Index your code
hub / github.com/campfirium/foliole

github.com/campfirium/foliole @v0.6.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.6.5 ↗ · + Follow
19,953 symbols 64,205 edges 4,485 files 2 documented · 0% updated todayv0.6.5 · 2026-07-02★ 73
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

English · Deutsch · Español · Français · Italiano · 日本語 · 한국어 · Polski · Português · Русский · 简体中文 · 繁體中文

Foliole

Make reading actually complete.

An approachable incremental reading app.

Windows alpha is open for testing.

Android alpha is expected around July.

macOS and iOS alpha builds are expected around August.

You can also try Foliole with the online demo.

Foliole desktop app showing a document library, reading pane, and scheduling panel.

Online Demo

Open the online demo

An interactive local browser demo for trying Foliole without installation.

Demo Clip

Watch the demo clip on YouTube

Design Principles

Open Source

The code is open source. Anyone can review the implementation, build it from source, or contribute improvements.

Foliole desktop interface preview.

Open Data

Uses a SQLite database and provides a Markdown mirror, making materials easier to read, migrate, and reuse.

Foliole document library and reading workspace.

Local First

No account system. No central cloud sync. All data stays on your personal devices; devices sync over the local network.

Foliole local reading workspace.

Core Features

Native Incremental Reading

Built around Piotr Woźniak’s incremental reading ideas, with a native workflow for extracting passages, creating cloze deletions, and refining materials without leaving the reading flow.

Foliole reading pane with extracted notes.

Integrated FSRS Scheduling

Integrates FSRS (Free Spaced Repetition Scheduler), an open and efficient review scheduling algorithm.

Foliole scheduling panel in the desktop app.

Bring Reading Materials Together

Handles reading materials from different sources, whether local files, web documents, notes managed in Obsidian, or materials exported from Readwise Reader.

Foliole document list and reading sources.

Index External Documents

Indexes other local folders on your computer without copying or moving the original files, creating an external document library that can be searched, viewed, and used across supported clients.

Foliole document navigation and indexed folders.

Complex Content Support

Supports Markdown, PDF, EPUB, LaTeX math, code blocks, and other content rendering needs.

Foliole complex content reading view.

Acknowledgements

Special thanks to Piotr Woźniak and Jarrett Ye. Without SuperMemo, incremental reading, and FSRS, Foliole would not exist.

Many thanks to the following open-source projects, components, and communities:

Extension points exported contracts — how you extend this code

CompanionContentBlobSyncPlugin (Interface)
(no doc) [3 implementers]
src/shared/platform/companionContentBlobSyncPluginTypes.ts
DatabaseStatement (Interface)
(no doc) [2 implementers]
lib/core/database/driver.ts
EditorAdapter (Interface)
(no doc) [2 implementers]
src/features/editor/adapters/EditorAdapter.ts
ManagedInboxWatchHandle (Interface)
(no doc) [1 implementers]
electron/import/managedInboxMonitor.ts
SharedViteConfigOptions (Interface)
(no doc)
vite.shared.ts
RestartIntentSessionSource (Interface)
(no doc)
electron/devRestartSession.ts
DesktopTaskWatchdogArgs (Interface)
(no doc)
electron/desktopTaskWatchdog.ts
WindowReadingProgressFlushOptions (Interface)
(no doc)
electron/readingProgressWindowFlush.ts

Core symbols most depended-on inside this repo

t
called by 1530
src/shared/ui/StartupSurface.tsx
prepare
called by 893
lib/core/database/driver.ts
get
called by 819
lib/core/database/driver.ts
openDatabaseConnection
called by 813
electron/database/connection.ts
resolve
called by 743
android/app/src/main/java/com/foliole/android/FolioleCompanionNsdDiscovery.java
put
called by 740
android/app/src/main/java/com/foliole/android/FolioleCompanionLearningPayloadRules.java
t
called by 673
src/features/editor/adapters/liveMarkdownImageStatus.ts
has
called by 574
android/app/src/main/java/com/foliole/android/FolioleCompanionLearningPayloadRules.java

Shape

Function 15,303
Method 2,609
Interface 1,743
Class 298

Languages

TypeScript90%
Java10%
Python1%

Modules by API surface

android/app/src/main/java/com/foliole/android/FolioleCompanionBridgeContractDefinitions.java69 symbols
android/app/src/main/java/com/foliole/android/FolioleCompanionSyncPlugin.java60 symbols
src/shared/platform/companionWorkspaceSyncPluginTypes.ts53 symbols
android/app/src/main/java/com/foliole/android/FolioleCompanionHostBridgeContractDefinitions.java46 symbols
src/features/editor/adapters/CodeMirrorEditorAdapter.ts45 symbols
src/features/editor/adapters/EditorAdapter.ts43 symbols
android/app/src/androidTest/java/com/foliole/android/FolioleCompanionSyncPackApplyTest.java43 symbols
android/app/src/main/java/com/foliole/android/FolioleCompanionSyncPayloadQueryStore.java41 symbols
android/app/src/main/java/com/foliole/android/FolioleCompanionDatabaseHelper.java39 symbols
src/features/editor/components/MarkdownEditor.test.tsx38 symbols
src/features/editor/components/MarkdownEditor.mouseGestures.test.tsx37 symbols
electron/import/managedInboxMonitor.ts34 symbols

For agents

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

⬇ download graph artifact