Synced
Your server is reachable. Local and remote agree.
Self-hosted knowledge
Storm is a self-hosted, Markdown-native knowledge system with cross-platform clients and first-class access for AI agents through MCP.
curl -fsSL https://dewanshdt.github.io/Storm/install.sh | sudo shDebian / Ubuntu apt bootstrap (from the apt repo). Thensudo storm-server up.Full installation →
01 · Foundation
Storm keeps your knowledge as ordinary Markdown on storage you control. Devices connect to the same server, while the underlying files remain readable, portable, searchable, and easy to back up.
vaults/
├── personal/
├── work/
└── projects/
└── storm.md
state/ ← indexes & registry (sibling, never inside vaults)02 · AI access
Storm exposes your vault through MCP, allowing compatible AI agents to search, read, create, and modify knowledge while the underlying source remains your Markdown vault. MCP is off by default; write tools require writable mode.
list_vaultsget_vaultsearchget_noteget_related_noteslist_tagsrecent_notesget_note_historyget_note_versioncreate_noteupdate_notedelete_noteConceptual · not executed on this page
You
What did I decide about Storm’s sync architecture?
Storm MCP
search(…)get_note(…)
Agent
You decided that the Rust server owns the canonical vault while clients synchronize through the server.
03 · Architecture
Flutter clients on macOS, Android, and web talk to a Rust sync server. The server owns merge, search, and history. AI applications reach the same vault through MCP.
04 · Storage
Storm stores knowledge as Markdown rather than locking it inside a proprietary document format. Grep it, back it up, version it with the tools you already use.
Daily/
└── 2026-08-11.md
Projects/
├── Storm/
└── Website/
Resources/
Archive/05 · Clients
A single Flutter client provides the same Storm experience across desktop, mobile, and web. Download a native build, or open the web UI served by your server.
Apple Silicon desktop client.
Direct APK for your phone.
Bundled with storm-server.
06 · Synchronization
The server owns the canonical vault. Clients keep a local cache and an outbox. When two devices diverge, Storm merges when it can — and when it cannot, the conflict stays visible in the note file.
Synced
Your server is reachable. Local and remote agree.
Offline
Cached knowledge stays available. Creates and edits queue until the server returns.
Conflict
Another device changed this note. Conflicting content remains visible in the file — not a hidden sibling copy.
07 · Installation
Install the server, then get a client for your device.
Install storm-server on Debian or Ubuntu.
Install command →Choose macOS, Android, or Web.
Get a client →Point the client at your Storm server and the token from/etc/storm/storm.env.
Refresh the server through apt when a new release lands. Restart so the new binary is listening.
Update command →08 · Documentation
Storm does not ship a separate docs portal. Operator and architecture detail stays in the repository.