Skip to content

GivenConstructConclude

GeoChat puts an AI assistant and GeoGebra in one desktop math tool. Enter a problem and it plans the construction, writes GeoGebra commands into the canvas, and explains the reasoning behind each step.

macOS and WindowsApache-2.0, open sourceYour data stays local

ABCO
What is given or statedThe construction in progressWhat is concluded

Draw directly in DeepSeek Harness

Give Harness a GeoGebra canvas. Your agent uses native tools to construct, read back the scene and inspect screenshots. Drag objects and sliders on that same canvas, without installing GeoChat Desktop or connecting a separate MCP service.

GeoChat inside DeepSeek Harness: a conversation checking the construction on the left, with a GeoGebra solar-system canvas on the right.
Actual running interface: conversation and interactive canvas alongside each other in one Harness session.

Construct, then check the result

20 native tools, 55 mathematical skills
Open a session canvas, search commands, construct objects, inspect results and control animations. Applet assets ship in the package, without an external CDN.
Let the agent see the actual canvas
geochat_capture_canvas returns directly viewable image content. Frame sampling helps inspect changes during animation, beyond numeric object values.
Read back scenes and text layout
Read the viewport, styles and partial dependencies; check container overlap and bounds for named text and bounded text lists in the current frame. Ordinary object labels and all animation instants are not covered; screenshots remain necessary.

Install in Harness

Harness 0.2.0-rc.2 · Node.js 24+ · Web profile (not the Desktop carrier)

dsh plugin --profile web add https://github.com/tiwe0/GeoChat/releases/download/dsh-plugin-v0.1.5/dsh-geochat-plugin-0.1.5.tgz

Restart the matching Harness profile after installation, then read the geochat skill. The plugin uses your configured Harness model; no separate plugin key is needed.

Try: Draw an animated solar system on the GeoChat canvas, then capture it to check labels and layout.

Release notes and SHA-256 checksums

Each session has its own in-memory canvas. Refreshing, closing the canvas or restarting loses the construction; save anything you need first. Bundled offline assets do not mean no network: Harness manages the native Remote connection.

Plugin-owned code is Apache-2.0. Bundled GeoGebra assets have non-commercial license restrictions; commercial use or distribution requires separate permission. GeoGebra licensing

What GeoChat does

These are the features currently supported in the desktop app.

What is given or stated

Your data stays on your machine

Conversations, canvas state and run history are saved to a SQLite file on your own disk. No account and no cloud sync.

./data/geochat-desktop.sqlite

OPT

Bring your own model key

Add your model provider's API key in settings. Requests go directly from your machine to that provider, without passing through GeoChat.

OpenAI · Anthropic · Google · DeepSeek · Alibaba · OpenRouter

The construction in progress

AB

Write commands into GeoGebra

GeoChat writes real commands into the embedded GeoGebra canvas. The resulting figure can be dragged, measured, and edited further.

O = Intersect(m_1, m_2)

Plane and space, one canvas

The GeoGebra runtime ships inside the app. Plane geometry, coordinate geometry, function graphs and solid geometry all use the same workspace.

What is concluded

G

See every step

The construction plan, tool calls and reasoning are shown in order so you can check them one by one.

Problem bank and export

Import a local problem bank to work through sets in bulk, and export any canvas as a .ggb file that a student or colleague can open in their own GeoGebra.

*.ggb

How a problem is completed on the canvas

Read, plan, write commands, explain. The desktop app handles all four stages; only model inference needs the network.

Given triangle ABC, construct its circumcircle.

ABCO
A = (-3, -1)B = (3, -1)C = (1, 3)m_1 = PerpendicularBisector(A, B)m_2 = PerpendicularBisector(B, C)O = Intersect(m_1, m_2)k = Circle(O, A)SetCaption(O, "Circumcenter")
  1. Read

    Identify the given conditions, constraints and goal.

  2. Plan

    Choose the construction order and the geometric objects needed at each step.

  3. Compile

    Convert the construction plan into GeoGebra commands and write them into the canvas one by one.

  4. Explain

    Explain why these objects produce the requested result.

Full demo

From typed problem to finished figure, shown at real speed.

The desktop app

The canvas is the main view. The chat panel can be collapsed or moved, and model settings live in the app's local settings page.

GeoChat Desktop interface: a GeoGebra canvas on the left, a floating AI chat panel on the right.

Questions

Does it need an internet connection?
The canvas, database and other local features work offline. Only model inference needs the network; requests go directly from your machine to the provider you configured.
Does it cost anything?
The app is free and open source under Apache-2.0. You pay your model provider for your own usage; that billing sits entirely with them, and we neither see it nor take a cut.
Do my problems get uploaded to you?
No. We do not run a server that could receive them. Your problem is sent as a prompt to the model provider you configured, and that data is governed by their privacy policy.
Which model providers are supported?
OpenAI, Anthropic, Google, DeepSeek, Alibaba Cloud and OpenRouter are configured out of the box, and you can add compatible custom providers and models in settings.
Is there a Linux build?
The packaging pipeline currently produces macOS and Windows installers only. Linux works from source, and the repository has full build instructions.
Are the installers code-signed?
The macOS installer is signed with Developer ID and notarized by Apple, so it opens normally. Authenticode signing has not been verified for the Windows installer, so SmartScreen may still appear on first run; the download page explains what to expect.

Install it, give it a problem

Open source, free, no sign-up. All you need to bring is an API key from a model provider.