Skip to content

Saturn v0.5.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Nov 11:42
93a4ec4

Saturn is a workbench for AI research on your own computer: the app, its research assistant and its local runtime in one download.

Preview build. The macOS app is not signed with an Apple Developer ID (Apple Silicon only), and the Windows installer is signed with Saturn's self-signed certificate, which Windows does not trust, so both systems warn the first time you open them.

Install

macOS (Apple Silicon)

  1. Download Saturn-0.5.0-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications (the .zip has the same app).
  2. Open Saturn. When macOS says it can't verify the developer, go to System Settings → Privacy & Security and click Open Anyway.

Windows (x64)

  1. Download Saturn-0.5.0-win-x64-setup.exe and run it.
  2. If SmartScreen stops it, click More info → Run anyway.
  3. Optional: confirm the installer is Saturn's. In PowerShell, (Get-AuthenticodeSignature .\Saturn-0.5.0-win-x64-setup.exe).SignerCertificate.Thumbprint should print D285DA425077C16A3D115D61F9748AFA574BC786.

Then open Settings → Models and connect a model, add a project folder, and write your first question (the first launch walks you through it). The interface is in English or Traditional Chinese, following the system or chosen in Settings → General.

Updating: from a version before the rewrite in Rust and Tauri (0.3.1 or earlier), install this one by hand; your data in ~/.saturn-app keeps working. Later versions update themselves: the update downloads in the background and installs when you quit Saturn, and it must carry a signature from Saturn's updater key.

Check a download (optional): each file has a .sha256 beside it, and a signed build attestation that proves it was built from this repository's source by its public release workflow:

shasum -a 256 -c Saturn-0.5.0-mac-arm64-unsigned.dmg.sha256
gh attestation verify Saturn-0.5.0-mac-arm64-unsigned.dmg -R Saturn-Technology-Project/Saturn-App

The signed attestations are attached too (*.sigstore.json); with one, gh attestation verify <file> --bundle Saturn-0.5.0-mac-arm64.sigstore.json -R Saturn-Technology-Project/Saturn-App checks a macOS download offline (-win-x64.sigstore.json for Windows).

Saturn-0.5.0-sbom.cdx.json lists the crates, npm packages and model this release is built from (CycloneDX 1.5, with their hashes), for your scanner or your security team.

saturn-worker-0.5.0-linux-x64 and -linux-arm64 are the worker Saturn installs on a Linux SSH host when you press Install worker in Environment; you do not need to download them. Saturn checks each against the hash built into this release before sending it, and the host needs libssl 3 (Ubuntu 22.04, Debian 12, RHEL 9 or later).

Changes

What changed in each version, and whether it affects you, is in CHANGELOG.md.

What changed

Fixed

  • The assistant's browser can be watched again, in the Workspace. Since the research interface, an agent browsing in Saturn's own browser (the default) did so out of sight: the Browser tab its settings spoke of was gone. The Workspace now opens a Browser tab beside your files when the assistant opens a page, showing the page live with the cursor the assistant points, clicks and types with, now a black pointer with Saturn beside it so it is plain whose it is; the page fits or shows at its actual size. While you are elsewhere, the assistant panel says it is browsing and leads there.

Changed

  • Running an experiment says what it does. The Workspace's bare command box and Run button are now an experiment bar beside the results' tabs, leaving the editor its room: it names the experiment (or starts a new one), takes the command after a $, and Freeze and run says that it keeps the code as a version before running it. While the run goes, the bar shows its status and version, with Pause and Stop beside them. Open in Experiments and, on the Experiments page, Edit in Workspace move between the two on the same experiment, and Experiments can now run its newest version as it was frozen.
  • The workspace's samples and questions are easier to read. Each sample id now fits on one line, and a long one keeps its end in view (the full id shows on hover). A sample's scores form a small table instead of raw JSON, with zeros dimmed so what the scorer found stands out. The sidebar's questions sit apart, each behind a thin rule and up to three lines, with how many there are and a link to all of them. The sample list and the sample beside it scroll on their own, and the arrow keys move through the list.
  • A worker of another Saturn version is refused. Every request now carries Saturn's version, and a check compares it, so a host can no longer run jobs with a worker that does not match the app. After upgrading, use Install worker in Environment once for each SSH host whose worker came with an earlier version.
  • Samples name the model a line is about. A line that names no model used to show "Unnamed model". It now shows the version's model when the version has only one, the model's id when that id is not recorded under Models, and otherwise "Model not recorded", with a note on how to fix it. The runs table names models the same way.
  • "Scorer: no word" is gone from every sample line. The scorer's word is shown only when the program wrote one; the scores are beside it either way.

Added

  • Tabs in the Workspace. Every file you open gets a tab above the editor; switching keeps a tab's unsaved text, marked with a dot, and closing one with changes asks first. The tabs reopen with the project.
  • Local models through MLX. On a Mac with Apple silicon, choose MLX in Settings → Models to use a model served by mlx_lm.server (pip install mlx-lm), with no LM Studio in between. Saturn lists the models the server can load; like an LM Studio model, it needs no key and costs nothing, and it must support tool calling to act as the research assistant.
  • Saturn installs its own worker on an SSH host. In Environment, Connect finds this version's worker on the host and uses it; when it is missing or another version, Install worker puts the right one in ~/.saturn/worker/<version> in your home folder, with no administrator rights. It is this computer's own program when the host is the same kind of system, and otherwise the release's Linux worker (x86-64 or ARM), used only if it matches the hash built into this Saturn, and hashed again on the host. Releases now carry these workers. The assistant can see whether the worker is ready; installing stays yours.
  • A run can be paused and continued. A running experiment can be held where it is and let go on later, from its row in Experiments or by the assistant. It keeps its memory, and the GPU's, while paused, and the run says how long it spent paused. A paused run can still be stopped.
  • A run that stopped, was interrupted or failed can be resumed. Resuming starts a new run of the same version that takes over where the old one was: an evaluation keeps the samples it finished, and its program skips them; a training run's program restores the last checkpoint the run listed, and its curve goes on from that step. The new run, and its evidence, say which run it resumed and what came along. The assistant can pause, continue and resume runs too, and a new skill tells it how, and how to write a program that can be resumed.
  • An experiment can be renamed. The experiment page now shows the experiment's name above its question and hypothesis, and changing it there renames it; its versions and runs stay with it. A blank name is not saved, and a change made meanwhile elsewhere, by the assistant for one, is reported rather than overwritten.
  • Training metrics follow a run while it goes. The experiment page showed a training run's curve only once the run had finished. It now shows the run still going, adds each metric as the program writes it, and reads the last ones when the run ends; before the first metric it says it is waiting. A long run's curve stays quick to draw.

What's Changed

  • Docs: release tags are made by the release workflow by @rickwengdev in #65
  • Experiments: training metrics follow a run while it goes by @rickwengdev in #66
  • Experiments: an experiment can be renamed from its page by @rickwengdev in #67
  • Samples: name the model a line is about, and drop the empty scorer word by @rickwengdev in #69
  • Runs can be paused, continued and resumed, by the person and the assistant by @rickwengdev in #68
  • Remote runs: pair with the SSH host's worker, and install the matching one when asked by @rickwengdev in #70
  • Research assistant: test that every backend has the new run and remote tools by @rickwengdev in #73
  • MLX: local models through mlx_lm.server by @rickwengdev in #71
  • Workspace: readable sample ids, scores and questions by @rickwengdev in #72
  • Workspace: an experiment bar, and Experiments can run its newest version by @rickwengdev in #74
  • Workspace: tabs for files, and the assistant's browser live in one by @rickwengdev in #75
  • Security: list the open advisories for OSV and Scorecard by @rickwengdev in #76
  • Saturn 0.5.0 by @rickwengdev in #77

Full Changelog: v0.4.1...v0.5.0