How-to guides

How-to guides

Task-focused recipes. Each one assumes you already know the basics and gets you straight to a single goal.

Spaces

Create a space

  1. 1Click Create Space on the Shared Spaces screen.
  2. 2Give the space a name and pick an icon.
  3. 3Click Initialize Space. Mirall confirms with Space Created.
  4. 4Click Done. You now have a space to yourself — invite people from inside it.

Creating a space doesn't hand you an invite. Open the space and use Invite when you're ready to add someone.

Join a space

  1. 1Click Join Space on the Shared Spaces screen.
  2. 2Paste the invite link you received. Both the mirall://join/… link and the bare code work.
  3. 3Optionally give the space a local name — only you will see it.
  4. 4Click Join Space.

Unless the invite was set to auto-approve, joining is a request: your screen reads Waiting to be let into the space until an existing member approves you. You can leave the window open — you'll be admitted automatically as soon as a member is online, and you don't need to be online at the moment they approve. Until then the space's contents stay closed to you, and the only action available is Cancel request.

Once someone approves you, the space opens and its files appear. If the invite had auto-approve turned on, nobody has to decide — you are let in as soon as your device reaches a member of the space.

An invite link has an expiry. If yours has lapsed, Mirall tells you the link has expired — ask the person who sent it for a new one.

Mirall showing it is waiting to be let into a space, with the existing members' avatars and a Cancel request button

Invite people to a space

Open the space and click Invite. The dialog asks you two things before it mints a link:

  • Auto-approve — off by default. Leave it off and everyone who uses the link asks to join, and you approve each one. Turn it on and nobody has to approve: anyone holding the link is let in as soon as their device reaches a member of the space.
  • Link expires after2 hours, 2 days, or 2 weeks. After that the link stops working and Mirall refuses anyone who tries to use it.

Click Create invite link. Mirall shows a single mirall://join/… link, tagged with the choices you made, and a Copy button. Send it however you like — chat, email, anything. The same link works for as many people as you want to admit, until it expires. Change takes you back to adjust the settings; Done closes the dialog.

The link carries the space name, so the person joining sees what they're joining. It does not carry the key to the space — that is handed over by a device that is already a member, so someone has to be online and reachable when the link is used, auto-approve or not.

Mirall's Invite to Space dialog with an auto-approve toggle and a link expiry choice of 2 hours, 2 days, or 2 weeks

Approve or deny join requests

When someone uses an invite that isn't set to auto-approve, they stay outside the space until a member lets them in. Any member can do this — not just whoever created the space.

A banner appears at the top of the space reading “<name> wants to join”, with Approve and Deny beside it. Approving hands them the key to the space's contents; denying turns them away.

When several people are waiting, the banner collapses into a stack of avatars and a count — “3 people want to join” — with a Review button. That opens Requests to join, where you can tick individuals and Approve selected, take everyone at once with Approve all, or deny someone from their row.

Requests reach you in three places: the banner inside the space, a notice in the app with a Review button that takes you there, and a “1 waiting” pill on that space's tile in the Shared Spaces overview. The notice only appears while Mirall's window is open — there is no desktop notification for join requests, so one that arrives while the window is closed waits for you inside the space.

A request only needs handling once. As soon as any member approves or denies someone, the banner clears for everyone else in the space.

Mirall's “Requests to join” dialog listing people waiting to join, with Approve selected and Approve all buttons

Fix a join that gets stuck

Someone follows your invite link, their screen reads Waiting to be let into the space, and nothing appears on yours. That almost always means the request never reached a member's device — not that you missed a button.

  1. 1Check both devices are running Mirall. A join request travels straight from one device to the other, so a member of the space has to be online and running Mirall at the moment the link is used. A closed app or a sleeping laptop on your side is enough to stall it. Running in the background counts — Mirall in the menu bar or the notification area is reachable.
  2. 2Look where the request actually appears. The banner is inside the space. From the Shared Spaces overview all you get is a “1 waiting” pill on that space's tile. Mirall also raises a notice with a Review button, but only while the window is open — there is no desktop notification for join requests.
  3. 3Check your own connection. Open your Profile page and click Connection. If the headline reads Connecting to the Mirall network… rather than Network is healthy, nothing can reach you yet. Open Show advanced details and read the Suggestions underneath — that is where “Your router appears to be blocking inbound UDP” and the warnings about your network type appear.
  4. 4Rule out a firewall or a VPN. Mirall connects over UDP, and a VPN, a company network, or a firewall that blocks it will stop two devices finding each other. On Windows, open Windows Security → Firewall & network protection → Allow an app through firewall and check that Mirall is ticked for both Private and Public — the prompt shown on first launch is easy to dismiss by accident. If you are on a VPN, try again with it off. Sharing a phone's connection has the same effect: both devices end up behind the carrier's network, where a direct connection often cannot be made.
  5. 5Leave both apps running. A device that is waiting keeps knocking on its own, so once you are reachable the request arrives without anyone having to paste the link again.

Auto-approve changes none of this. It removes the decision, not the hand-over: the link carries the address of the space, never the key to it, so a device that is already a member still has to be reachable to let someone in. Until one is, the person joining waits exactly as they would without it.

Favorite a space

Star any space to pin it to Favorites. On the Shared Spaces screen you can filter the list by All Spaces or Favorites. You can also add a space to Favorites from the More menu inside the space.

Leave a space

Open the space, open the More menu, and choose Leave Space. Mirall cancels any in-flight transfers and drops the space's records from your device. Files you've already downloaded, and any folder you were mirroring, stay where they are — they're yours.

If you're waiting to be approved rather than already a member, the same button reads Cancel request and simply withdraws your request.

Files

Share individual files

Drag files onto the Drop to Share zone in the sidebar, or use Share… to pick them from your computer. While you drag a file over the space, the drop zone grows to fill the whole area, so you don't have to aim carefully. Mirall offers the file to the space right away.

Mirall shares the file in place, straight from the original on your disk. Sharing never doubles a file's disk usage, and when you edit a shared file, the change is picked up where it lies.

There's no size limit. Hundreds of gigabytes, or a file into the terabytes, all work the same way — content is streamed in chunks rather than uploaded as a whole. Mirall does need a moment to index a file before sharing can start, so expect a short Preparing step on something that large. Members waiting on it can watch that preparation progress rather than staring at a blank spinner.

Want to share a whole folder instead of picking files? See Share a whole folder.

Download a file

Click the download button on any file shared by another member. The file transfers directly from their device to yours, showing live progress, average speed, and an estimate of the time remaining. Downloads land in your chosen download folder.

When a download finishes, a green shield appears next to the file. That's Mirall confirming the contents it received match the owner's original exactly.

Pause, resume, cancel, or retry a transfer

If your network drops or the member you're downloading from goes offline, the transfer pauses on its own and picks back up from where it left off once that person is back. You can also take control by hand — the buttons on a file row change with its state:

  • Pause Download — stop a running download. Its progress is kept, so resuming costs you nothing.
  • Cancel — stop a running download outright and throw away what's been received.
  • Resume — continue a paused download from where it stopped.
  • Discard Partial — throw away a download that's paused or stalled and free the space it was using.
  • Retry — reattempt a download that ended in an error; Dismiss clears the failed row instead.

In-progress downloads are written to a .mirall.part file and renamed to their real name only when the transfer completes — an interrupted transfer can't leave a half-written file under its final name.

A mirrored folder has no per-file download controls. To pause or stop everything a folder is pulling, use the mirror's own Pause Mirror, Resume Mirror, and Unmount Mirror actions.

See who's downloading from you

For any file you share, Mirall shows you who is pulling it right now.

While someone downloads a file you've shared, their avatar appears on that file's row, along with a combined progress bar, the transfer speed, and an estimate of the time remaining. If several people are downloading at once, their avatars stack up with a count.

Click the row's indicator to expand it. You'll see each person individually — their name, how far along they are, their own speed, and their own time remaining. Someone who has paused shows as Paused; someone who has dropped offline mid-transfer shows as Waiting.

This works for loose files in a space and for files inside a folder you share. It only appears on files you own — you don't see other people's downloads from other people.

A shared file in Mirall expanded to show each person downloading it, with their avatar, progress, speed, and time remaining

Unshare a file

Use a file's menu and choose Unshare from Space to remove a file you added so it's no longer offered to other members. Files they've already downloaded stay on their devices — unsharing only stops offering new copies. Your own original is untouched.

Folders

Share a whole folder

Share a folder into a space and Mirall keeps it in sync — add, edit, or remove files and everyone in the space sees the change automatically. Subfolders come along too.

  1. 1Open the space you want to share into.
  2. 2Open Add Folder from Share… in the sidebar, the File menu, or Cmd/Ctrl + Shift + U.
  3. 3Choose a folder on your computer with Browse… and give it a share name — how it appears to other members. The name must be unique within the space.
  4. 4Click Next: Preview. Mirall scans the folder and shows what it's about to share — the file count and total size.
  5. 5Click Add Folder. Mirall starts offering the folder's files. Changes you make to the folder later sync to the space automatically.

Folders you share are marked Shared by you. Mirall serves the files straight from the originals, so sharing a folder never doubles its disk usage.

Mirall's Add Folder dialog with a folder path, a share name field, and a Next: Preview button

Browse a folder someone shared

Open a folder another member shared to see what's inside without downloading everything. A folder you're only looking through is marked Browse.

Subfolders are rows you can open and close. Each one tells you what's inside before you open it: how many files it holds and their total size, how many are already on your device, how many are downloading right now, and how many subfolders it contains. Expand all opens the whole tree at once, and flips to Collapse all to fold it back up.

Click Download on any individual file to save just that one, or use Mirror to Disk… to keep the whole folder synced instead.

Folders you leave open stay open as you move around the app. Restarting Mirall resets the tree to its default, with the top-level folders open.

A shared folder in Mirall browsed as a tree, with subfolders showing file counts and sizes and an Expand all button

Mirror a folder to disk

Keep a live, always-up-to-date copy of a shared folder in a folder on your own computer.

  1. 1Open the shared folder and choose Mirror to Disk….
  2. 2Pick a location on your computer with Browse…, then click Next: Preview to see what will be downloaded.
  3. 3Click Start Mirroring. Mirall downloads the contents and keeps them in sync as the owner makes changes.

A mirror is read-only. If you edit a file inside the mirror, Mirall restores it to the owner's version on the next sync. To keep your own edits, copy the file out of the mirror folder first.

A mirror can't be placed directly on a top-level personal folder such as Home, Desktop, Documents, or Downloads. If the mirror's folder already holds a file of your own with the same name as a shared one, your file is left alone and the mirrored copy lands under a different name.

Mirall's Mirror to Disk dialog, picking a location for a read-only copy that stays in sync with the owner's folder

Pause, resume, move, or stop a mirror

  • Pause Mirror — stop syncing for now; the folder stays where it is and won't update until you resume.
  • Resume Mirror — start syncing again from wherever the owner's copy is now.
  • Change Mirror Location… — move the mirror to a different folder on your computer. This one lives on the folder's card in the space view.
  • Unmount Mirror — stop mirroring entirely and remove the mirrored copy. The folder reverts to Browse.

If a write fails — a full disk, or a destination that's become read-only — the mirror pauses rather than erroring, and resumes once there's room.

A mirrored folder in Mirall with every file marked “On your device” and confirmed by a green verified shield

See who's mirroring a folder you shared

A folder you own shows you the people keeping a live copy of it.

Open a folder you share and look for Mirrored by in the sidebar. One person shows by name with their current state underneath. Several stack into a row of avatars with a summary beneath — for example “2 Syncing… · 1 Synced”.

Each person is in one of three states: Synced (their copy matches yours), Syncing… (they're still catching up), or Paused (they've paused their mirror). The states stay accurate even while those people are offline.

The Mirrored by panel on a shared folder in Mirall, showing the people keeping a live copy and whether each is synced, syncing, or paused

Storage & disk space

Choose where downloads go

Open Settings → Storage. The Download Folder section at the top shows where downloads land; Change… opens your OS picker. This is the folder every space uses unless it has one of its own, and the choice persists across restarts. It defaults to your OS Downloads folder.

Not every folder can be used. If the one you pick sits inside — or contains — a folder you share or mirror, Mirall refuses it, because anything downloaded there would be published to your peers. A folder that doesn't exist, or that Mirall can't write to, is refused too. Mirall never creates the folder for you.

Changing this folder doesn't move files you've already downloaded, and it leaves spaces that have set their own download folder alone.

Give one space its own download folder

A space can save its downloads somewhere other than your default — a scratch disk for the project you're cutting, say, while everything else lands in Downloads.

  1. 1Open the space, click More in the header, and choose Edit Space.
  2. 2Under Download Folder, click Change… and pick a folder.
  3. 3Click Save Changes. Closing the dialog without saving discards the change.

A space you leave alone keeps using the folder from Settings → Storage, and the dialog says so: Using the default download folder. Once a space has its own, a Use default folder button appears to put it back.

The same rule applies as for the default folder: a folder that sits inside — or contains — a folder you share or mirror is refused, since anything landing there would be published to your peers. Two spaces may happily share one folder.

Files you already downloaded are never moved. Ones now outside the space's folder simply read as Available again — point the space back at the old folder and they return to On your device without downloading anything twice. Let transfers finish or pause them before you switch.

Mirall's Edit Space dialog showing the Download Folder section with a Change button and a note that the space is using the default download folder

See how much disk space Mirall uses

Open Settings → Storage and look at App Storage. This is what Mirall itself occupies on your device — not your files. Because Mirall shares your files in place, it never keeps a second copy of them, so this figure stays small.

Show details breaks it into two parts:

  • Shared-file index — compact maps of the files you share, never their contents. Freed automatically when you stop sharing a file.
  • App database — your spaces, members, and sync history.
Mirall's Storage settings showing the download folder and the App Storage breakdown into a shared-file index and app database

Free up disk space

Mirall tidies up after itself as it goes, but you can prompt it. In Settings → Storage, open Show details under App Storage and click Free up space. Mirall compacts its own bookkeeping and reports how much it recovered — or tells you storage is already optimized.

This only touches Mirall's own data. Your shared files, your downloads, and your mirrored folders are never removed.

Profile & connection

Edit your profile

Click your avatar in the top-right to open the Profile page. The card at the top holds your display name and picture — change either, then click Save Changes, which appears once there's something to save. The update propagates to every space you're in. Your profile is only shared with the peers you connect with, and a picture must be under 16 MB.

Check how your identity is protected

Your identity in Mirall is a signing key held on your device. The Identity protection row under This device on your Profile page tells you how that key is being kept safe:

  • Your identity key is protected by the system keychain — the normal case. The key is wrapped using your operating system's secure keychain, so copying Mirall's data folder doesn't hand anyone your identity.
  • No system keychain is available — Mirall couldn't reach a keychain on this machine, so your identity key relies on full-disk encryption instead. Turning that on is worth doing here.
  • Identity-key protection is disabled — protection isn't active on this install.

This row is information, not a button — there's nothing to click and nothing to configure.

Fix a connection problem

Your avatar gains a soft pulsing ring when something's wrong — red if you've lost internet, amber while Mirall is trying to recover. No ring means you're connected and ready. When a problem appears, a toast notification offers a Show details link.

Open your Profile page and click Connection for a friendly diagnostics view — useful when a friend can't reach you or a transfer stalls. The headline tells you where you stand:

  • Network is healthy — you are on the Mirall network, with a count of the peers connected across your spaces, or a note that nobody else is online right now.
  • Connecting to the Mirall network… — Mirall is still trying, and it is taking longer than it should. A firewall, a VPN, or your internet provider is the usual reason.
  • You're offline — this device has no internet connection at all. Mirall pauses until it comes back.

Whenever you are not healthy, a Reconnect button sits beside the headline — it makes Mirall try again straight away instead of waiting for the next automatic attempt. Underneath, Suggestions spell out whatever Mirall can see about your setup.

Show advanced details opens the technical view: the addresses and ports Mirall is using, what it can tell about your router, and the state of the directory it uses to find peers. Some of the most useful suggestions only appear once it is open — including “Your router appears to be blocking inbound UDP” and the two warnings about how your network hands out ports.

Things worth checking

  • A VPN. Many route or block the traffic Mirall needs. Try again with it off.
  • Your firewall. On Windows, open Windows Security → Firewall & network protection → Allow an app through firewall and check that Mirall is ticked for both Private and Public. The prompt shown on first launch is easy to dismiss by accident.
  • A company or campus network. Strict networks often block a direct connection between two devices outright.
  • A phone's shared connection. Tethering puts both devices behind the carrier's network, where a direct connection frequently cannot be made.

Settings → Network is a different screen — it sets bandwidth limits and shows no connection status.

Activity log

Review what happened in your spaces

Mirall keeps a record on your device of who joined, left, or was approved, and what was shared and downloaded.

Click your avatar to open Profile, then choose Activity Log under This device. The row itself tells you how many events are recorded.

Search across people, files and folders with the box at the top, and narrow the list with three menus — All spaces, Anyone, and Any time (last 7, 30, or 90 days). The All / Members / Files / Folders / Security buttons filter by kind, and you can press more than one. Every filter you apply becomes a chip you can remove individually, or clear in one go with Clear all.

Events are grouped by day, newest first, with your own actions attributed to You. A refused request or a failed transfer carries a DENIED or FAILED badge. Twenty events load at a time — Load more fetches the next page.

Spaces you have left still appear here, and stay filterable, until their events age out.

Mirall's Activity Log listing recent events — files shared and downloaded, a folder mirrored, and members joining and leaving — with a search box and space, person and date filters above

Choose what Mirall records

Open Settings → Activity Log. Record activity turns recording on and off — it's on to begin with. Turning it off stops new events being written; it doesn't delete anything already recorded, and those events stay searchable and exportable.

Keep events for sets how long they're retained — 30 days, 90 days, or 365 days, with 90 the starting point. Anything older is deleted automatically.

Export as JSON saves every recorded event to a file called mirall-activity-log.json. Delete the log removes them all and asks you to confirm first; it can't be undone.

An export contains raw identifiers — public keys, file paths, and content hashes — rather than the readable sentences you see in the app. Treat the file as sensitive.

The app

Run Mirall in the background

Mirall lives in your menu bar (macOS) or system tray (Windows and Linux). Closing the window keeps the app running so peers stay connected, transfers keep going, and notifications still arrive — click the icon to bring the window back.

Settings → General lets you opt out: Show Mirall in the menu bar on macOS, Run in the background on Windows and Linux. Launch at login starts Mirall quietly with your computer.

To quit Mirall outright rather than close it to the tray, use File → Quit Mirall (Ctrl + Q) on Windows and Linux, or Mirall → Quit (Cmd + Q) on macOS.

Change the language

Mirall ships in five languages — English, German, French, Spanish, and Italian. Your OS locale is detected on first launch. Switch any time under Settings → Appearance → Language; your choice persists across restarts.

Change the theme and display size

Under Settings → Appearance, pick a Theme Mode — Light, System, or Dark (System follows your OS automatically). Set the Display Size to Compact, Cozy, Default, or Spacious, or step through any zoom level with Cmd/Ctrl +, , and 0. Your choice persists across restarts.

On Windows and Linux, Auto-hide the menu bar tucks the menu bar away until you press Alt. Keyboard shortcuts keep working either way.

Configure notifications

Mirall surfaces incoming files and space activity through your operating system's notification center. Open Settings → Notifications. Three switches cover the basics: Show desktop notifications (the master switch), Play sound, and Mute when Mirall is focused, which skips alerts while the window is in front.

Under Events, five per-event toggles let you opt in or out individually:

  • Someone comes online — a member of one of your spaces appears online.
  • Someone goes offline — a member of one of your spaces disconnects.
  • Download finished — a file you're receiving has finished downloading.
  • Download failed — a download could not be completed.
  • Download paused — a download paused because the sender went offline.

Requests to join a space always surface in the app itself, as a banner on the space and a notice you can act on. They don't depend on these settings.

Limit how much bandwidth Mirall uses

Cap how fast Mirall transfers files, so a big download doesn't take the whole line with it.

Open Settings → Network. Under Transfer limits there's a row for Download and one for Upload, each offering Unlimited, 1 MB/s, 5 MB/s, 25 MB/s, or Custom. Both start out unlimited.

Custom reveals a box where you type a figure in kilobytes per second — a plain number, no units to pick. Enter 0 for no limit. Anything below 32 KB/s is rounded up to it, and Mirall tells you so.

A change takes hold within a moment, including on transfers already running. There's nothing to restart and nothing to reconnect.

A limit is a total, not a figure per transfer. Two downloads running under a 5 MB/s cap get roughly half each rather than 5 MB/s apiece, and serving several people at once splits one upload cap between them.

Mirall's Network settings showing Transfer limits, with separate Download and Upload rows offering Unlimited, 1 MB/s, 5 MB/s, 25 MB/s, or a custom figure

Update Mirall

You don't have to do anything — Mirall checks for new versions on its own and downloads them in the background. A staged update is applied the next time you quit and reopen Mirall, on your schedule.

When an update is waiting, a banner appears at the top of the window (you can dismiss it), and the pending version is also shown under App on your Profile page so you can always check what's coming.