MIRA (which stands for Multi-tasking Intelligent Responsive Assistant) is a self-hosted, personal AI agent designed to run on your own hardware.
Rust
8
83 commits
updated Sep 9, 2026
Multi-tasking Intelligent Responsive Assistant
"Your life's loyal partner. Always ready to assist."
A self-hosted personal AI agent that runs on your hardware and reaches you on the apps you already use — Signal, Telegram, Discord, the web, and more. A project of Vexillon.
Documentation · Install · Releases · Issues
![]() Proactive check-ins — MIRA reaches out first | ![]() Presence — tune its rhythm & personality |
![]() MCP — extend it with external tool servers | ![]() Skills — bundled tools, scoped permissions |
![]() Terminal UI — the full agent in your shell | ![]() Providers — multi-provider health at a glance |
Most AI assistants live in one app, on someone else's cloud, with a memory that resets every conversation. MIRA inverts all three:
| 💬 Channels | Web, Telegram, Signal, Discord, Matrix, WhatsApp, Slack, Email (IMAP/SMTP + OAuth), Web Push — plus external channels over the Channel Provider Protocol ("MCP for channels"). |
| 🔔 Proactive / companion | Quiet-hours-aware check-ins and a daily briefing built from your calendar, wiki, and automations — per-user, opt-in, as text or voice. |
| 🎙️ Voice | Built-in TTS (Kokoro, Piper, eSpeak, OpenAI-compatible) and STT (Whisper), with per-channel routing and per-user policy. |
| 🧠 Memory & knowledge | Auto-extracted atomic facts with semantic recall, optional experimental knowledge-graph memory, and a per-user + system wiki. |
| 🛠️ Tools | Web search/fetch, URL preview, sandboxed code execution, opt-in shell, calendar, PDF extraction, summarisation, history recall, background sub-agents. |
| 🔌 MCP host mode | Connect external MCP servers (stdio or Streamable-HTTP); tools hot-reload and surface as mcp__<server>__<tool>. |
| ⏰ Automations | Cron-scheduled and event-triggered actions, plus internal heartbeats (watchdog, memory janitor, rollups). |
| 🧩 Skills & agents | Signed, packaged units of capability, and spawnable background sub-agents. |
| 🔐 Security & multi-user | Per-user JWT accounts, admin/user roles, a tool-policy layer, a per-skill secrets vault (AES-256-GCM), secret redaction, optional nginx reverse proxy. |
| ♻️ Backup & restore | One-click or scheduled encrypted backup of the whole data directory, with a safe two-phase restore. |
mcp__<server>__<tool>.MIRA also ships this documentation built in — ask it "what can you do?" See mira-docs/features.md for the full tour.
MIRA is a self-hosted personal AI agent. You run it on your own hardware; it talks to whichever LLM provider you configure (Anthropic, OpenAI, OpenRouter, DeepSeek, Gemini, or a local / OpenAI-compatible server). Your conversations, memory, and data stay on your machine.
The core is Rust (~156k LOC) for a small, memory-safe, edge-deployable footprint, with a React web UI and a terminal UI.
Design principles
Public beta. Every release archive ships with a
SHA256SUMSand a minisign.minisigsignature — see verifying a download below.
Quick install — Linux / macOS:
curl -fsSL https://get.vexillon.ai/install.sh | sh
Quick install — Windows (PowerShell):
irm https://get.vexillon.ai/install.ps1 | iex
The installer detects your platform, downloads and verifies the signed build, places mira on your PATH, and runs the guided mira setup. Pin a version with … | sh -s -- --version 0.272.0 (or -Version 0.272.0 on Windows).
Or download manually — grab the archive for your platform from Releases, extract the mira binary onto your PATH, then run the guided setup:
mira setup # admin account, LLM provider, security
mira install # register the OS service (systemd / launchd / Windows SCM)
# then finish onboarding in the web UI
Docker — the repo ships a multi-stage Dockerfile (web build → rust build → slim Debian runtime with JRE + signal-cli) and a docker-compose.yml:
docker compose up -d
# open http://localhost:8080 (MIRA_PORT=9090 to change the host port)
The compose file mounts ./data into the container at /data (config, history DB, signal-cli keystores, logs) — back up that directory to back up your install. Inside the container the Docker daemon is the supervisor: restart: unless-stopped honours the web UI's Restart button.
See the installation guide for the full deployment matrix.
sha256sum -c SHA256SUMS
minisign -Vm mira-<version>-<target>.tar.gz \
-P RWQX8PcjZB3S8i1V9AkZgUKoIy+eZWRzaEHKvBW9U/mkMP9Vp0B8xOaO
# trusted comment must read: signed by vexillon.ai — MIRA <version>
┌──────────────────────────────────────────────────────────────┐
│ CHANNELS │
│ Web · Telegram · Signal · Discord · Matrix · WhatsApp · │
│ Slack · Email · Web Push · External providers (CPP) │
└───────────────────────────┬──────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────┐
│ GATEWAY (single process: HTTP/web API · channel pollers · │
│ schedulers · auth) │
│ │
│ Agent core ── Model router (multi-LLM) │
│ │ Memory + Wiki │
│ │ Tool registry · MCP host │
│ │ Skills · Sub-agents │
│ │ Automations / scheduler │
└──────┼───────────────────────────────────────────────────────┘
▼
Data directory (~/.mira/data): auth/user DB, memory DB, wiki,
companion DB, automations, channel accounts, artifacts, TTS models
A single gateway process hosts the agent, the HTTP/web API, the channel pollers, and the schedulers. Global/operator settings live in mira_config.json (admin-managed); per-user settings (voice, companion, channel accounts, connected MCP servers) live per account.
mira/
├── src/ # Rust core (~156k LOC)
│ ├── gateway/ # HTTP/web API, routing, control plane
│ ├── agent/ # agent loop, tool orchestration
│ ├── providers/ # LLM provider adapters (Anthropic, OpenAI, …)
│ ├── channel*/ # channel framework + per-channel impls
│ ├── discord, matrix, slack, whatsapp, email # built-in channels
│ ├── memory/, wiki/ # memory + knowledge
│ ├── tools/ # built-in tools
│ ├── mcp/ # MCP host mode
│ ├── automations/, companion/ # scheduling + proactive
│ ├── skills/ # skills system
│ ├── tts/, stt/, voice/ # speech
│ ├── sandbox/, packages/, privhelper/ # execution confinement + elevation
│ ├── security/, policy/, auth/ # multi-user security
│ └── tui/, server/ # terminal UI + server mode
├── web/ # React web UI + landing page
├── docs/ # public user documentation (guides, how-tos, reference)
├── mira-docs/ # built-in self-knowledge docs (compiled into the binary)
├── config/ # config schema
├── bundled-skills/ # skills shipped with MIRA
├── Dockerfile, docker-compose.yml
├── LICENSE # GNU AGPL-3.0
└── NOTICE # copyright + license summary
Copyright (C) 2026 Tarek El Diab — a project of Vexillon.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License, version 3 (or, at your option, any later version) as published by the Free Software Foundation. See the LICENSE file for the full text.
It is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Because MIRA can be operated over a network, the AGPL's §13 applies: if you run a modified version as a network service, you must offer its users the corresponding source.
MIRA's design drew on a comparative study of existing agent frameworks — OpenClaw, ZeroClaw, IronClaw, memU, SuperAGI, Hermes Agent, nanobot, and Agent Zero. All are open-source projects with their own licenses; see their respective repositories.
83 commits
Rust
83.3%
TypeScript
13.3%
CSS
2.7%
MIRA (which stands for Multi-tasking Intelligent Responsive Assistant) is a self-hosted, personal AI agent designed to run on your own hardware.
Rust
8
83 commits
updated Sep 9, 2026
Multi-tasking Intelligent Responsive Assistant
"Your life's loyal partner. Always ready to assist."
A self-hosted personal AI agent that runs on your hardware and reaches you on the apps you already use — Signal, Telegram, Discord, the web, and more. A project of Vexillon.
Documentation · Install · Releases · Issues
![]() Proactive check-ins — MIRA reaches out first | ![]() Presence — tune its rhythm & personality |
![]() MCP — extend it with external tool servers | ![]() Skills — bundled tools, scoped permissions |
![]() Terminal UI — the full agent in your shell | ![]() Providers — multi-provider health at a glance |
Most AI assistants live in one app, on someone else's cloud, with a memory that resets every conversation. MIRA inverts all three:
| 💬 Channels | Web, Telegram, Signal, Discord, Matrix, WhatsApp, Slack, Email (IMAP/SMTP + OAuth), Web Push — plus external channels over the Channel Provider Protocol ("MCP for channels"). |
| 🔔 Proactive / companion | Quiet-hours-aware check-ins and a daily briefing built from your calendar, wiki, and automations — per-user, opt-in, as text or voice. |
| 🎙️ Voice | Built-in TTS (Kokoro, Piper, eSpeak, OpenAI-compatible) and STT (Whisper), with per-channel routing and per-user policy. |
| 🧠 Memory & knowledge | Auto-extracted atomic facts with semantic recall, optional experimental knowledge-graph memory, and a per-user + system wiki. |
| 🛠️ Tools | Web search/fetch, URL preview, sandboxed code execution, opt-in shell, calendar, PDF extraction, summarisation, history recall, background sub-agents. |
| 🔌 MCP host mode | Connect external MCP servers (stdio or Streamable-HTTP); tools hot-reload and surface as mcp__<server>__<tool>. |
| ⏰ Automations | Cron-scheduled and event-triggered actions, plus internal heartbeats (watchdog, memory janitor, rollups). |
| 🧩 Skills & agents | Signed, packaged units of capability, and spawnable background sub-agents. |
| 🔐 Security & multi-user | Per-user JWT accounts, admin/user roles, a tool-policy layer, a per-skill secrets vault (AES-256-GCM), secret redaction, optional nginx reverse proxy. |
| ♻️ Backup & restore | One-click or scheduled encrypted backup of the whole data directory, with a safe two-phase restore. |
mcp__<server>__<tool>.MIRA also ships this documentation built in — ask it "what can you do?" See mira-docs/features.md for the full tour.
MIRA is a self-hosted personal AI agent. You run it on your own hardware; it talks to whichever LLM provider you configure (Anthropic, OpenAI, OpenRouter, DeepSeek, Gemini, or a local / OpenAI-compatible server). Your conversations, memory, and data stay on your machine.
The core is Rust (~156k LOC) for a small, memory-safe, edge-deployable footprint, with a React web UI and a terminal UI.
Design principles
Public beta. Every release archive ships with a
SHA256SUMSand a minisign.minisigsignature — see verifying a download below.
Quick install — Linux / macOS:
curl -fsSL https://get.vexillon.ai/install.sh | sh
Quick install — Windows (PowerShell):
irm https://get.vexillon.ai/install.ps1 | iex
The installer detects your platform, downloads and verifies the signed build, places mira on your PATH, and runs the guided mira setup. Pin a version with … | sh -s -- --version 0.272.0 (or -Version 0.272.0 on Windows).
Or download manually — grab the archive for your platform from Releases, extract the mira binary onto your PATH, then run the guided setup:
mira setup # admin account, LLM provider, security
mira install # register the OS service (systemd / launchd / Windows SCM)
# then finish onboarding in the web UI
Docker — the repo ships a multi-stage Dockerfile (web build → rust build → slim Debian runtime with JRE + signal-cli) and a docker-compose.yml:
docker compose up -d
# open http://localhost:8080 (MIRA_PORT=9090 to change the host port)
The compose file mounts ./data into the container at /data (config, history DB, signal-cli keystores, logs) — back up that directory to back up your install. Inside the container the Docker daemon is the supervisor: restart: unless-stopped honours the web UI's Restart button.
See the installation guide for the full deployment matrix.
sha256sum -c SHA256SUMS
minisign -Vm mira-<version>-<target>.tar.gz \
-P RWQX8PcjZB3S8i1V9AkZgUKoIy+eZWRzaEHKvBW9U/mkMP9Vp0B8xOaO
# trusted comment must read: signed by vexillon.ai — MIRA <version>
┌──────────────────────────────────────────────────────────────┐
│ CHANNELS │
│ Web · Telegram · Signal · Discord · Matrix · WhatsApp · │
│ Slack · Email · Web Push · External providers (CPP) │
└───────────────────────────┬──────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────┐
│ GATEWAY (single process: HTTP/web API · channel pollers · │
│ schedulers · auth) │
│ │
│ Agent core ── Model router (multi-LLM) │
│ │ Memory + Wiki │
│ │ Tool registry · MCP host │
│ │ Skills · Sub-agents │
│ │ Automations / scheduler │
└──────┼───────────────────────────────────────────────────────┘
▼
Data directory (~/.mira/data): auth/user DB, memory DB, wiki,
companion DB, automations, channel accounts, artifacts, TTS models
A single gateway process hosts the agent, the HTTP/web API, the channel pollers, and the schedulers. Global/operator settings live in mira_config.json (admin-managed); per-user settings (voice, companion, channel accounts, connected MCP servers) live per account.
mira/
├── src/ # Rust core (~156k LOC)
│ ├── gateway/ # HTTP/web API, routing, control plane
│ ├── agent/ # agent loop, tool orchestration
│ ├── providers/ # LLM provider adapters (Anthropic, OpenAI, …)
│ ├── channel*/ # channel framework + per-channel impls
│ ├── discord, matrix, slack, whatsapp, email # built-in channels
│ ├── memory/, wiki/ # memory + knowledge
│ ├── tools/ # built-in tools
│ ├── mcp/ # MCP host mode
│ ├── automations/, companion/ # scheduling + proactive
│ ├── skills/ # skills system
│ ├── tts/, stt/, voice/ # speech
│ ├── sandbox/, packages/, privhelper/ # execution confinement + elevation
│ ├── security/, policy/, auth/ # multi-user security
│ └── tui/, server/ # terminal UI + server mode
├── web/ # React web UI + landing page
├── docs/ # public user documentation (guides, how-tos, reference)
├── mira-docs/ # built-in self-knowledge docs (compiled into the binary)
├── config/ # config schema
├── bundled-skills/ # skills shipped with MIRA
├── Dockerfile, docker-compose.yml
├── LICENSE # GNU AGPL-3.0
└── NOTICE # copyright + license summary
Copyright (C) 2026 Tarek El Diab — a project of Vexillon.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License, version 3 (or, at your option, any later version) as published by the Free Software Foundation. See the LICENSE file for the full text.
It is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Because MIRA can be operated over a network, the AGPL's §13 applies: if you run a modified version as a network service, you must offer its users the corresponding source.
MIRA's design drew on a comparative study of existing agent frameworks — OpenClaw, ZeroClaw, IronClaw, memU, SuperAGI, Hermes Agent, nanobot, and Agent Zero. All are open-source projects with their own licenses; see their respective repositories.
83 commits
Rust
83.3%
TypeScript
13.3%
CSS
2.7%