Skip to content

mockcomic/Folder-Scholar

Repository files navigation

Folder Scholar

Folder Scholar is an Electron desktop app that scans a local directory, extracts text from common document formats, and lets you chat with a local Ollama model about the contents of those files.

Recommended Naming

  • Project name: Folder Scholar
  • Repository name: folder-scholar

This keeps the product name readable while using a clean, standard git repository slug.

What It Does

  • Scans a local folder recursively.
  • Extracts text from pdf, csv, tsv, txt, md, json, html, xml, docx, xlsx, yaml, yml, and log files.
  • Chunks the extracted text locally for retrieval.
  • Uses Ollama for local chat generation.
  • Uses semantic retrieval when an embedding model is available, and falls back to keyword retrieval when it is not.

Quick Start

  1. Install dependencies:
npm install
  1. Make sure Ollama is installed and running locally.

  2. Pull a chat model and an embedding model. For example:

ollama pull qwen3:4b
ollama pull nomic-embed-text
  1. Start the desktop app:
npm start
  1. Use the Quick Installs panel to pull the recommended Ollama models from inside the app:
  • gemma4:e4b
  • gemma4:26b
  • nomic-embed-text

Notes

  • Large files over 25 MB are skipped to keep the desktop app responsive.
  • Very large folders are capped at 6,000 indexed chunks.
  • If your embedding model is missing, scanning still works and chat uses keyword retrieval instead.
  • Legacy binary Office formats such as xls are not supported in this version.
  • The bundled launcher clears ELECTRON_RUN_AS_NODE before startup, which helps on shells where Electron has been forced into plain Node mode.

Smoke Test

Run the small parser and chunking smoke test with:

npm run smoke

Build Desktop Installers

Build desktop artifacts with:

npm run dist:win
npm run dist:linux
npm run dist:mac

Build everything supported by the current host with:

npm run dist:all

Notes:

  • On Windows, dist:all builds Windows plus a Linux tar.gz package.
  • On macOS, dist:all can build macOS directly and can build additional targets depending on your signing/toolchain setup.
  • macOS artifacts require a macOS host, per electron-builder's platform limitations.
  • For full cross-platform packaging, use the Desktop Packages GitHub Actions workflow in .github/workflows/desktop-packages.yml. It builds Windows on Windows, macOS on macOS, and Linux on Linux, so the Linux job can produce AppImage, deb, rpm, and tar.gz.
  • The workflow can be started manually from the GitHub Actions tab or automatically by pushing a version tag such as v0.1.0.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors