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), 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
  • 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

# 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.2.0.tar.gz (119.2 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.2.0-py3-none-any.whl (32.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for botstash-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c6c68a853c043c9c76928178164670b8ebb9ca0c303a1507ed6012bbaef00e50
MD5 46ccc7d18205390e797fce3ca84d6077
BLAKE2b-256 58d64ba5dca5b617318f20f37765ef4575b9f6b6aa1da8d0ca4b7082fb8c70ac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: botstash-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 32.1 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 373d9b858a4ed250c311eef7f2d12e91486d128b76dfec2243621ed3b2ff6f1e
MD5 83e4fd01e0f5c8b5db94afc9dbf836d7
BLAKE2b-256 1dac96892e723bc70db3aa778bd44e538d5dd839d5d1a402ef028622d6116e88

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