Skip to main content

CLI tool and WebUI that ingests LMS course exports and Echo360 transcripts into an AnythingLLM workspace for embedded course chatbots.

Project description

BotStash

A CLI tool and lightweight WebUI that extracts course content (PDFs, DOCX, PPTX, VTT transcripts, IMSCC exports, plus Markdown/Quarto, HTML and plain text), classifies it, and uploads to an AnythingLLM workspace for embedded chatbots.

Features

  • Folder-first scanning — point at a folder, BotStash figures out the rest
  • Multi-format extraction — PPTX, DOCX, PDF, VTT, QTI quizzes, IMSCC exports, Markdown/Quarto (.md/.qmd), HTML (.html/.htm), plain text (.txt)
  • Recursive ZIP handling — nested ZIPs and IMSCC archives are auto-detected
  • Structured unit outline parsing — extracts assessments, schedules, learning outcomes with Bloom's taxonomy
  • Auto-classification — heuristic tagging of content types (lecture, worksheet, assignment, etc.)
  • AnythingLLM integration — uploads documents, manages workspaces, retrieves embed code
  • WebUI — FastAPI + Jinja2 interface for non-terminal users

Installation

pip install botstash

Quick Start

# Full pipeline — point at a folder
botstash run ./course-materials/ --workspace ISYS2001

# Update an existing workspace cleanly (clears old docs first — no duplicates)
botstash run ./course-materials/ --workspace ISYS2001 --reset

# Two-step workflow (extract, review, embed)
botstash extract ./course-materials/ --output ./staging/
# ... review staging/tags.json ...
botstash embed ./staging/ --workspace ISYS2001

# Include quiz answer choices
botstash extract ./folder/ --include-answers

# Non-recursive (top-level only)
botstash extract ./folder/ --no-recursive

# Launch WebUI
botstash serve

Configuration

Settings are resolved in priority order: CLI flag > environment variable > .botstash.env file.

# Scaffold a config file
botstash init

.botstash.env:

ANYTHINGLLM_URL=http://localhost:3001
ANYTHINGLLM_KEY=your-api-key
INCLUDE_ANSWERS=false
RECURSIVE=true

Development

git clone https://github.com/michael-borck/botstash.git
cd botstash
uv sync --dev

uv run ruff check src/ tests/
uv run pytest

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

botstash-0.4.0.tar.gz (122.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

botstash-0.4.0-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

File details

Details for the file botstash-0.4.0.tar.gz.

File metadata

  • Download URL: botstash-0.4.0.tar.gz
  • Upload date:
  • Size: 122.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for botstash-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f5ef39b62e59cd364b4049d0f736af68955a74b663c2569f2b38253158531562
MD5 c24269b7cf2197e0c09ee5a2b614e3c4
BLAKE2b-256 87ce43f9b8255aadf72f25187c570e16eeb1b3c7e55e166ad04121e4c3114636

See more details on using hashes here.

File details

Details for the file botstash-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: botstash-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 34.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for botstash-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 38f5c4e9253afba191e54f64be08d5e4c803a0ae6ac8e19e6edc471b17dee791
MD5 fb5f727fb2faa39bfa05caa59826f019
BLAKE2b-256 2b48086ab36831be51a17ca84bbcaea8d91bc20b8eae6206b81589d68726e951

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page