Saving, loading, and project files

August 26, 2026

Every page in this series so far has worked inside one project that was never saved. This page covers the part that makes a model durable: writing it to a .kjt file, opening it again later, and optionally protecting it with a password.

The document-actions cluster

Konjugate has no traditional File menu. The equivalent lives as a small row of icon buttons in the title bar, next to the project name.

The title bar's document-actions cluster on a blank project
New window, Open project, Save project and Save encrypted project, left to right, followed by Export results as CSV and Examples.

A fresh window always starts blank. There's no separate "New" command: New window (Cmd/Ctrl+N) opens another independent project window rather than clearing the current one.

Save, and Save As

Save project (Cmd/Ctrl+S) writes the current model to disk. The first time it runs on a project with no known path yet, it opens the operating system's own "Save Konjugate project" dialog, filtered to .kjt. Every save after that reuses the same path silently, with no dialog at all.

Save As is Shift+Cmd/Ctrl+S rather than a separate button. It forces that same save dialog to reappear even when a path is already known, for writing a copy elsewhere without touching the original file.

Open project (Cmd/Ctrl+O) is the mirror image: the operating system's own file picker, filtered to .kjt, handing the chosen file back to Konjugate to load.

Saving a project that already has a result

A project with no simulation result saves exactly as described above. Once a run has completed, saving asks one more question first.

The Choose saved content dialog, offering Model only or Model and results
Model and results is the default: the saved file carries the full playback timeline and its restart checkpoint, not just the graph.

Model and results is what "Running a simulation"'s Extend simulation continues from later: the checkpoint it needs travels with the file. Model only drops the result and saves just the editable graph, useful for sharing a model without also shipping however much data a long run produced.

Password-protecting a project

Save encrypted project opens a password prompt instead of going straight to a file dialog.

The Save encrypted project dialog, showing a live password-mismatch error
The confirmation field validates as you type: a mismatch is caught before Save encrypted is even clickable.

Once a project has been saved this way, a small badge appears next to its name in the title bar, labeled "Encrypted project · AES-256-GCM." Clicking Save encrypted project again on an already-protected project doesn't ask for a new password outright: it opens a short menu instead, offering Change password… or Remove encryption… (the latter keeps the file's normal compression, just without the password).

Opening a protected file later reprompts for its password. Getting it wrong, or opening a file that's been altered since it was saved, produces the same message either way: "Incorrect password, or this project has been modified." That's not a vague error message, it's how authenticated encryption is supposed to behave: distinguishing "wrong password" from "tampered file" would mean leaking information an attacker could use.

Where to go from here

Nothing about saving or opening a project changes what's in it. From here, "The graph canvas" and "Subsystems and edge groups" cover organizing a model that's grown past a couple of nodes, and "Getting started" covers building one from nothing.

Follow Konjugate on LinkedIn for updates.

Comments