CLI tool
zealdocs/zeal avatar
zealdocs/zeal

Zeal is a Dash docset reader, and what you can search is bounded by docsets

Offline documentation browser. Your personal reference library, searchable in an instant.

12,879 stars856 forksC++GPL-3.0

At a glance

What is it?
Zeal is an offline documentation browser in C++ under GPLv3, originally inspired by Dash and reading the same docset format. It is aimed at developers who want searchable local reference material, and the shape of the project is worth understanding before you commit: the catalogue is not the project's, the search scope is a prefix on the query, the Qt build requires WebEngine, and the release line is still pre 1.0.
Who is it for?
Zeal fits a developer who works offline, wants a local reference library, and is willing to obtain or generate docsets, because search scope and content both come from the docsets you add. It does not fit a team that wants documentation bundled with the product or a search UI with a filter panel, and the build is heavier than a plain Qt application because WebEngine and Svg are required rather than optional.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 14 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • zealdocs/zeal12,879 ★ · +149
Star history
Repository2026-07-292026-11-13
zealdocs/zeal12.7k12.9k

149 Stars in the last 107 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The docsets are Dash docsets, and the catalogue comes from elsewhere

Zeal was originally inspired by Dash and it supports the same docset format, which means the content side of the application is defined by an external convention rather than by this repository. If you want to add documentation that no docset covers, the instructions point you at the Dash docset generation guide, so building a docset is a documented route rather than something Zeal does for you. The consequence is that your reference library is exactly the set of docsets you managed to get, and nothing in the repository supplies them. Look at the root and you find source, build files, assets and licence texts: CMakeLists.txt, CMakePresets.json, a justfile, src, tools, pkg, snap, assets, LICENSES and REUSE.toml. There is no catalogue of documentation in that list. So before installing, work out where your docsets come from, because a library with nothing in it looks identical to a library whose docset failed to install.

Search scoping is a prefix on the query, not a filter panel

Scoping a search is done by typing a prefix, not by working through a settings dialog. Limit the scope to one docset by putting the docset name and a colon in front of the query, for example cpp:vector. To span several docsets, separate their names with a comma, for example python,django:string. The same syntax works from the command line, where you can start Zeal with a query already in place using zeal python:pprint. If you need a query restricted to everything except a docset, the syntax shown does not express it: you name the docsets you want, so a large library with a few irrelevant entries means spelling out the rest.

Qt WebEngine is required, and the X11 extras only appear on X11

The dependency list explains most of what this application is. Beyond CMake and Ninja, the stated requirements are Qt version 6.4.2 or later, libarchive, SQLite version 3.31.0 or later and zlib, with required Qt modules besides Qt Base being Svg and WebEngine. Those two are listed as required rather than optional, and that is the line item to weigh, because WebEngine brings a browser engine into the process. Linux and BSD platforms additionally need extra-cmake-modules, and X11 platforms only need libxkbcommon and xcb-util-keysyms. The consequence for anyone planning a build is that this is not a light Qt application and not a plain C++ one: there is a floor on the Qt version, a mandatory WebEngine, libarchive, SQLite and zlib, and a per platform dependency list you have to read rather than assume. On a headless build machine the graphics and WebEngine pieces are still part of the dependency set, because the documentation states them as requirements without exceptions.

Two cmake commands are the documented minimum, and the wiki holds the rest

The build documentation is deliberately thin. It says detailed, up-to-date build instructions for each platform are in the wiki, and that the bare minimum is what follows:

shell
cmake --preset release
cmake --build --preset release

The binary that produces is build/release/zeal, or zeal.exe on Windows. So the configure and build steps are two preset invocations, and the preset name in the command is what selects the configuration. The consequence is that anything specific to your distribution or your toolchain is not in this file on purpose, and the CMakePresets.json in the root is the place where the available presets are actually defined. Two things follow for a reader. The wiki page sits outside the repository, so it can change without a commit and without a changelog entry, which means the page you read may not match the commit you cloned. And if a build fails on your platform, the failure will be in the part the README leaves out, since the bare minimum is written to work rather than to diagnose.

The justfile recipes need PowerShell, and Windows packaging needs WiX

Developers work through a justfile rather than typing cmake directly, and running just with no arguments prints the recipe list. The default preset comes from an environment variable with dev as its fallback, and a recipe can be run against another one as just preset=name followed by the recipe name. There are recipes for configure, build, run, package, test, format, lint and clazy, plus one for profiling build time. Three things in there are worth knowing before you start. The formatting, lint and clazy recipes each invoke a PowerShell script from the tools directory, so pwsh has to be available. The lint recipe depends on build, with the stated reason that the AUTOUIC, AUTOMOC and AUTORCC generated headers have to exist first, so a lint run triggers a build. And packaging on Windows requires the WiX toolset, for the MSI. The test recipe is the exception, configuring and building the testing preset and running ctest against it.

A fresh install has no docsets until you download them

Nothing arrives preloaded. The documented flow after installing is to open File, go to Docset Library, select the docsets you want, and click the Download button, which is the only route to content that the documentation describes. Distribution is split by platform too: a Flatpak at org.zealdocs.Zeal on Flathub, a snap on Snapcraft, and binary builds for Windows plus other installation options on the download page at zealdocs.org/download, where Windows builds are stated to require Windows 10 version 1809 or later. The consequence is a two stage setup where the first stage is nearly empty, and a floor that differs by channel, since the Windows requirement is stated while no equivalent version floor is given for the Linux packages. If you are provisioning Zeal for a team, budget for docset distribution separately: the application installs once, and every reference library is a set of downloads per machine.

v0.9.1 is pre 1.0, and licence obligations are split per component

The release line is still below 1.0: v0.9.2 landed on 31 October 2026, after v0.9.0 and v0.9.1 both landed on 28 July 2026, an hour and a half apart. The repository is not archived and its last push is dated 31 October 2026, so work continues. Two releases published the same day suggests batching rather than a cadence you can schedule against, and a pre 1.0 line means your integration should expect change. Licensing is split rather than uniform: Zeal itself is under the GNU General Public License version 3 or later with the full text in COPYING, while bundled third-party components are licensed under their respective terms. The project is REUSE compliant, with the per component texts in the LICENSES directory and REUSE.toml at the root, so redistribution means honouring GPL obligations and the individual notices together. For support, bugs and feature requests go to GitHub issues, questions to GitHub discussions, chat happens on Discord, announcements go out on Telegram, and [email protected] is for anything private or sensitive.

Editorial conclusion

Zeal fits a developer who works offline, wants a local reference library, and is willing to obtain or generate docsets, because search scope and content both come from the docsets you add. It does not fit a team that wants documentation bundled with the product or a search UI with a filter panel, and the build is heavier than a plain Qt application because WebEngine and Svg are required rather than optional. Before adopting, check that a docset exists for what you need, confirm the platform floor, on Windows version 1809 or later, and read the per-platform build instructions in the wiki rather than relying on the bare minimum here.

Frequently asked questions

What does Zeal Company do, and is it the same as zealdocs/zeal?

That question is about a different organisation. In this repository Zeal is an offline documentation browser written in C++, originally inspired by Dash and supporting the same docset format, with its homepage at https://zealdocs.org and licensed under GPLv3 or later. Nothing in the project concerns payments or business services.

How do I compile Zeal from source?

You need CMake and Ninja, Qt version 6.4.2 or later with the Svg and WebEngine modules besides Qt Base, libarchive, SQLite 3.31.0 or later, zlib, extra-cmake-modules on Linux and BSD, and libxkbcommon with xcb-util-keysyms on X11 platforms. Then run cmake --preset release followed by cmake --build --preset release, which produces build/release/zeal, or zeal.exe on Windows. Per platform detail lives in the project wiki.

How do I search only inside one docset in Zeal?

Prefix the query with a docset name and a colon, so cpp:vector searches the cpp docset. Separate several docset names with a comma, as in python,django:string. You can pass the same form on the command line when starting Zeal, for example zeal python:pprint.

What Windows version does Zeal need?

Windows builds require Windows 10 version 1809 or later. Binary builds for Windows and other installation options are on the download page at zealdocs.org/download, alongside a Flatpak at org.zealdocs.Zeal on Flathub and a snap on Snapcraft.

Can I create my own docsets for Zeal?

Yes, and the documentation points you at the Dash docset generation guide rather than shipping a tool for it. That works because Zeal was inspired by Dash and supports the same docset format, so docsets made for one are readable by the other.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/zealdocs-zeal.svg)](https://hysenlabs.com/projects/zealdocs-zeal)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/zealdocs-zeal.svg)](https://hysenlabs.com/projects/zealdocs-zeal)

Was this useful?