Qualitative Research support tools in Python!
Project description
🔍 CRISP-T (Sense-making from Text and Numbers!)
✨ Have you been co-creating reality with adaptive AI vibes?
TL;DR CRISP-T is a qualitative research method and a toolkit to perform mixed data (text + numeric) analytics for computational triangulation and sense-making. More importantly, CRISP brings "vibe analytics" "SKILLS" for mixed data with an AI agent, adopting an adaptive epistomology.
✨ Download this or a similar dataset, clone this repo, and try a prompt like 👇 in your vibe analytics platform.
Import the csv file from ./downloads folder using the crisp-cli skill with “review” as the text column. Do a comprehensive analysis, integrating both its numeric and textual features, and show the key patterns, relationships, and insights that emerge.
- MCP SERVER will give more agentic power to your vibe analytics experience (See below).
- Interpretivist approach: CRISP-T enforces the agentic researcher to adopt an interpretivist approach, rather than a data-science one.
😎 UI using GitHub Copilot SDK - Work in progress!
- Set up copilot sdk
crisp-uiAccess the UI at http://127.0.0.1:5000/
👉 CLI Cheatsheet | Demo & Examples | Documentation
Give us a star ⭐️ if you find this useful!
📖 Introduction
Qualitative research focuses on collecting and analyzing textual data to explore complex phenomena. While qualitative and quantitative data are often used together, there is no standard method for combining them.
CRISP-T integrates textual data (interview transcripts, field notes) and numeric data (surveys, demographics) into a unified corpus. It allows researchers to:
- Perform INDUCTIVE analysis (finding patterns).
- Triangulate findings by linking text topics to numeric trends.
- Use Semantic Search to find relevant literature or code documents.
- Leverage GenAI through our MCP server for agentic analysis.
Key Features
- ✅ No Python knowledge required - Full CLI support.
- ✅ Interpretivist approach - Designed for sense-making, not just data science.
- ✅ GenAI Ready - Augments LLMs with agentic tools.
- ✅ Open Source - GPL-3.0 License.
The CRISP tools may also be useful for:
- ⭕ Automated interview coding dictionary generation.
- ⭕ Semantically filtering journal articles for literature review.
- ⭕ Generating visualizations for qualitative (e.g. word cloud) and quantitative (e.g. TDABM) data.
- ⭕ Many other ….
CRISP is ❌ NOT for:
- ❌ Multimodal prediction. Use this instead!
- ❌ Sequential mixed methods research, where qualitative and quantitative data are collected and analyzed in separate phases.
- ❌ Convergent parallel mixed method designs where qualitative and quantitative data are collected simultaneously but analyzed separately.
💻 Installation
pip install crisp-t
Recommended (for Machine Learning features):
pip install crisp-t[ml]
Optional (for XGBoost):
pip install crisp-t[xg]
# Mac users: brew install libomp
Optional (for Web UI with Copilot SDK):
pip install crisp-t[copilot]
# Also requires GitHub Copilot CLI: https://docs.github.com/en/copilot/how-tos/set-up/install-copilot-cli
🚀 Usage
CRISP-T provides three main CLI tools. See the CLI Cheatsheet for a full list of commands.
1. crisp (Analysis)
The main tool for data import and analysis.
- Import Data:
crisp --source ./data --out ./corpus - Analyze Text:
crisp --inp ./corpus --topics --sentiment - Analyze Numbers:
crisp --inp ./corpus --kmeans --regression
2. crispviz (Visualization)
Generates charts and graphs from your analysis.
- Word Cloud:
crispviz --inp ./corpus --wordcloud --out ./viz - Interactive Topics:
crispviz --inp ./corpus --ldavis --out ./viz
3. crispt (Corpus Toolkit)
Manages corpus structure and detailed queries.
- Semantic Search:
crispt --inp ./corpus --semantic "query" --num 5 - Metadata:
crispt --inp ./corpus --meta "project=phase1"
4. crisp-ui (Web UI - NEW!)
Browser-based interface powered by GitHub Copilot SDK.
- Start Web Server:
crisp-ui - Custom Port:
crisp-ui --port 8080 - Open browser to:
http://127.0.0.1:5000
The Web UI provides a conversational AI interface for CRISP-T, allowing you to:
- Interact with CRISP-T through natural language
- Execute CLI commands through an AI assistant
- Visualize results in real-time
- Choose from multiple AI models (GPT-5, Claude, etc.)
- Use local models via Ollama or custom providers
📖 See Web UI Documentation for detailed instructions.
🤖 MCP Server (Agentic AI)
CRISP-T includes a Model Context Protocol (MCP) server, allowing AI agents (like Claude Desktop) to interact directly with your data. If you have opened this repository in VSCODE or AntiGravity, you can start the MCP server using the configuration file provided. This configuration file provides the necessary details for configuring other AI coding platforms such as Claude Desktop to connect to the CRISP-T MCP server as well.
🤖 Skills (Agentic AI)
CRISP-T also provides Skills for use with Claude Desktop, AntiGravity, VSCODE and other AI coding platforms.
Data model
📚 Documentation & References
- CLI Cheatsheet
- Demo / Tutorial
- Full Documentation
- Mettler et al. (2025) - Methodological Reflection
🤝 Contribution & Contact
- License: GPL-3.0
- Author: Bell Eapen (UIS)| Contact
- Social:
First presented at ICIS 2025.
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 crisp_t-2.3.0.tar.gz.
File metadata
- Download URL: crisp_t-2.3.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56c1df47c01a31f96d96f943410966772d688e0be0516b6c990a2880d683a750
|
|
| MD5 |
29b5f809f93c0588dc70975148d4b949
|
|
| BLAKE2b-256 |
36bfa2a5b6e927c26c3c25ab8a7ab891cf4055f7d77d7b17dadde9fce09493b5
|
Provenance
The following attestation bundles were made for crisp_t-2.3.0.tar.gz:
Publisher:
publish.yml on dermatologist/crisp-t
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crisp_t-2.3.0.tar.gz -
Subject digest:
56c1df47c01a31f96d96f943410966772d688e0be0516b6c990a2880d683a750 - Sigstore transparency entry: 941996688
- Sigstore integration time:
-
Permalink:
dermatologist/crisp-t@b32574d8d334c72dd2887497c7d93b20b0c6bf5a -
Branch / Tag:
refs/tags/v2.3.0 - Owner: https://github.com/dermatologist
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b32574d8d334c72dd2887497c7d93b20b0c6bf5a -
Trigger Event:
release
-
Statement type:
File details
Details for the file crisp_t-2.3.0-py3-none-any.whl.
File metadata
- Download URL: crisp_t-2.3.0-py3-none-any.whl
- Upload date:
- Size: 188.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d21588c5976cd2a2a2dfcf3d7ef109caf3c7b3d3493aadc2075e6ce917544f2e
|
|
| MD5 |
8bb1013eadc8486f6c5a83503841c1c4
|
|
| BLAKE2b-256 |
da13a7520380edaa4ecd27b404808662024ee0662f071a982f05e963b2d4559e
|
Provenance
The following attestation bundles were made for crisp_t-2.3.0-py3-none-any.whl:
Publisher:
publish.yml on dermatologist/crisp-t
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
crisp_t-2.3.0-py3-none-any.whl -
Subject digest:
d21588c5976cd2a2a2dfcf3d7ef109caf3c7b3d3493aadc2075e6ce917544f2e - Sigstore transparency entry: 941996731
- Sigstore integration time:
-
Permalink:
dermatologist/crisp-t@b32574d8d334c72dd2887497c7d93b20b0c6bf5a -
Branch / Tag:
refs/tags/v2.3.0 - Owner: https://github.com/dermatologist
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b32574d8d334c72dd2887497c7d93b20b0c6bf5a -
Trigger Event:
release
-
Statement type: