New here? Install or update MIRA

  1. v0.318.7 Current build

    Leaner prompts, steadier local models

    • Up to ~83% fewer prompt tokens per turn. With prompt caching and adaptive tool selection on, MIRA now sends a small, stable core toolset plus on-demand tool search instead of every tool’s full schema every turn — a measured chat turn dropped from ~24K to ~4K prompt tokens. Cheaper, faster, and far easier for a small local model to handle.
    • Context budgeted to what the model can actually use. MIRA sizes the working window to a model’s reliable range instead of an inflated advertised maximum, keeps injected memory and wiki context to a modest share of it, and now counts tool schemas in its token estimate. A startup sanity check for LM Studio and Ollama warns when your configured context length doesn’t match the model’s actually-loaded window — a common cause of silent truncation.
    • Steadier thinking. The degeneracy guard now also watches the reasoning stream, so a model stuck repeating itself while “thinking” is caught and the turn fails early instead of running to the token cap. Large tool results are clamped to the effective window mid-conversation so they can’t overflow a small model.
    • Fewer sharp edges. System content is coalesced into one leading block, so strict local chat templates no longer return HTTP 400 from stacked system messages. Config saves are atomic — an interrupted or racing save can’t truncate your live config. And a provider key you set in the UI wins over a stale .env value, with a warning when .env would shadow it.
  2. v0.318.0

    Sturdier apps and more reliable local models

    • Apps talk to HTTP services more reliably. App HTTP-tool base URLs work with or without a trailing slash — no more doubled slash sending an app pointed at, say, a Home Assistant instance into spurious 404s. Large API responses are trimmed to a small model-facing size before the model sees them, so a big reply can’t blow up the context, and an app can now declaratively project a few fields (with a row limit) to collapse a large JSON reply into a compact list — no code execution involved.
    • Edit app settings in the UI. The in-app config panel for apps (from v0.317.0, folded into this build) lets you change an app’s settings right in the interface.
    • Local models kept in their reliable zone. MIRA now budgets local providers to a small, dependable effective context window (default 8192 tokens) instead of trusting an advertised size that quantized local models don’t genuinely attend to — keeping prompts reliable and enabling compaction. An explicit context length still wins.
    • Degenerate-output guard, on by default. If a model gets stuck emitting pathologically repetitive text, MIRA cuts it off early, discards the bad turn, and counts it as a provider error so failover can take over. Guardian also picks a sensible triage model when none is configured.
  3. v0.316.1

    Guardian and tool-selection bug fixes

    • Guardian stops proposing pointless channel restarts. A quiet Signal channel — no inbound in 72h — reflects your activity, not daemon health, so it no longer escalates to a Red alert; it’s at most an informational note, and Guardian validates any restart target against real channel accounts before proposing one.
    • MIRA stops claiming it lacks a tool it has. With adaptive tool selection on, MIRA now knows how many tools are loaded versus loadable on demand, and searches before telling you a capability is unavailable — fixing cases where a not-yet-loaded tool was wrongly reported as missing.
  4. v0.316.0

    Built web apps work behind a reverse proxy

    • Open your built web apps from anywhere — including behind a reverse proxy. MIRA now serves each app the coding agent builds from its own main URL, at /a//. Because that is the same address you already expose, built apps open correctly behind a reverse proxy (Traefik, Caddy, nginx) or tailscale serve — no separate app port to expose, and no extra proxy config. They keep working on your LAN and from the mobile app too.
    • Isolation preserved. Untrusted, model-generated app code still runs in a sandboxed frame with its own opaque origin, so it cannot read your MIRA session or call the API even though it is served from the same host.
    Open built web apps
  5. v0.313.0

    Guardian sentinel: faster alarms, reliable delivery, one-click enable

    • Faster down-alarms. The “MIRA is down” alarm now fires immediately when the sentinel declares MIRA down; the optional local-model triage that adds detail runs afterward, so a slow or unavailable model can never delay the alarm.
    • No more silent failures. If an alarm reaches no device, that’s now treated as a failure — logged loudly and recorded — instead of looking like a success. The Guardian panel warns when the sentinel is watching but can’t reach anyone, and checks this at startup.
    • One-toggle enable. Turning on the liveness sentinel in Settings → Guardian now automatically registers and starts it as its own supervised service, and turning it off stops and unregisters it — no separate install step (the CLI commands remain for headless setups).
    • Configurable logging. The sentinel shares MIRA’s main log file by default, or point it at its own file under Settings → Guardian → Sentinel log file.

    For a down-alarm to reach you while MIRA is offline, register at least one push device — open MIRA in a browser and allow notifications.

  6. v0.311.0

    Guardian sentinel installer, now on macOS and Windows

    • The independent Guardian liveness sentinel — the watchdog that keeps watching even when MIRA crashes, hangs, or restart-loops, and raises a direct alarm to your device — now installs as a supervised service on all three desktop platforms, not just Linux.
    • mira guardian-install registers the sentinel as its own service, deliberately separate from the main MIRA service so it outlives a MIRA crash: a systemd unit on Linux, a launchd agent on macOS, and a dedicated service on Windows. mira guardian-uninstall removes it, and mira uninstall cleans up both.
    • Still off by default — enable and tune it under Settings → Guardian → Liveness sentinel, then run mira guardian-install.
  7. v0.310.0 covers v0.307–v0.310

    The fully independent, agentic Guardian

    • Agentic triage. Guardian now investigates before it diagnoses — actively calling read-only tools for a full health snapshot and logs, its built-in docs, and relevant past context, then reasoning over what it finds. Fail-closed local-only throughout.
    • Delivered in MIRA’s voice when it can. While MIRA is up, Guardian hands its message to MIRA over a local shared-secret endpoint, so you hear it across your usual channels — Signal, Telegram, email — with direct web-push as the fallback.
    • Optional full-time watch. An opt-in setting lets Guardian own the whole watch and triage, running even while MIRA is up, while MIRA’s in-process watcher stands down so the two never double-alert.
  8. v0.306.0

    Independent triage in Guardian’s own process

    • With a local model configured, Guardian runs a real, fail-closed local-only triage turn in its own process — reasoning over the health data to deliver a charter-voiced alert with a concrete next step, independent of a down MIRA. If no local model is reachable it falls back to the plain alarm, so an alert never fails to fire.
  9. v0.305.0

    Alarms carry MIRA’s last-known health

    • A “MIRA is down” alarm now also reports what Guardian last saw — e.g. “last health check 2h ago showed Red: db.integrity, disk.free” — so you get context, not just “it’s down.”
  10. v0.304.0

    Guardian installs as its own service

    • mira guardian-install / guardian-uninstall register Guardian as its own service unit, deliberately not bound to MIRA’s, so it survives a MIRA crash. Linux/systemd today; macOS and Windows to follow.
  11. v0.303.0

    Out-of-process liveness sentinel

    • mira guardian-watch is a separate, supervised process that probes MIRA’s health and, if MIRA goes down for a sustained window, sends a direct web-push alarm — working even with MIRA fully offline. Off by default.
  12. v0.302.0

    Universal duty-of-care safety floor

    • A short, non-overridable safety instruction now rides every user-facing turn, not just companion chats: never describe methods of self-harm, and take self-harm or acute physical symptoms seriously — with warmth and a crisis line. It’s the final word in the system prompt, so no persona or setting can silence it.
  13. v0.301.0

    Guardian gets its own voice and a tiered local model

    • The watchdog now speaks in its own charter — quiet, precise, non-alarmist — and runs a tiered local model: a light model for routine notes, escalating to a stronger one only for real triage. Both tiers are fail-closed local-only. Configurable in Settings → Guardian.
  14. v0.300.1

    Web-app links, service-account CLI resolution, automation spawns

    • Built web apps always open at their link. If a build names its single page something other than index.html (e.g. game.html), MIRA promotes it, so the app stays discoverable and openable.
    • Honest web-app links. MIRA only ever hands you a URL a tool actually returned — never a guessed or reconstructed one — and reports a failed build plainly instead of inventing a link. In the web chat, app links now open in a new browser tab, so opening a built app never navigates you away from the conversation.
    • External coding CLIs resolve under a service install. claude and opencode are now found when MIRA runs as a supervised service — it looks under the configured data directory and the owning user’s home, fixing “CLI not on PATH” under a Windows or systemd service.
    • Scheduled automations can spawn background tasks. An automation’s turn now carries caller identity, so delegating long-running work from a scheduled task no longer fails instantly.
    Open built web apps
  15. v0.300.0

    Provider & tooling hardening

    • Portable tool calls. Tools use a portable schema dialect, with a registration-time linter that warns when any tool — including MCP tools — uses something a provider can’t accept.
    • The provider you pick is the provider that runs. Your selected model provider now drives the entire turn, for every provider.
    • Clearer failures. Uniform, legible provider errors; failover aggregates each provider’s reason, with a concise per-turn summary.
    • Trustworthy health signals. A primary provider going down is raised as a persistent health degradation that auto-clears on recovery.
    • Bad models caught at config time. Saving a provider runs a real 1-token generation test that catches deprecated or unauthorised models a plain catalog listing would miss.
  16. v0.299.0

    Context management + cross-provider caching

    • Long conversations, managed. Threads are packed to a token budget you set (Settings → Agent). When a thread grows past the budget, older turns fold into a rolling summary — facts, decisions, open threads, preferences — while recent turns stay verbatim, with a safeguard that captures each turn before it can be dropped so nothing is silently lost.
    • Prompt caching that works across providers, with cached-token accounting and per-turn cache instrumentation.
    • Tool calls that work on every provider. Tool schemas are normalised per provider, with real API errors surfaced instead of silent failures.
  17. v0.298.0

    Keep conversations on-device

    • Fail-closed, local-only provider failover — MIRA won’t silently fall back to a cloud provider when a local one is unavailable.
    Keep conversations local
  18. v0.297.0

    Remote access

    • Reach your self-hosted server from anywhere over Tailscale — including a docker-compose sidecar recipe.
    Remote access
  19. v0.296.0

    Built web apps, live

    • The coding agent serves the apps and games it builds at a clickable link.
    Open built web apps
  20. v0.295.0

    Self-update & rollback

    • Update MIRA and roll back to an earlier build from a new Settings → Updates card.
    Updating & rolling back

Older releases and full notes live on GitHub

Get the latest build.

Free and open source. Up and running in one command. Yours forever.