Repository navigation
Releases
Saturn v0.6.0
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)
- Download
Saturn-0.6.0-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications (the.ziphas the same app). - Open Saturn. When macOS says it can't verify the developer, go to System Settings → Privacy & Security and click Open Anyway.
Windows (x64)
- Download
Saturn-0.6.0-win-x64-setup.exeand run it. - If SmartScreen stops it, click More info → Run anyway.
- Optional: confirm the installer is Saturn's. In PowerShell,
(Get-AuthenticodeSignature .\Saturn-0.6.0-win-x64-setup.exe).SignerCertificate.Thumbprintshould printD285DA425077C16A3D115D61F9748AFA574BC786.
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.6.0-mac-arm64-unsigned.dmg.sha256
gh attestation verify Saturn-0.6.0-mac-arm64-unsigned.dmg -R Saturn-Technology-Project/Saturn-AppThe signed attestations are attached too (*.sigstore.json); with one, gh attestation verify <file> --bundle Saturn-0.6.0-mac-arm64.sigstore.json -R Saturn-Technology-Project/Saturn-App checks a macOS download offline (-win-x64.sigstore.json for Windows).
Saturn-0.6.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.6.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
Security
- Permission rules now govern Claude Code and Codex turns. The rules under Settings → Permissions and in a project's
.saturn/settings.jsonor.claude/settings.jsonwere consulted only by Saturn's own agent loop; a Claude Code turn asked by its own approval setting alone, and a Codex turn asked only in Review mode. A deny now refuses the call and tells the program why, an allow runs it without a card in any mode, and an ask asks even in Bypass, naming the rule on the card. Claude Code'sBashis judged as thecodetool and its file tools asfiles, by action and path; a Saturn skill is judged by its own name. Codex runs its own shell commands and edits without asking Saturn, so a rule cannot reach those.
Fixed
- Windows: Saturn no longer opens a terminal window beside the app. The app started its runtime as a console program, so Windows gave the runtime a console window of its own, which showed its log for as long as Saturn ran. The runtime is now started without one, and every program the runtime starts in turn (git, Python, ssh, MCP servers, the desktop helper, nvidia-smi and the rest) is started without a window too, since a program started by a process without a console would otherwise get a visible one. The runtime's log still reaches the app, which shows its last lines when the runtime fails to start. Windows has only been type-checked for this change, not run.
- Windows: uv and Python on PATH are found, and the managed environment can be made. Environment looked for programs named
uvandpython3as Unix spells them, so on Windows it found neitheruv.exenorpython.exeand offered no way to make the environment; and its jobs ran through/bin/sh, which Windows does not have. Programs are now looked for as Windows spells them (the Store's emptypython.exealias does not count), the environment is made with the Python that was found, and the jobs run through cmd with its own quoting. Type-checked for Windows, not run there. - The training template's checkpoints now carry the GPU's random state, and a resume reports only what it put back.
train_loop.pysaved torch's CPU generator alone, so a run resumed on CUDA would have drawn its dropout and sampling noise from a fresh generator while its report saidrngwas restored; in fact a resume on a GPU stopped before that with "RNG state must be a torch.ByteTensor", because loading the checkpoint onto the device moved the generator's state there too. The checkpoint now holds each generator by name, Python's, NumPy's, the CPU's and every CUDA device's, and the resume report names each one restored (rng:cpu,rng:cuda) and lists undernotRestoredany the checkpoint held but this machine could not take, such as CUDA state from another number of devices. The skills on resuming say the same, and that a resumed GPU run agrees with an uninterrupted one only to within its kernels' nondeterminism. A program copied from the earlier template keeps its old behavior until the two functions are copied again. - A remote job's output comes back as fast as SSH carries it, and a long training log no longer stops it. Each exchange with the worker carried at most 128 KiB per output and the next waited a second, so a busy log fell minutes behind, and any output past 64 MiB stopped synchronization. Parts are now up to 1 MiB and follow one another while more is waiting, and logs, metrics and resource readings may reach 1 GiB each. Install the worker again on each SSH host after upgrading.
- The research assistant is made only once. When two screens asked for the assistant at the same moment on a first start, each could make one, and chats were split between them. They now share the one being made.
- The Workspace terminal keeps what a command set for the next one. Each command runs in a new shell, so
source .venv/bin/activate,exportor a shell function used to be gone by the next command, and Python ran outside the virtual environment. Each terminal panel now carries its environment, functions and shell variables from one command to the next, so an activated environment stays active anddeactivaterestores the oldPATH. (An alias carries over only in bash; zsh does not apply aliases inside a script.) A new project's terminal starts fresh. The environment stays inside Saturn's runtime and is never sent to the app. Not on Windows yet.
Changed
- Lists of choices show which option the pointer is on. In the dark theme the highlighted option of a drop-down list (the assistant's Ask, Approve, Auto and Agent modes, a permission rule's allow, ask and deny) had no background of its own, since the highlight color was the list's own color, so only its explanation turning white marked it. The highlighted option is now tinted in both themes and its explanation stays muted, a list whose options carry explanations is wide enough for each to sit on one line, and the check beside the chosen option sits at the option's middle rather than on its first line.
- The Environment screen's managed-environment card lines up. Its first line (the
.venv, whether it is in use, Use and Sync from lock file) was indented further than the Other packages field under it and carried a stray divider, and the card sat flush against the job-timeout field. The line now aligns with the field, "in use" is a badge rather than part of the sentence, the card stands off from the field, the timeout says what it applies to, and a project without a lock file is told so beside the Sync button instead of only in its tooltip. The job card under it is laid out the same way, with its log in its own box. - A remote run is followed over one SSH connection instead of one a second. Saturn used to open a new SSH connection every second to ask the worker for new output. It now keeps one connection open while the run goes on, and the worker sends what the run writes as it is written, so samples and logs appear within a fraction of a second and the host sees one connection per run rather than thousands. A stop goes down the same connection. If the connection drops, Saturn says so, catches up a second later from what it already has, and opens it again; the computation on the host is never affected. The worker on the host must be this version of Saturn, as before.
- LM Studio is now Local server, and MLX is part of it. The provider under Settings → Models takes any model server on this computer with OpenAI-compatible endpoints: LM Studio, Ollama, vLLM, llama.cpp or
mlx_lm.server, at the address you give. Saturn lists the models the server has loaded, leaving out embedding and reranking models, and sends no key. The separate MLX provider is gone, since it did nothing LM Studio's path did not; a model saved under it is a Local server model now, at the same address. - The semantic code index and its embedding models are gone. No screen had reached the index since the research interface, and the assistant's tools never used it; the project's ...
Saturn v0.5.1
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)
- Download
Saturn-0.5.1-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications (the.ziphas the same app). - Open Saturn. When macOS says it can't verify the developer, go to System Settings → Privacy & Security and click Open Anyway.
Windows (x64)
- Download
Saturn-0.5.1-win-x64-setup.exeand run it. - If SmartScreen stops it, click More info → Run anyway.
- Optional: confirm the installer is Saturn's. In PowerShell,
(Get-AuthenticodeSignature .\Saturn-0.5.1-win-x64-setup.exe).SignerCertificate.Thumbprintshould printD285DA425077C16A3D115D61F9748AFA574BC786.
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.1-mac-arm64-unsigned.dmg.sha256
gh attestation verify Saturn-0.5.1-mac-arm64-unsigned.dmg -R Saturn-Technology-Project/Saturn-AppThe signed attestations are attached too (*.sigstore.json); with one, gh attestation verify <file> --bundle Saturn-0.5.1-mac-arm64.sigstore.json -R Saturn-Technology-Project/Saturn-App checks a macOS download offline (-win-x64.sigstore.json for Windows).
Saturn-0.5.1-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.1-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
- Workspace files can be created and renamed from the file tree. New files open immediately, including empty notebooks. Renaming keeps open tabs and unsaved edits, checks an open file's revision, and refuses to overwrite an existing name. F2 renames a focused file.
- The terminal prompt follows its output. Commands appear immediately and output accumulates from top to bottom, with the next prompt underneath, rather than in a footer at the panel's bottom. Up/Down recalls commands and restores an unfinished line; Ctrl+L or
clearclears the scrollback. - A training run that lists its checkpoints can register its analysis outputs again. The checkpoint entries a program writes to its artifacts manifest, for resuming, made "artifacts from run" refuse the whole manifest. They are now passed over, and the figures and JSON beside them are registered.
- Samples changed after a run was sealed are flagged wherever the run is listed. The warning on the Experiments page never showed, because the list of runs did not check the seal; only the run's own Evidence did. The list, the Workspace's run tab and the Samples page now say so too.
- The skills no longer tell a program to write where the sandbox refuses. The checkpoint, pretraining and task skills said to save into the project folder, which a sandboxed run cannot write; they now say
SATURN_RUN_OUTPUT, and a project folder only when the person has turned the sandbox off. The starter program writes its files toSATURN_RUN_OUTPUTas its own rules say, and the list of run variables is complete. - The documents match the runtime on remote runs: the worker is started without nohup, the host checks every file of the version before running (the old "not certified identical" wording is gone from the docs and from the worker's note), the worker is installed from Environment rather than by hand, a run on the host gets only
SATURN_RESUME_FROM, and a project's skill can also live in.agents/skillsor.claude/skills.
Changed
- The source editor's Tab completes, advances snippet fields or indents, with Shift+Tab to go back or outdent, local document-word suggestions alongside language completions, and entry-point/test snippets for Python. Python, JS/TS and JSX, Rust, JSON, Markdown, Shell, YAML, TOML, TeX and Lean have syntax support; JSON also reports syntax errors. Existing indentation and CRLF endings are preserved. Recent source tabs keep undo, cursor and scroll while the Workspace is open, and a status bar shows position, indentation, line endings and editing shortcuts. Project-wide type checking and definition navigation still need a language server.
- The assistant's answers are drawn as Markdown. Headings, lists, quotes, tables, links, bold and inline code show as such instead of as raw marks; fenced code stays a copyable snippet. A link opens in your browser.
- A run's evidence shows more of what it records. Expected: the version's inputs by role, its models with whether each revision pins the weights (a commit or hash) or is a name such as
mainthat can move, and what it resumes from. Observed: the platform or host and its working folder, start, end, duration and exit code, the host's commit, where the sandbox let the program write and how many folders it hid, what a resumed run took over, and whether the snapshot was checked after the run. Reported: the settings and the restore the program described, in words rather than raw JSON, and how many report lines it wrote. The sealed samples' hash, size and count are at the bottom. - An experiment's seeds can be set in Experiments, beside the sandbox, as a comma separated list; they are passed as
SATURN_RUN_SEEDandSATURN_RUN_SEEDSand frozen into each version. A paused run says since when.
Added
- New models appear without waiting for a Saturn update. Once a provider's API key is saved, Settings lists the models that provider offers that key (Claude, OpenAI, Gemini and DeepSeek), Saturn's names first, and leaves out the ones the key cannot use. Without a key, and for Claude Code and Codex, Saturn's built-in list is shown, and "Other model ID…" takes any model ID by hand. The key is sent only to the provider's own address or one a connected model of it already uses. Prices are still Saturn's own, so a model newer than Saturn is shown unpriced on the Usage page.
- Claude Mythos 5.1 can be chosen for the Claude and Claude Code providers, beside Claude Fable 5.1. It is the same model, offered by Anthropic to verified organizations, and is priced the same on the Usage page.
- Local language servers in the source editor. Python uses Basedpyright or Pyright with the project's selected interpreter; Environment has a Python language server kit. JS/TS use TypeScript 7's native LSP (project first, then PATH), with the TypeScript 6 language-server wrapper supported; Rust uses rust-analyzer. Connected files have semantic completion, type hover, signatures, versioned push/pull diagnostics and F12 definitions within the project. Unsaved imports survive tab switches and connection restarts. The status bar reports connection state and problems, with restart/setup controls. The runtime owns and reaps server process groups, checks document paths and rejects executable commands and workspace edits. Notebook cells and Windows are not covered yet.
- Programs to start from, and an SDK.
research_templatehands the assistantsaturn_run.py, a dependency-free file an experiment imports to write samples, metrics, its report, checkpoints and artifacts the way Saturn reads them (whole lines, flushed, no duplicate sample, seeds applied and reported, SIGTERM handled), and eight runnable templates to copy into the project and change: a benchmark harness wrapper, a red-team harness, an agent trajectory recorder, a Lean proof checker, a linear-probe trainer, a steering-vector sweep, a resumable training loop, and a paper compile script. A copy is the project's own program, frozen with each version. The SDK is tested against the real Python. - The assistant reads less per turn. The research tools' descriptions are a sixth shorter, with the detail in the
saturn-research-toolsskill; a log gives its last 8 KiB and an output file 32 KiB unless more is asked for; a run's evidence gives the snapshot's file count instead of listing thousands of files unless asked; andstatuscuts a finding's text at 240 characters. - The research tools cover what the skills teach. A
documentartifact keeps a PDF, a model card, a paper or a compile log with its hash, previewed in Experiments (a Markdown card drawn, a PDF shown).research_read what: "output"lists and reads what a run's program wrote toSATURN_RUN_OUTPUT, such as an agent's trajectories or a proof checker's messages, without running anything. A label can carry arater, andwhat: "agreement"(and the Samples page) gives Cohen's and Fleiss' kappa between raters, against the adjudicated labels and against...
Saturn v0.5.0
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)
- Download
Saturn-0.5.0-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications (the.ziphas the same app). - Open Saturn. When macOS says it can't verify the developer, go to System Settings → Privacy & Security and click Open Anyway.
Windows (x64)
- Download
Saturn-0.5.0-win-x64-setup.exeand run it. - If SmartScreen stops it, click More info → Run anyway.
- Optional: confirm the installer is Saturn's. In PowerShell,
(Get-AuthenticodeSignature .\Saturn-0.5.0-win-x64-setup.exe).SignerCertificate.Thumbprintshould printD285DA425077C16A3D115D61F9748AFA574BC786.
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-AppThe 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 https://github.com/Saturn-Technology-Project/Saturn-App/pul...
Saturn v0.4.1
Saturn is a workbench for AI research on your own computer: the app, its research assistant and its local runtime in one download.
The first release since 0.3.1. 0.4.0 was tagged but never published, so 0.4.1 also brings everything in 0.4.0: the rewrite in Rust and Tauri, the experiment sandbox, run evidence and the rest. The "What changed" section below lists only what 0.4.1 adds to it.
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)
- Download
Saturn-0.4.1-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications (the.ziphas the same app). - Open Saturn. When macOS says it can't verify the developer, go to System Settings → Privacy & Security and click Open Anyway.
Windows (x64)
- Download
Saturn-0.4.1-win-x64-setup.exeand run it. - If SmartScreen stops it, click More info → Run anyway.
- Optional: confirm the installer is Saturn's. In PowerShell,
(Get-AuthenticodeSignature .\Saturn-0.4.1-win-x64-setup.exe).SignerCertificate.Thumbprintshould printD285DA425077C16A3D115D61F9748AFA574BC786.
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.4.1-mac-arm64-unsigned.dmg.sha256
gh attestation verify Saturn-0.4.1-mac-arm64-unsigned.dmg -R Saturn-Technology-Project/Saturn-AppThe signed attestations are attached too (*.sigstore.json); with one, gh attestation verify <file> --bundle Saturn-0.4.1-mac-arm64.sigstore.json -R Saturn-Technology-Project/Saturn-App checks a macOS download offline (-win-x64.sigstore.json for Windows).
Saturn-0.4.1-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.
Changes
What changed in each version, and whether it affects you, is in CHANGELOG.md.
What changed
Changed
- Newer versions of the libraries that encrypt saved keys, hash records, read the local search model and talk to the agent browser. aes-gcm 0.11 encrypts and decrypts exactly as before, so keys saved by earlier versions still open; sha2 0.11 gives the same hashes, so research records and their evidence still check out; tokenizers 0.23 reads the built-in search model the same way, so local search finds what it found before; and tokio-tungstenite 0.30 carries the agent browser's connection to Chrome.
- The file dialog and the single-window check on the desktop use the latest Tauri plugins (dialog 2.8.4, single-instance 2.5.5).
What's Changed
- Saturn 0.4.1: the seven dependency updates, and one command to set the version by @rickwengdev in #64
Full Changelog: v0.4.0...v0.4.1
Saturn v0.3.1
What's new in 0.3.1
Upgrade if you use 0.3.0 or earlier. This release has a security fix and a crash fix.
- Security: a project's settings files can no longer pre-approve tool calls. The allow rules in a repository's
.saturn/settings.jsonor.claude/settings.jsonapplied without being shown to you, so a cloned repository could let an agent run commands without an approval card. Their deny and ask rules still apply at once; their allow rules now wait until you approve that exact set in Settings → Permissions, and a rule allowing every command is never applied. After upgrading, check the project rules of any repository you opened. - Fixed: Saturn quitting seconds after launch while indexing a project. The built-in embedding model asked for a single 2 GiB block of memory on large files, which Electron answers by ending the app. It now works in smaller batches and uses a fraction of the memory.
- Fixed: an approval card for a Claude Code or Codex agent could refuse an answer given the moment it appeared.
- The TypeScript SDK moved to its own repository, Saturn-SDK.
Full list in the changelog.
Saturn runs AI agents on your own computer: the agent app, its local runtime and Saturn IDE 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)
- Download
Saturn-0.3.1-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications (the.ziphas the same app). - Open Saturn. When macOS says it can't verify the developer, go to System Settings → Privacy & Security and click Open Anyway.
Windows (x64)
- Download
Saturn-0.3.1-win-x64-setup.exeand run it. - If SmartScreen stops it, click More info → Run anyway. Later versions update themselves.
- Optional: confirm the installer is Saturn's. In PowerShell,
(Get-AuthenticodeSignature .\Saturn-0.3.1-win-x64-setup.exe).SignerCertificate.Thumbprintshould printD285DA425077C16A3D115D61F9748AFA574BC786.
Then open Settings → Models, connect a model, create an agent, and give it a task (the first launch walks you through it).
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.3.1-mac-arm64-unsigned.dmg.sha256
gh attestation verify Saturn-0.3.1-mac-arm64-unsigned.dmg -R Saturn-Technology-Project/Saturn-AppThe signed attestations are attached too (*.sigstore.json); with one, gh attestation verify <file> --bundle <file>.sigstore.json -R Saturn-Technology-Project/Saturn-App checks a download offline.
Saturn-0.3.1-sbom.cdx.json lists every package, model and runtime this release ships (CycloneDX 1.5, with each package's SHA-512), for your scanner or your security team.
Changes
What changed in each version, and whether it affects you, is in CHANGELOG.md.
Full Changelog: v0.3.0...v0.3.1
Saturn v0.3.0
Saturn runs AI agents on your own computer: the agent app, its local runtime and Saturn IDE 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)
- Download
Saturn-0.3.0-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications (the.ziphas the same app). - Open Saturn. When macOS says it can't verify the developer, go to System Settings → Privacy & Security and click Open Anyway.
Windows (x64)
- Download
Saturn-0.3.0-win-x64-setup.exeand run it. - If SmartScreen stops it, click More info → Run anyway. Later versions update themselves.
- Optional: confirm the installer is Saturn's. In PowerShell,
(Get-AuthenticodeSignature .\Saturn-0.3.0-win-x64-setup.exe).SignerCertificate.Thumbprintshould printD285DA425077C16A3D115D61F9748AFA574BC786.
Then open Settings → Models, connect a model, create an agent, and give it a task (the first launch walks you through it).
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.3.0-mac-arm64-unsigned.dmg.sha256
gh attestation verify Saturn-0.3.0-mac-arm64-unsigned.dmg -R Saturn-Technology-Project/Saturn-AppSaturn-0.3.0-sbom.cdx.json lists every package, model and runtime this release ships (CycloneDX 1.5, with each package's SHA-512), for your scanner or your security team.
Changes
Agents work more like Claude Code and Codex
- Permission rules (allow, ask or deny a tool by pattern) from Settings, a project's
.saturn/settings.json, or Always allow on an approval card;.claude/settings.jsonrules are read too. - An OS sandbox around shell commands on macOS: they write only inside the workspace, and leaving it asks. (Windows has no sandbox yet.)
- Context compaction: a long chat's oldest turns fold into a running summary;
/compacton demand. - Sub-agents (
delegate), background commands (dev servers, watchers), hooks, skills, slash commands and plugins. - Pull request follow-up: failing checks go back to the agent and its fix is pushed; review comments wait for you.
- Tool calls in each provider's native format (Claude with its signed thinking, OpenAI, Gemini, DeepSeek), and heavy toolkits (GitHub, computer use, browser, automations) load only when needed: about 85% fewer input tokens per step.
Watch and review what agents do
- Agent browser: shown live in the chat's Browser tab with the agent's cursor, or in a visible Chrome or Safari window (Settings → General → Agent browser).
- Every file change is reviewable and revertible, including what shell commands change, in the foreground or the background, in git projects and in other folders (private snapshots, listed with their size in Settings → General → Storage).
- Live updates over server-sent events instead of polling.
Use it from code
saturncommand line:saturn run "…" --agent … --project …, with approvals in the terminal.@saturn-app/sdk: start runs, follow their steps, answer approvals from TypeScript.
Fixes
- The Browser tab loads pages again.
- Computer use returns a partial accessibility tree on very large pages instead of timing out.
- Settings → General → Computer use asks macOS for Accessibility and Screen Recording itself, so Saturn appears in System Settings.
- Usage costs bill cached prompt tokens at each provider's cache rate.
Measured
Task evals (scripts/eval, 14 tasks graded by hidden tests): Claude Sonnet 5.5 passes 14 of 14.
Full Changelog: v0.2.0...v0.3.0
Saturn v0.2.0
Saturn runs AI agents on your own computer: the agent app, its local runtime and Saturn IDE in one download.
Preview build. The macOS app is not signed with an Apple Developer ID (Apple Silicon only), and the Windows installer is not code-signed, so both systems warn the first time you open them.
Install
macOS (Apple Silicon)
- Download
Saturn-0.2.0-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications (the.ziphas the same app). - Open Saturn. When macOS says it can't verify the developer, go to System Settings → Privacy & Security and click Open Anyway.
Windows (x64)
- Download
Saturn-0.2.0-win-x64-setup.exeand run it. - If SmartScreen stops it, click More info → Run anyway. Later versions update themselves.
Then open Settings → Models, connect a model, create an agent, and give it a task (the first launch walks you through it).
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.2.0-mac-arm64-unsigned.dmg.sha256
gh attestation verify Saturn-0.2.0-mac-arm64-unsigned.dmg -R Saturn-Technology-Project/Saturn-AppChanges
Full Changelog: v0.1.0...v0.2.0
Saturn v0.1.0 (preview)
The first preview of Saturn: AI agents that run on your own computer, with the agent app, its local runtime and Saturn IDE in one download.
Early preview. Expect rough edges. The macOS build is unsigned and for Apple Silicon only.
Highlights
- Agents, projects and groups. Give each agent a model, an effort level and tools. Work in real project folders you grant, or put several agents in one group chat where they hand work to each other with
@mentions. - Your models. Claude, OpenAI, Gemini and DeepSeek with your API keys; Claude Code on your Claude plan; Codex on your ChatGPT plan (one-time device-code sign-in); or offline models in LM Studio.
- You stay in control. Approvals per agent or per group (ask always, ask only for risky actions, or full autonomy). Every edit is checkpointed and can be reviewed as a diff or reverted.
- Tools. Files, shell, web, multi-step plans, computer use, cron automations, and MCP servers from a built-in marketplace.
- Usage & billing. Tokens and cost at official prices, by model and agent, for today, this week, this month or any date range.
- Saturn IDE. A Code-OSS editor wired to the same agents: Tab completion, next-edit, inline edits, and an agent panel with diff review.
- Local and locked down. The runtime listens only on
127.0.0.1behind a session token; telemetry stays on your machine unless you export it.
Install (macOS, Apple Silicon)
- Download
Saturn-0.1.0-mac-arm64-unsigned.dmg, open it, and drag Saturn into Applications. (The.ziphas the same app if you prefer.) - Open Saturn from Applications.
- macOS will say it can't verify the developer. Open System Settings → Privacy & Security, scroll down, and click Open Anyway.
- In Saturn, open Settings → Models, connect a model, create an agent, and give it a task.
Check the download (optional):
shasum -a 256 -c Saturn-0.1.0-mac-arm64-unsigned.dmg.sha256
shasum -a 256 -c Saturn-0.1.0-mac-arm64-unsigned.zip.sha256Known limitations
- macOS on Apple Silicon only for now. Intel Macs and Windows builds are not published yet.
- Not signed or notarized, so macOS asks for confirmation on first launch.
- Computer use and Saturn IDE are macOS only.
Security
Please report vulnerabilities privately to security@saturn-core.com.