Documentation · System

Plugin, bridge and four skills.

This page describes the system the institute develops: the three building blocks with their versions, the shared working directory, the instruction file for the three CLIs and the four skills. Projects, setup, training and support are provided by Geoinformatikbüro Dassau GmbH (GBD).

Building blocks

Three parts, one release.

Plugin, bridge and skills are maintained separately and shipped together. Release 0.14.0 of 12 September 2026 combines the versions listed below.

Building blockVersionTask
QGIS plugin0.11.0Runs inside QGIS Desktop, carries out the operations, issues the connection token and puts far-reaching requests up for confirmation.
MCP bridge2.9.0A process of its own between CLI and QGIS. It announces 67 tools to the CLI and passes every call on to the plugin over the local connection.
SkillsfourDomain knowledge as text files in the working directory: tool reference, layer styling, print layouts, on-map diagrams.

Source of every version on this page: the release manifest of the package, entries [release], [components] and [skills].

Working directory

One directory for QGIS and the CLI.

Both sides see the same path. A file written there loads straight into QGIS as a layer; there is no transfer step. Whatever sits outside this tree stays invisible to QGIS.

<workspace>/
├── output/         results: .gpkg, .tif, .png, .pdf
├── scripts/        Python scripts kept for re-use
├── temp/           scratch space, safe to delete
├── cache/          download cache
└── cli_profiles/   per-CLI configuration, container mode only

Results belong in output/, because that is where QGIS finds them again and a later run can check them. The temp/ directory may be emptied at any time.

Instructions

One file, three CLIs.

A single file carries the domain context: PROJECT_INSTRUCTIONS.md. When the settings are applied, the plugin places it in the working directory — as CLAUDE.md for Claude Code and as AGENTS.md for Codex CLI and OpenCode.

Role and language
The task is to drive a running QGIS. Answers come in the language of the question.
Decision rule
Whatever changes what QGIS shows goes through a bridge tool. Everything else stays outside.
Tool overview
The 67 tools appear grouped by purpose, with a pointer to the full reference in the skill.
Standard route
Write the result to a file, load the layer, style it, fetch a map image and look at that image before the task counts as done.
Error avoidance
Large responses arrive page by page and are read in a loop; measurements need a metric coordinate system.
Bug reports
The About tab of the plugin copies the version manifest of plugin, bridge, skills and runtime to the clipboard.

Skills

Four skills, three of them with images.

Skills are text files holding domain knowledge and tested examples; they sit in the working directory and are loaded at the start of a task. The image pairs were produced from the data of the Benchmark 08 run: on the left what QGIS renders by itself, on the right the result after the move the skill teaches.

spatial-agent-bridge 1.7.0 — the remote control

The reference for the 67 tools: load and arrange layers, query and change attributes, move the map, fetch map images, save the project, export layouts, transfer files. The other three skills build on it; they produce descriptions that reach QGIS through these tools.

State       get_qgis_state · get_layer_details · get_layer_extent
Loading     load_layer · load_layers · create_layer
Styling     set_graduated_style · set_categorized_style · set_layer_labels
Map         map_navigation · zoom_to_feature · get_map_screenshot
Output      load_layout_template · export_layout · export_layer
Project     save_project · load_project · set_project_crs

Two properties shape the work: the result can be fetched back as a map image and checked, and long-running operations block nothing, because they start as a job and are polled later.

qgis-styles 1.0.0 — what the data looks like

The largest of the four, covering raster and vector: choice of renderer, colour ramps, labelling, symbol layers, effects and data-defined rules. Behind every request sits a question the skill knows how to answer: continuous values such as elevation or temperature are drawn differently from integer categories such as land cover, point clouds differently from polygons.

Colour the municipalities by population density in five classes.
Show the elevation model as a relief with hillshading.
Label the roads, but only from a scale of 1:25,000.

qgis-print-layouts 1.1.1 — the printable map

Eleven templates from A4 portrait to A0 landscape, among them a comparison sheet with two maps side by side and two report layouts. A template is loaded, title, subtitle and source note are filled in, the sheet leaves as PDF or PNG. Seven of the eleven derive from templates under Apache-2.0 and CC0, four are in-house work; origin and licence are documented in the skill.

Turn this into a printable A3 landscape map with title and legend.
I need before and after side by side on one sheet.
As a PDF for the committee.

qgis-diagrams 0.1.0 — numbers per feature on the map

Small charts on the map features themselves: pie, bar and stacked charts, plain numeric values and paired back-to-back comparisons. The skill matches chart form to question — shares across few categories as a pie, absolute comparisons as grouped bars — and scales the size so that the charts stay legible across several map scales.

Show the energy mix per municipality as a pie chart.
I want to compare the age groups per district.
Put the two scenarios per county next to each other.

Operation

Local command or container, cloud model or your own.

The plugin starts the chosen CLI in one of two ways: as a command installed on the same machine or inside the bundled container. Both work on the same working directory, in container mode under /workspace.

Model choice
Which language model answers is decided in the CLI, not in QGIS. Tools, skills and confirmations are unaffected.
Cloud
For Codex CLI and Claude Code the existing login is enough; the plugin checks it and points out a missing one.
Your own model
A locally served model is configured in the CLI. Benchmark 08 measured that route.
Container
In container mode the access keys are passed as environment variables and the working directory is mounted in.

Configuration

One file per CLI in the working directory.

When the settings are applied, the plugin writes the connection details to the place where each CLI looks for them and links the skills into that CLI's profile directory.

CLIFileSkills
Claude Code.mcp.json.claude/skills/
Codex CLI.codex/config.toml.agents/skills/
OpenCodeopencode.json.opencode/skills/

Codex reads this file only when the environment variable CODEX_HOME points at the .codex directory in the working directory; starting from the plugin sets it. All three files carry the same block:

QGIS_BRIDGE_HOST=127.0.0.1
QGIS_BRIDGE_PORT=64876
QGIS_BRIDGE_AUTH_TOKEN=<token>

The token is shown in the plugin settings and regenerated there. It belongs neither in a repository nor in a saved script.