Meltemi
CI License: Apache-2.0 Latest release
The spec-driven control plane for agentic development. Open source (Apache-2.0), free, community-built. Meltemi orchestrates the coding agents you already use — through open standards — under a discipline where no line of code is written without a reviewed specification.
One course, many sails. A clear spec drives any number of agents, from any vendor, without locking you to one.
meltemi.dev is the product site: what it is, the method, the agents it orchestrates and every download.
Léeme en español: LEEME.md.
What it is
Section titled “What it is”Meltemi is one product with two surfaces on three operating systems:
- A desktop application (Windows, macOS, Linux) — the visual control plane: sessions with live transcripts, the permission tray, the fleet of agents, the spec editor, line-by-line diff review, and a utilitarian code editor.
- A terminal application (
meltemi) — the same power in a TUI plus a fully scriptable CLI, so it works over SSH on a headless box.
Both are thin clients over a headless daemon (meltemid) that holds all the
logic. The rule is absolute: any daemon capability is reachable from every
surface — that is core parity, and CI fails the build if a capability lands in
only one place.
It speaks open standards: the Agent Client Protocol to pilot agents, MCP for tools, LSP for code intelligence, JSON-RPC over a local socket only (no network port, ever). You bring your own agent, your own key, your own model (local and self-hosted models).
The workflow is spec-first: a change is proposed, its scenarios reviewed, and only then implemented — task by task, in isolated git worktrees, with automatic pre-task checkpoints and an atomic per-task commit that traces every line back to the requirement that originated it.
What it is not
Section titled “What it is not”Not a general-purpose editor (code editing is utilitarian, in service of the agent loop), not another coding agent, not a cloud service, not CI/CD, not a marketplace. No accounts, no credits, no fees, no lock-in, no telemetry.
Install
Section titled “Install”Option A — the release installers (recommended)
Section titled “Option A — the release installers (recommended)”Artifact names are stable and version-free, so every link below always resolves to the latest published release — you never have to know a version number:
| Platform | Desktop app | Core (daemon + terminal) |
|---|---|---|
| Windows 10 1809+ / 11 | meltemi-desktop-Windows.msi |
meltemi-Windows.zip |
| macOS 13+ | meltemi-desktop-macOS.dmg |
meltemi-macOS.tar.gz |
| Linux (Debian/Ubuntu) | meltemi-desktop-Linux.deb |
meltemi-Linux.tar.gz |
The core archive carries both binaries: the daemon meltemid and the terminal
client meltemi. The desktop installer carries the desktop app.
Every release publishes SHA256SUMS and is signed by the attestation its own
release workflow mints when it publishes it; no person and no long-term key sign
it. Two checks, ordered by what each one buys — stop at the guarantee you need:
sha256sum --check --ignore-missing SHA256SUMS # 1. intactgh attestation verify meltemi-Linux.tar.gz --repo askenaz-dev/meltemi \ --signer-workflow askenaz-dev/meltemi/.github/workflows/release.yml # 2. signed(shasum -a 256 on macOS; Get-FileHash on Windows.) The checksum proves the
file arrived intact; the attestation proves which repository, commit and
workflow published that very file. The installer scripts do the first step for
you, not the second — gh ships with no operating system, and a one-line
installer that first demands a package install is not one line. See
docs/release.md for the offline variant with the bundle
each release carries, and for what each check does and does not prove.
Every desktop installer stays under 15 MB because none of them embeds a browser engine: each one uses your operating system’s own. Windows bootstraps its runtime when missing, macOS has it, and the Debian package declares it as a dependency so your package manager installs it. That is also why there is no AppImage: the format is self-contained by construction, so it would have to carry the engine — about 79 MB of it.
On a distribution outside the Debian family there is no desktop installer yet.
The terminal client and the daemon work everywhere from the archive above, and
the desktop app builds from source (see below). An .rpm is the next step.
Windows, step by step
Section titled “Windows, step by step”# 1. The desktop app.irm -OutFile meltemi-desktop-Windows.msi https://github.com/askenaz-dev/meltemi/releases/latest/download/meltemi-desktop-Windows.msiirm -OutFile SHA256SUMS https://github.com/askenaz-dev/meltemi/releases/latest/download/SHA256SUMSGet-FileHash .\meltemi-desktop-Windows.msi -Algorithm SHA256 # compare against SHA256SUMSmsiexec /i .\meltemi-desktop-Windows.msi
# 2. The daemon and the terminal client, via the install script.irm -OutFile install.ps1 https://github.com/askenaz-dev/meltemi/releases/latest/download/install.ps1notepad install.ps1 # read it first: it is short on purpose./install.ps1macOS, step by step
Section titled “macOS, step by step”# 1. The daemon and the terminal client.curl -fsSLO https://github.com/askenaz-dev/meltemi/releases/latest/download/install.shless install.sh # read it firstsh install.sh
# 2. The desktop app.curl -fsSLO https://github.com/askenaz-dev/meltemi/releases/latest/download/meltemi-desktop-macOS.dmgshasum -a 256 meltemi-desktop-macOS.dmg # compare against SHA256SUMSopen meltemi-desktop-macOS.dmgLinux, step by step
Section titled “Linux, step by step”# 1. The daemon and the terminal client.curl -fsSLO https://github.com/askenaz-dev/meltemi/releases/latest/download/install.shless install.sh # read it firstsh install.sh
# 2. The desktop app. Needs libwebkit2gtk-4.1-0 and libgtk-3-0; the package# declares them, so apt resolves them for you.curl -fsSLO https://github.com/askenaz-dev/meltemi/releases/latest/download/meltemi-desktop-Linux.debsha256sum meltemi-desktop-Linux.deb # compare against SHA256SUMSsudo apt install ./meltemi-desktop-Linux.debBoth installer scripts place meltemi, meltemid and the short mel alias on
your PATH. They are short and auditable, they publish their own hash inside the
signed SHA256SUMS, they verify what they download and they refuse to proceed on
a mismatch — there is no blind curl | sh here: download, read, then run.
The manual equivalent is written at the top of each script and in
docs/release.md.
Check it worked
Section titled “Check it worked”meltemid --version # the daemonmeltemi status # starts the daemon on demand and reports its statemeltemi fleet # which agents Meltemi can see, and what to installIf meltemi fleet shows an agent as not detected, it names the missing layer and
the exact command that installs it — start there, or read
the agents guide.
Option B — from source
Section titled “Option B — from source”Prefer a browser? Every artifact above is also listed on meltemi.dev/ide/downloads.
You need the pinned Rust toolchain (rust-toolchain.toml selects it
automatically) and, for the desktop app, Node 24+.
git clone <this repository>cd meltemicargo build --release -p meltemid -p meltemiThe desktop app is built by the Tauri CLI, not by a plain cargo build:
the frontend is embedded at compile time, and only tauri build puts it there
(a bare cargo build produces a binary whose window cannot load its UI).
npm ci --prefix desktop/uicd desktop && ui/node_modules/.bin/tauri build # installers + binarycd desktop && ui/node_modules/.bin/tauri build --no-bundle # binary onlytauri build runs the frontend build itself (beforeBuildCommand), so there is
no separate npm run build step.
On Linux the desktop app needs the system web engine’s development packages:
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-devBinaries land in target/release/: meltemi (terminal), meltemid (daemon),
meltemi-desktop (desktop app). To build the installers for your platform:
cd desktop && ui/node_modules/.bin/tauri buildVerify your installation
Section titled “Verify your installation”meltemi statusThat starts the daemon on demand and reports its version. Then:
meltemi fleetlists the agents detected on this machine.
Connect your agents
Section titled “Connect your agents”Meltemi ships no agents: it drives the official binaries you already have, with
the authentication each of them manages on its own. Open the Fleet view (or
run meltemi fleet) and you will see, per agent, whether it is detected and —
when something is missing — which layer is missing and the exact command that
installs it.
Some CLIs speak the Agent Client Protocol natively; others are driven through an official ACP adapter, which means two layers must be present. That is why an agent can be installed and still not be pilotable: the Fleet view names the gap instead of just saying “not detected”.
Read the agents guide for the per-agent detail: what to install, how detection works on each operating system, how to declare an agent Meltemi does not know, and how to run several accounts or subscriptions of the same provider at the same time — launch profiles redirect the authentication context of the official binary, and Meltemi never reads, stores or forwards credentials.
First steps
Section titled “First steps”cd your-projectmeltemiThat opens the interactive terminal UI. Or start from the CLI:
meltemi propose "add a dark-mode toggle"In the desktop application, New session in the top bar picks an agent and a
mode (explore, propose, dispatch a task, direct a running session). The command
palette (Ctrl+K) reaches every daemon capability, with typed forms generated
from the protocol’s own schemas.
Then walk the quickstart: docs/quickstart.md.
Architecture at a glance
Section titled “Architecture at a glance” meltemi (TUI + CLI) ─┐ ├─ JSON-RPC 2.0 over a local socket ─→ meltemid (daemon) meltemi-desktop ─────┘ (UDS 0700 / Windows named pipe) │ ├─ ACP → agent (in a worktree) ├─ spec engine (.meltemi/) ├─ LSP → your own language servers └─ permission proxy (deny-by-default)Remote work: the daemon never opens a network port. meltemi tunnel composes
the ssh command that reverse-forwards its local socket, so a laptop can drive
a fleet running on a workstation.
Privacy and posture
Section titled “Privacy and posture”- No accounts, no server. Nothing to sign up for; nothing phones home.
- No telemetry. Every metric is computed and kept on your machine (constitution §9). Any future telemetry would be opt-in and publicly specified before existing.
- No credentials. Meltemi never reads, stores or reuses an agent’s credentials, and never impersonates another client (constitution §2).
- Deny by default. With no client connected every permission request is denied; agents work in isolated worktrees with pre-task checkpoints.
Status
Section titled “Status”Phase 2. The daemon, the spec engine, the permission proxy, worktree
orchestration, checkpoints, per-task commits and the full SDD cycle
(propose → plan → review → verify → archive → implement) are implemented and
tested on Windows, macOS and Linux — Windows is first class. The desktop
application and the terminal surface are in core parity, verified by CI. See
docs/plan-de-cambios.md for the roadmap.
Documentation
Section titled “Documentation”- Quickstart — zero to your first reviewed proposal
- Questions and troubleshooting — what people ask first
- The one-developer test — an afternoon with your own agents, from the release to its report (in Spanish)
- Agents guide — install, detect and configure your agents
- The harness — say your conventions once, adjust them per agent and per project
- Architecture
- The SDD method
- CLI reference (generated)
- Core parity matrix — capability → RPC → surface
- Design system
- Accessibility · Platform notes
- Releases and verification · Versioning
- Contributing · Governance · Security
License
Section titled “License”Apache-2.0, for good (constitution §12). See CLA.md for the bounded contributor agreement.