Skip to main content

quickshell-mcp

Live Quickshell documentation for AI coding agents.

PyPI Python codecov


An MCP server that gives AI agents live access to the official Quickshell documentation, so they stop guessing QML API names from stale training data.

Also included:

  • Qt base types (Rectangle, RowLayout, ...) from doc.qt.io
  • Official example configs from quickshell-examples
  • Real-world implementations, searchable across the Caelestia and Noctalia shells

Every result carries its source URL. When implementations disagree with the docs, the docs win.

Table of Contents

Install

pip install quickshell-mcp        # or: uvx quickshell-mcp
From source
git clone https://github.com/franklinnolasco7/quickshell-mcp
cd quickshell-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
Nix
nix run github:franklinnolasco7/quickshell-mcp
Docker
docker build -t quickshell-mcp .
docker run --rm -i quickshell-mcp     # speaks MCP over stdio

Configure

opencode (opencode.json):

{
  "mcp": {
    "quickshell": {
      "type": "local",
      "command": ["/absolute/path/to/quickshell-mcp/.venv/bin/quickshell-mcp"],
      "enabled": true
    }
  }
}

Claude Desktop: same JSON under claude_desktop_config.json, wrapped in mcpServers. For HTTP transport, set QUICKSHELL_DOCS_MCP_TRANSPORT=http (plus optional HOST/PORT).

Set QUICKSHELL_DOCS_MCP_LOG=DEBUG for verbose request logging on stderr. Bulk doc indexes persist on disk (~/.cache/quickshell-mcp, 30-day freshness). Relocate or disable with QUICKSHELL_DOCS_MCP_DISK_CACHE, re-tune with QUICKSHELL_DOCS_MCP_DISK_TTL_HOURS.

Tools

Tool What it does
quickshell_search Search type names, guide slugs, optionally full text including deep search over type pages. Call this before writing QML from memory.
quickshell_search_all One-call unified search across Quickshell docs/types, Qt types, official examples, and Caelestia/Noctalia implementations; grouped by source, ranked by relevance
quickshell_find_pattern Describe what you want to build ("Spotlight-style launcher") and get matching real-world implementations with per-pattern API hints and cross-project grouping
quickshell_list_versions Published doc versions and the latest
quickshell_list_types / quickshell_get_type Browse and fetch Quickshell QML type docs
quickshell_list_guide_pages / quickshell_get_guide_page Usage Guide pages as Markdown
quickshell_about / quickshell_changelog About and Changelog pages
quickshell_list_qt_types / quickshell_get_qt_type Qt-side types (QtQuick, Controls, Layouts, ...)
quickshell_list_examples / quickshell_get_example Official example configs
quickshell_search_implementations Find bar/OSD/IPC/... patterns in Caelestia or Noctalia
quickshell_get_implementation Read those files, narrowed via find=
quickshell_explain_error Explain a QML/Quickshell error and suggest a fix, grounded in actual docs
quickshell_validate_qml Statically validate QML source: unknown types, properties, signals, imports, and version-incompatible APIs
quickshell_stats Session call counts and cache-hit ratio

Page-fetching tools accept version="latest" (default) or an explicit version like "v0.3.0". Cache-backed tools accept refresh=True to bypass the 30-minute cache.

Static validation

quickshell_validate_qml statically checks a QML snippet before you run it: unknown Quickshell/Qt types, properties, signals, missing import Quickshell.* statements, obvious scalar type mismatches, and types absent from the requested Quickshell version. It returns structured diagnostics (severity, line/column, confidence, suggested alternatives, and a docs source URL per finding).

It is a lightweight heuristic that complements qmlls, not a replacement: it validates against the same live docs index the other tools use, treats JavaScript bodies as opaque, and reports anything it cannot verify as an info or warning diagnostic rather than a false error. Local component files (a root type matching the filename stem) are skipped rather than flagged.

{"source": "PanelWindow { foo: 123 }", "version": "latest", "filename": "panel.qml"}

Source Hierarchy

  1. Official documentation (quickshell.org, doc.qt.io), authoritative
  2. Official examples, next in line
  3. Caelestia / Noctalia results, practical references labeled real-world implementation

References

Data comes from these upstream sources:

Source URL What it provides
Quickshell docs https://quickshell.org Type references, usage guide, changelog
Qt docs https://doc.qt.io/qt-6 QtQuick base types (Rectangle, RowLayout, etc.)
Quickshell examples https://git.outfoxxed.me/quickshell/quickshell-examples Official example configs
Caelestia shell https://github.com/caelestia-dots/shell Real-world implementation references
Noctalia shell https://github.com/noctalia-dev/noctalia (legacy-v4) Real-world implementation references

Development

See CONTRIBUTING.md for setup, workflow, and how to submit changes.

Limitations

  • Deep type-page search (include_type_pages=True) fetches every type page once per machine (~15s cold, then cached on disk for 30 days across sessions; refresh=True forces a refetch). Plain name search stays instant.
  • Example configs may target a different Quickshell version than yours; listings include a last_modified date so you can judge their age.
  • quickshell_validate_qml is heuristic static analysis; it cannot see local components or dynamic JavaScript and does not replace qmlls. Property-level checks fetch the type's docs page (cached), so the first validation of a new type is network-bound.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quickshell_mcp-1.4.1.tar.gz (191.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quickshell_mcp-1.4.1-py3-none-any.whl (55.8 kB view details)

Uploaded Python 3

File details

Details for the file quickshell_mcp-1.4.1.tar.gz.

File metadata

  • Download URL: quickshell_mcp-1.4.1.tar.gz
  • Upload date:
  • Size: 191.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quickshell_mcp-1.4.1.tar.gz
Algorithm Hash digest
SHA256 0beac2193548f84235be32c28cabe13a78044ace7897c09356fdeedbd4b11556
MD5 90a55623586dcb4550b7ae2e316a54c0
BLAKE2b-256 fefd8999c55bc3975e44cee0c9f001e14077fc560f5dd0452585391b94613322

See more details on using hashes here.

Provenance

The following attestation bundles were made for quickshell_mcp-1.4.1.tar.gz:

Publisher: semantic-release.yml on franklinnolasco7/quickshell-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quickshell_mcp-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: quickshell_mcp-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 55.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quickshell_mcp-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 588f13a322d7a339b64a8d8a8d6699c70c08274787cc94baf66890a37e3b3c11
MD5 998c64a8ec4cc33e37275e96da53a637
BLAKE2b-256 680cbc662e5595120b938b18b64d56344693ae413ea83bc1adc0f418a6639eb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for quickshell_mcp-1.4.1-py3-none-any.whl:

Publisher: semantic-release.yml on franklinnolasco7/quickshell-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.6.0

2 files

1.5.1

2 files

1.5.0

2 files

This release

1.4.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page