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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6c68a853c043c9c76928178164670b8ebb9ca0c303a1507ed6012bbaef00e50
|
|
| MD5 |
46ccc7d18205390e797fce3ca84d6077
|
|
| BLAKE2b-256 |
58d64ba5dca5b617318f20f37765ef4575b9f6b6aa1da8d0ca4b7082fb8c70ac
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
373d9b858a4ed250c311eef7f2d12e91486d128b76dfec2243621ed3b2ff6f1e
|
|
| MD5 |
83e4fd01e0f5c8b5db94afc9dbf836d7
|
|
| BLAKE2b-256 |
1dac96892e723bc70db3aa778bd44e538d5dd839d5d1a402ef028622d6116e88
|