QualCoder: coding interviews, images and video in a desktop app
Qualitative data analysis for text, images, audio, video. Cross platform. Python 3.13 or newer and PyQt6.
At a glance
- What is it?
- QualCoder is a Python qualitative data analysis application that lets a researcher code text, images, audio and video, organise the codes hierarchically, and then pull reports out of the coding, with optional AI features on top.
- Who is it for?
- QualCoder fits a researcher or analyst who codes interviews, field notes, images and video and wants a desktop application that runs without a server, on macOS and Linux as well as Windows, with a manual and a documentation site behind it.
- Can I use it commercially?
- Yes, with conditions. LGPL-3.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 24, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A researcher's coding tool, not a survey tool
QualCoder is a qualitative data analysis application written in Python, and the choice of the word coding explains the whole shape of it. In qualitative research you read a transcript, an image or a video clip and you attach codes to passages or frames, then you group those codes into categories, and only later do you ask what the codes mean. QualCoder is built around that loop rather than around a spreadsheet of rows. The project overview describes codes being assigned to text, images and audio or video selections, and grouped into categories in a hierarchical fashion, which means the scheme is a tree you can reorganise rather than a flat tag list. The application is also cross platform, and the project states it has been used on macOS and various Linux distributions.
The import formats tell you what kind of data it expects
Text can be typed in manually or loaded from files, and the list of supported formats is the clearest statement of the intended workflow. The formats named are txt, odt, docx, html, htm, md, epub, rtf and PDF. Images, video and audio can also be imported for coding, so a study that mixes interview transcripts with photographs or a video diary is handled inside the same project rather than across tools. The project repository ships an Examples/ directory that shows the shape of a project, with sample documents such as ID1.docx and ID2.odt, a NOTES.txt, a transcript.txt, a bibliography.ris, a project_memo.txt, a stopwords.txt, a plain text categories and codes file, spreadsheets in csv and xlsx form including variants for replacing data and values, a LaTeX import sample, and a seascape.jpg. Reading those files is a fast way to see what a QualCoder project actually contains.
The reports are the point of the coding
Once the coding is done, the interesting output is the reports, and the project names three kinds. There are visual coding graphs, coder comparisons, and coding frequencies. The coder comparison report is the one that matters most in a team setting, because it shows where two people assigned codes differently, which is the practical way to run an intercoder reliability check without doing it by hand. The visual coding graphs give you the shape of the data at a glance, and the frequency report gives you the counts that go into a paper. The reports are described as a variety of types that can be produced, so this is a summary of the categories rather than a complete list, and the manual at qualcoder.org is where the full reference lives.
AI features are opt-in and sit on top of the coding
The project overview says AI models like GPT-4 from OpenAI can be used to explore your data and analyze the results, and the installation section makes it clear this is a separate setup step, something you may want to do on the first start of the application. The requirements file shows how much machinery is behind that option. The optional dependencies include langchain, langchain-community, langchain-core, langchain-openai and langchain-text-splitters, plus sentence-transformers, transformers pinned to a version at or below 4.53.0, faiss-cpu for vector search, and an mcp package with uvicorn. So the AI path is a local embedding and retrieval stack wired to an OpenAI model, not a single API call. That has a consequence worth naming: the installation gets much heavier, and the requirements file even pins the torch index to the CPU wheel build to save space, with a comment saying so.
Installing on Windows: the exe, the installer, or a virtual environment
Windows gets three options and the documentation is candid about the cost of each. Newer releases contain an exe file created on Windows 11, which you double-click to run and which takes about twenty seconds to start, and there are also Windows installers on the release page. On first use of the exe, Windows may ask you to allow it to run because it comes from an unknown publisher, and the project explains why: a trusted publisher certificate costs a lot of money, so that will not be possible for the foreseeable future. The alternative is to install from source, using a virtual environment, because not using one may affect other Python software you have installed. The environment commands are the standard ones.
python -m venv env
env\Scripts\activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txtThe install may take up to ten minutes, and the project notes that on some Windows systems you may need to replace the python command with py or python3.
Starting from source and starting again later
QualCoder is started from the inner src folder, and the two commands are trivial once the environment is active.
cd src
python -m qualcoderTo leave the environment you type deactivate, and the command prompt then removes the env wording. Starting it again depends on whether you used a virtual environment. If you did not, you can run python -m qualcoder as long as you are on the same drive letter. If you did, you reactivate and change directory first, since the module lives in the src folder.
env\Scripts\activate
cd src
python -m qualcoderThe repository also ships run_from_source_Windows.bat and run_from_source_Linux.sh, and the project suggests running the bat file on Windows instead of the individual commands, with the individual commands as the fallback if the script produces errors.
macOS bundles are unsigned, and that is a deliberate choice
The macOS release offers two app bundles, an arm64 one for Apple Silicon machines from the M1 to the M4 processors and an x86_64 one for older Intel machines. They are compiled on macOS Sequoia and might also work on Sonoma and Ventura, with the advice that on an older system you should consider updating the OS or install from source. The signing situation is the important part. The project states they are currently not able to sign the app bundles, so you get a warning that QualCoder is from an unregistered developer, and if Gatekeeper is active you have to manually allow the app to be executed: drag QualCoder into Applications, try to start it, get the error that it is from an unregistered developer, then go to Settings, Privacy and Security, scroll to the message stating QualCoder was prevented from starting, and click open anyway. After that it starts without issues. A source install needs Python 3.13 or newer, and the project notes that VLC sometimes is not detected, with installing it via Homebrew as a fix.
What else is in the repository, and where the project stands
The repository is more than the application source. There is a qualcoder.spec and a qualcoder_onefile.spec for PyInstaller packaging, and the requirements file pins pyinstaller at a version at or below 6.15, with a comment that the bootloader in the most recent version is often falsely detected as malware by antivirus software, so an older release is safer. There are rebuild_lang.py and rebuild_ui.py for regenerating the translations and the interface, a debian_build-deb.sh for a Debian package, a mac_build-dmg.sh for the macOS bundle, an other_languages/ directory, a CITATION.cff for citation, and a Release_notes.md. The licence is LGPL-3.0, which for an application means the library components stay available to others while your own additions are yours. The releases are QualCoder 4.0 on 2026-10-02, 3.8.2 on 2026-02-26 and 3.8 on 2026-01-19, and the last push to the repository was on 2026-10-19.
Editorial conclusion
QualCoder fits a researcher or analyst who codes interviews, field notes, images and video and wants a desktop application that runs without a server, on macOS and Linux as well as Windows, with a manual and a documentation site behind it. It does not fit a team that needs shared, simultaneous editing of a coding scheme, because the project describes it as a desktop application with a local project structure rather than a multi-user service, and it does not fit someone who cannot run Python, since a source install needs Python 3.13 or newer and the packaged builds are unsigned, so Windows and macOS will both show publisher warnings you have to click through. Before you install, read the release notes for the version you pick, and if you want the AI features, set those up on first start, since the project points out that the AI setup step is where first-run configuration happens.
Frequently asked questions
What can QualCoder import and code?
Text can be typed in manually or loaded from txt, odt, docx, html, htm, md, epub, rtf and PDF files, and images, video and audio can also be imported for coding. Codes can be assigned to text, images and audio or video selections and grouped into categories in a hierarchical fashion.
How do I run QualCoder from source on Windows?
Create a virtual environment with python -m venv env, activate it with env\Scripts\activate, upgrade pip and install the requirements, then change into the src folder and run python -m qualcoder. The install may take up to ten minutes, and you may need to use py or python3 instead of python.
Why does macOS warn that QualCoder is from an unregistered developer?
The project states it is currently not able to sign the macOS app bundles. You have to allow the app manually: drag it into Applications, try to start it, then in Settings, Privacy and Security, find the message that QualCoder was prevented from starting and click open anyway.
Which reports can QualCoder produce?
The project names visual coding graphs, coder comparisons and coding frequencies, alongside optional AI features that use models like GPT-4 from OpenAI to explore the data and analyze results. The manual at qualcoder.org holds the full reference.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ccbogel-qualcoder)Was this useful?