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

# 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.3.0.tar.gz (122.3 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.3.0-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for botstash-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ea3e0b338ae8d92d6877e5b81f9f719d21073c7860b9b9fde3847f8e806b980e
MD5 799969539bfea013d16cbe50073a1afc
BLAKE2b-256 ca275ed3b735e49fc2c1b3f8b932a27f37211f24e584d31ce889beee4abfb17b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: botstash-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 33.9 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c794ce644c4a6b026955e79921de358b079aabf16b16b67ee06accfde5f8657d
MD5 62925022aee4e6eee17eca66abab1420
BLAKE2b-256 0ba2b14d1b8d6652a3104f54cfa8e7cede8b0dc8c8e23c2e14235c8ca02a75ed

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