How shadrackb1/research-in-a-stick works
Research-in-a-Stick is an offline-first research desk served locally in a browser. The user enters through the dashboard; HTTP routes dispatch chat and research requests to the assistant or dedicated tools, which return responses for display. Research spans local model conversation, seed-library lookup, uploaded-document retrieval, citations, CSV analysis, and offline wiki access; math, Python, and file tools are also available through skills. The README documents these capabilities, but several implementations were not sampled, so only documented subsystem presence is shown where wiring is uncertain.
Main entry points: server.py Local HTTP Server · skills.py Skills Router · app.js Chat Dashboard · ai.py Research Assistant
Components 18
User Interface
- Chat Dashboard
ris/static/app.js
Request Runtime
- Local HTTP Server
ris/server.py - Research Assistant
ris/ai.py - Skills Router
ris/skills.py
Research Sources
- Seed Knowledge
ris/library.py - Knowledge Packs
data/library - Document Retrieval
ris/rag.py - Uploaded Documents
- Wiki ZIM Packs
Research Tools
- Citation Formatter
ris/citations.py - CSV Analysis
ris/analysis.py - Survey Sample
data/samples/student_survey.csv - Local Power Tools
ris/tools_runtime.py
Offline Services
- Local LLM
ris/local_llm.py - Kiwix Wiki
ris/wiki.py - Content Updater
ris/updater.py
Other components
- Student
- Online Content Feed
Connections 24
- Student → Chat Dashboard: asks or selects
- Chat Dashboard → Local HTTP Server: sends requests
- Local HTTP Server → Chat Dashboard: returns results
- Local HTTP Server → Research Assistant: dispatches chat
- Research Assistant → Local LLM: requests completion
- Research Assistant → Skills Router: runs skills
- Skills Router → Seed Knowledge: searches
- Seed Knowledge → Knowledge Packs: reads packs
- Skills Router → Document Retrieval: searches documents
- Document Retrieval → Uploaded Documents: indexes and retrieves
- Local HTTP Server → Seed Knowledge: searches library
- Local HTTP Server → Document Retrieval: retrieves and answers
- Local HTTP Server → Citation Formatter: formats citations
- Skills Router → Citation Formatter: formats citations
- Local HTTP Server → CSV Analysis: analyzes CSV
- CSV Analysis → Survey Sample: reads sample
- Skills Router → CSV Analysis: analyzes data
- Skills Router → Local Power Tools: runs local tools
- Local HTTP Server → Kiwix Wiki: checks or starts wiki
- Skills Router → Kiwix Wiki: checks or searches
- Kiwix Wiki → Wiki ZIM Packs: serves packs
- Local HTTP Server → Content Updater: checks update status
- Chat Dashboard → Local HTTP Server: requests content update
- Content Updater → Online Content Feed: downloads packs