Documentation

Installation

unlose is a Windows service + desktop app (Windows 10/11 x64, admin rights). The service registers itself, starts with the system, and protection is on by default.

The installer is a self-contained MSI unlose-setup-x64.msi (~140MB) with the .NET runtime bundled: double-click on any clean Windows 10/11 x64 machine — no prerequisites, works fully offline (air-gapped / corporate networks).

Official builds are available from this website or the official GitHub repository only. The current release is unsigned; the code is fully open source (Apache-2.0) and auditable, and a signed build will follow in a later Release. Always verify the SHA256 checksum against the value published on each Release page.
If Windows shows "Windows protected your PC" on first run: click "More info" → "Run anyway". This is SmartScreen's default prompt for unsigned software (shown once), not a virus warning — just verify the SHA256 matches the official value.

Get the latest release: Direct download (recommended in China — auto-routed to a domestic mirror) · GitHub Releases.

Looking for older releases and SHA256 checksums? All releases →
Current v1.0.9 SHA256:
19341FBF3CD8A40CC7CF0EF9F32EDA804B12AE223C6B8DDCEA1587B4B99D0951

# Double-click to install, or silently from the command line:
msiexec /i unlose-setup-x64.msi /quiet

# Service registers as unloseService and starts immediately

# Verify SHA256 with PowerShell (compare to the value above)
Get-FileHash unlose-setup-x64.msi -Algorithm SHA256

Quick start

No configuration needed. The service runs in the background: snapshots automatically when an AI agent starts, and at three fixed times daily by default (08:00 / 13:00 / 18:00; switchable to 6/12/24/48h intervals in Settings). Open the UI to see protection status and all historical time points.

# Open the main UI (Start menu or tray icon)

# Check status
unlose status

# List snapshots
unlose list-snapshots

CLI reference

The CLI uses strict exit codes (0=success / 1=operational failure / 2=usage error) — script-friendly.

# Manual snapshot
unlose snapshot --label "protecting before I work"

# Restore (a safety snapshot is taken automatically beforehand)
unlose restore-snapshot <id>

# Full command set
unlose snapshot [--label <text>]
unlose status
unlose list-snapshots
unlose delete-snapshot <id>
unlose restore-snapshot <id>

Restoring data

Two ways to restore: the desktop UI (recommended, visual) and the CLI (scripting).

Immersive restore: dual-pane timeline comparing historical snapshot vs. current state, four-color diff for deleted/modified/added files, line-level diff down to individual lines. Pick individual files or directories (directories include subtrees, auto-deduped) and restore them to a new directory of your choice — current files are never overwritten. Full-volume in-place restore is off by default: enable it in Settings (non-system volumes only; use Windows System Restore for the system drive) and type a confirmation phrase to proceed.

unlose auto-snapshots before every restore — even a failed restore never costs you the current state.

AI agent integration

unlose detects 30+ mainstream AI agents out of the box (Claude Code, Cursor, Copilot, Gemini CLI, Kimi, Qwen, Codex, DeepSeek and more) and snapshots automatically when a session starts.

Unique "global memory injection": on install, unlose idempotently injects a protection directive into your ~/AGENTS.md and installed agents' global memory files (original content preserved, injection block clearly marked) — the AI reads it itself: "snapshot before sessions, snapshot before dangerous operations, recover with unlose". Fully removed on uninstall, zero residue.

# MCP Server (AI tools call snapshot capabilities via MCP)
# Example config (copyable from Settings page):
{
  "mcpServers": { "unlose": { "command": "unlose", "args": ["mcp"] } }
}

# Skill file ships with the product: unlose-snapshot.skill.md

Security & privacy

unlose is a security tool; privacy is a design baseline:

  • Zero telemetry: no usage data, no account, no cloud
  • Never records screen, audio, keystrokes, or file contents for inspection — filesystem snapshots only
  • Snapshots live in VSS shadow storage — not ordinary files, so file-level deletion (including AI agents and ransomware) cannot reach them
  • Named-pipe IPC is ACL-restricted; restore requests have path-traversal protection
  • Logs stay local: %ProgramData%\unlose\logs

Found a vulnerability? Report via GitHub Private Advisory or [email protected] (48h acknowledgment, 7-day initial assessment, 30-day fix or mitigation).

Building from source

Requires the .NET 8 SDK on Windows 10/11 x64. The full test suite runs locally.

git clone https://github.com/unlose-app/unlose.git
cd unlose
dotnet build src/Unlose.sln -c Release
dotnet test src/Unlose.Tests    # 147 unit tests
Code is Apache-2.0; the unlose name and logo are trademarks — fork it, but rename it (see TRADEMARK.md).

How we count

The unlose software itself has zero telemetry: no usage data, no account, never "phones home". This website uses privacy-friendly Umami analytics (no cookies, no personal data) to improve its content. Our policy is fully public:

  • Software: zero telemetry, no data reporting of any kind; the once-a-day update check fetches a static version file from this site and carries no user or machine information
  • Website: Umami analytics (no cookies, no personal data, self-hostable) for page views and download clicks — used only to improve this site
  • Downloads: the public counters on GitHub Releases are the source of truth (GitHub API)
  • All metrics are published in the monthly transparent report — we publish even when revenue is $0

In short: your files and actions belong to you; our counting stops at anonymous visits to these web pages.

Security policy

See SECURITY.md in the repository: report via GitHub Private Advisory or [email protected]; SLA is 48h acknowledgment / 7-day initial assessment / 30-day fix or mitigation.

Scope note: unlose is a post-incident safety net, not a command interceptor. Destructive commands are never blocked — that is what interceptors are for.