How does Linkly AI protect user data privacy?
Linkly AI is built on a local-first architecture. Your documents, full-text index, vector index, and the embedding model itself all run on your device — nothing is uploaded to any server by default.What stays on your device
- Document originals: stay in their original folders. Linkly AI only reads them — it does not copy or relocate them.
- Full-text index (BM25): built locally with Tantivy.
- Vector index: stored in a local database.
- Embedding model: a local embedding model runs entirely on your device. Apple Silicon Macs automatically use Metal GPU acceleration, and Windows / Linux use GPU acceleration when there’s a discrete graphics card.
- App logs: written to local files only — never auto-uploaded.
Where chat data goes
When the chatbot calls a large language model, where the request goes depends on the provider you choose:Local model
Linkly Official
api.linkly.ai. Requests pass through Linkly’s servers.Third-party direct
User Experience Improvement Program (telemetry)
To help us understand which features are used and how the app is running, Linkly AI sends an anonymous usage report by default:Privacy commitments
- No third-party analytics SDKs (Google Analytics, etc.).
- We do not read your browser history or clipboard.
- No mandatory account login — core features work offline.
- App logs stay on your machine. They are sent to us only if you explicitly share them.
How long does Linkly AI take to finish indexing?
Indexing time depends on the number of files, file types, machine performance, and performance mode. Linkly AI indexes in three stages:Filename quick index (seconds)
Full-text extraction and BM25 index (minutes to hours)
Vector embedding (minutes to hours)
What affects speed
- File count: roughly linear with total time.
- File format: plain text is fastest; PDFs require page parsing.
- Machine performance: Apple Silicon Macs use Metal GPU acceleration for embeddings, which is significantly faster than CPU inference. On Windows / Linux, embeddings use GPU acceleration when there’s a discrete graphics card, and the CPU otherwise.
- Performance mode: pick
Performance / Balanced / Autoin the Policy area of the Index management page. Performance mode uses higher concurrency and more CPU; Auto switches to Performance when the computer is idle.
Rough expectations
These are order-of-magnitude estimates only — actual times vary considerably with hardware and file mix:Does the embedding model or OCR use integrated or discrete graphics?
On Windows and Linux, only a discrete GPU is used; integrated graphics are not. In our tests, integrated graphics ran these models more slowly than the same computer’s CPU, so without a discrete GPU the CPU is used directly. Apple silicon Macs use the GPU built into the chip. Each task uses them differently:- OCR layout analysis uses the GPU only for PDFs of 4 pages or more. Single images and short PDFs use the CPU.
- With multiple discrete GPUs, semantic indexing uses only the one the system lists first; it doesn’t pick by VRAM size. OCR layout analysis uses the GPU assigned to Linkly AI in Windows graphics settings.
- When VRAM runs short, the driver isn’t supported, or the GPU keeps erroring, the app falls back to the CPU automatically and indexing isn’t interrupted.
- When semantic indexing switches to the cloud model, the local GPU isn’t involved. Windows and Linux devices on ARM currently use the CPU only.
- Windows and Linux: with it off, everything runs on the CPU — slower but steadier.
- Mac: this switch only controls whether OCR layout analysis uses the GPU; semantic indexing and transcription are unaffected.
Why can’t I find a particular file?
Start with one triage step — search for it by filename. The three possible outcomes point to three completely different problems:What the badges mean
What cloud placeholders are about
iCloud Drive, OneDrive, Dropbox, Synology Drive and similar services all have a files on-demand feature (also called “online-only” or “smart sync”): the file is visible in Finder or File Explorer, but its content still lives in the cloud and is only downloaded when you double-click to open it. Linkly AI deliberately does not open these files — opening one triggers a download, which would mean a single indexing pass could pull hundreds of gigabytes of your cloud drive onto your machine, filling the disk and saturating your bandwidth. So it judges by attributes only: recognise a placeholder, skip the body, keep the filename indexed. Scans are triggered automatically on app start, on configuration changes (adding or removing folders, for example), and when a burst of file changes is detected. If you want one right now, restarting the app is the easiest way.What to do about a signature mismatch
This means the file header’s signature bytes don’t match the extension. It’s common with stub or shortcut files produced by certain sync tools, half-downloaded files from an interrupted transfer, or files whose extension was renamed by hand. Open it with the corresponding application to check — if it doesn’t open at all, Linkly AI was right to skip it; if the extension is simply wrong, correcting the extension is enough.Found by filename, no badge, but the content still isn’t searchable
No badge means the file itself is fine — it’s the content extraction step that hasn’t happened, or can’t. In order of likelihood:- The relevant extraction switch is off. Images and scanned PDFs depend on Text recognition (OCR); audio and video depend on Audio transcription and Video transcription — and those last two are off by default. Check in the Management area of the Index management page.
- Its turn hasn’t come up yet. OCR and media transcription are the heaviest tasks, so a slow queue is normal. The Management area of the Index management page shows which file they’re currently working on.
- A legacy
.docexported on macOS cannot be parsed yet. Files produced bytextutilor by the “Word 97” export in Pages use an internal layout that differs from Microsoft Word’s, so they are skipped for now. Re-save them as.docxin Word, or convert them to another supported format.
Index Settings
Not found even by filename
This means the file never entered the index at all. There are five common causes: 1. The folder isn’t being watched. Check in the main window’s Library that its parent directory has been added. If it hasn’t, click Add folder in the Library’s left column to add it. 2. The format isn’t on the supported list. Linkly AI uses an allowlist: only PDF, DOCX, DOC, PPTX, XLSX, CSV, EPUB, RTF, Markdown, TXT, HTML, images, audio, and video extensions are picked up. htm and avi are currently not among them — a file outside the allowlist doesn’t even get its filename registered. The full list is in the Tools Introduction. 3. It’s inside an ignored directory. The following directories, and everything below them, are skipped wholesale:- Hidden directories starting with a dot (
.git,.cache,.dropbox.cacheand so on) node_modulesand__pycache__and similar build / dependency caches- NAS sync metadata directories:
#recycle,#SynoRecycle,@eaDir(Synology),@Recycle(QNAP) - System directories:
$RECYCLE.BIN,System Volume Information - Linkly AI’s own data files: the app data folder
ai.linkly.desktop, wherever it is stored
.gitignore are likewise not indexed. If your notes happen to sit in a repo’s ignored directory, move them out, or click Add folder in the left column of Library to add that directory on its own. The full set of built-in rules is shown at the bottom of the Rules tab on the Index management page..ignore file in the folder can leave files out too. See Index Scope.
Can I add files from a NAS?
Yes. First mount the NAS shared folder in your operating system, then add it to the library just like a local folder:- Windows: use “Map network drive” in File Explorer (e.g.
Z:\), or use a network path like\\NAS-name\share-namedirectly - macOS: in Finder choose “Go → Connect to Server”, enter
smb://NAS-address/share-name; once mounted it lives under/Volumes - Linux: mount the SMB / NFS share with your system’s network locations feature or
mount
- Indexed content isn’t lost when the NAS disconnects or isn’t mounted. The folder shows Offline in the Library; the app checks every 15 minutes and rescans automatically once it’s back.
- This computer may not notice right away when another computer changes files on the NAS. The operating system doesn’t always report changes on network shares promptly, especially on macOS and Linux; missed changes are picked up the next time Linkly AI launches.
- The first index is slower than on a local disk, more noticeably the more files there are, depending on the network and the NAS’s read speed.
- Synology and QNAP recycle-bin and thumbnail directories (
#recycle,@eaDir, and so on) are skipped automatically and never indexed.
Why can’t I search what was said inside my audio and video files?
Because audio and video transcription is off by default. While it’s off, media files are still registered in the index (so filename search finds them), but what was said inside them is never transcribed. Turn on Audio transcription and Video transcription in the Management area of the Index management page. The app downloads the speech recognition model and then works through all your existing media files automatically — no rescan and no index rebuild required.Index Settings
How do I keep a conversation focused on a single document?
There are two ways to point at a document:- Start from the document: select the file in Library and click Chat with this file in the toolbar above it, or right-click the file and choose that item. Right-clicking a search result in Find offers it too. This starts a new conversation with the file placed in the composer. Folders and libraries can start one the same way (Chat with this folder, Chat with this library).
- Use
@in the composer: type@in the Ask composer, then a keyword from the filename, and pick the file from the candidates.
@ the file again, the AI searches your whole library and may cite other documents. Also, pointing at a file is only a hint to the AI, not a hard limit on retrieval — it may still search other material.
To keep a whole conversation on that one document:
@the file again with every follow-up- Say in your question: “Answer only from this document; if it isn’t in the document, just say so”
@-mentioned. Conversations don’t support uploading attachments, so put any file you want to discuss into your library first.
How many files can a cloud library hold? Is it based on file size?
It’s based on file count, not file size, and there’s no total-capacity limit:- If a push would take the library’s file count over the limit, the whole push is skipped, and the app shows Library file limit reached
- Pushes that only modify or delete existing files are unaffected
- Files already uploaded are all kept, not locked
Can I use the AI features on a machine without internet access (offline / intranet)?
Yes. OCR, speech transcription, and semantic search all run locally (cloud features like the AI chat and Skills installation are the exception) — the only catch is that the models they use are downloaded over the network by default:- The semantic search and OCR models, about 890 MB, are downloaded on first run
- The speech transcription model, about 161 MB, is downloaded only once you turn on audio/video transcription
Offline Installation Guide
What should I do if the Linux AppImage will not start?
Linux distributions vary widely in their base runtime libraries, desktop components, and drivers. An AppImage carries most application dependencies, but it does not replace the operating system’s glibc, C++ runtime, FUSE, or graphics drivers, so it cannot guarantee that it will run on every Linux distribution. Linkly AI ships Linux AppImages for x86_64 and arm64 (aarch64); both require glibc 2.35 or newer. Start by running these commands from the directory containing the AppImage:uname -m prints x86_64 or aarch64; download the AppImage that matches. The last command launches the app while saving terminal errors so you can match them to the cases below.
Permission denied
Permission denied
sudo; doing so can leave configuration and data files that your regular user cannot access later.FUSE, libfuse.so.2, or AppImage mount errors
FUSE, libfuse.so.2, or AppImage mount errors
GLIBC_x.y, GLIBCXX_x.y, or CXXABI_x.y not found
GLIBC_x.y, GLIBCXX_x.y, or CXXABI_x.y not found
GLIBC_x.ycomes from glibc; the current minimum is glibc 2.35.GLIBCXX_x.yandCXXABI_x.ycome from the system C++ runtime,libstdc++.
Exec format error, or the AppImage does not match uname -m
Exec format error, or the AppImage does not match uname -m
Linkly AI_<version>_amd64.AppImage) and arm64 (Linkly AI_<version>_aarch64.AppImage); download the one whose name matches uname -m (x86_64 → amd64, aarch64 → aarch64). Changing permissions or installing runtime libraries cannot fix an architecture mismatch.The process starts, but no window appears or it exits immediately
The process starts, but no window appears or it exits immediately
linkly-ai-linux-startup.log:The app runs, but its built-in update fails
The app runs, but its built-in update fails
~/Applications, rather than a read-only mount or a root-owned system directory:app.log, use the terminal output saved in linkly-ai-linux-startup.log instead.Is there a Linux server or Docker version?
Not yet — we’re preparing one. If you have ideas or needs around this, or would like early access, get in touch.Contact us
How do I use the CLI to access Linkly AI on another computer?
The Linkly AI CLI connects only to the Linkly AI on the same machine by default. There are two ways to reach another computer, LAN and remote, and both require CLI 1.0.0 or later (check withlinkly --version, upgrade with linkly self-update).
- LAN (free)
- Remote (Pro)
Turn on LAN access on the computer being accessed
Copy the address and token
http://192.168.1.10:60606/mcp) and token from the LAN section.Save the connection on the computer running the CLI
Add --lan when you use it
linkly doctor --lan to check that the connection works.- The CLI can save only one LAN connection; running
set-key --lanagain overwrites the previous one. To reach another computer temporarily, add--endpoint <address> --token <token>to the command — this isn’t saved. - Saved connections are stored in
~/.linkly/credentials.json. - LAN access is best turned on only in trusted networks such as home or office. Don’t paste the token into any AI conversation — conversations are sent to the model provider and kept in the chat history. If a token leaks or appears in a conversation, regenerate it under View MCP connection settings; the old token stops working immediately.
- Agents that use the CLI through Skills (such as Claude Code) pick up the saved connection automatically; this needs CLI 1.0.0 and Skills 0.9.0 or later.
Where do I find the settings I need?
To open Settings, click the account icon in the bottom-left corner of the main window and choose Settings from the menu, or press⌘ + , (Ctrl + , on Windows/Linux). Settings is split into pages by function; these are the ones used most:
Settings → General: language, launch at login, storage locations
Settings → General: language, launch at login, storage locations
- Language: the interface display language
- Launch at Login: start Linkly AI when you log in to your system
- Silent Launch: when started at login, stay in the background instead of opening the main window — on by default, so indexing and the MCP server run without getting in your way
- Linkly AI Space: the folder that’s indexed by default — you can open it or move it elsewhere; see Linkly AI Space
- App Data: where the index, local models, settings, and logs are stored — click Open to go straight there (that’s where you grab the log); you can also move it to another disk, and the app will restart and migrate the data; see How do I move app data to another disk
Settings → Appearance: theme, font size, Dock icon
Settings → Appearance: theme, font size, Dock icon
- Theme: Light / Dark / System
- Font Size: Small / Standard / Large, applied to both the interface and chat content
- Show Dock Icon (macOS): turn it off and the app lives only in the menu bar tray, taking up no space in the Dock
Settings → About: version, updates
Settings → About: version, updates
- Check for Updates: manually check for and download a new version; when it’s downloaded, click Restart to Update
- Join Beta Program: get beta updates and early access to new features, at the cost of possibly running into less thoroughly tested changes
- From here you can also jump to the changelog, privacy policy, terms of service, and the CLI and Skills documentation
Settings → Shortcuts: global shortcuts and the full shortcut list
Settings → Shortcuts: global shortcuts and the full shortcut list
- Global shortcuts: Search toggles the Launcher, and Main window opens the main window. Click once to re-record a shortcut, or use Reset to default or Clear. If it says the combination is already in use or reserved by the system, pick another one
- Shortcut list: lists every shortcut in the app. Pressing
⌘ + /(Ctrl + /on Windows/Linux) in the Launcher opens this page directly
Can I change where the Linkly AI Space is?
Yes. The Linkly AI Space is the default folder for notes, clippings, and other material. To change it:- Go to Settings → General and find the Linkly AI Space row
- Click the Change icon button on the right, then click Continue in the confirmation dialog
- Pick a folder; Linkly AI creates a
LinklyAIfolder inside it as the new space. If the folder you pick is itself namedLinklyAI, it’s used as-is
Windows; pick an ordinary folder instead — see the next section.How do I move app data to another disk?
App Data is the folder where Linkly AI keeps its database, index, local models, settings, and logs, and with lots of material it can take up several GB. By default it’s on the system drive, and it isn’t the same thing as the software’s install directory: even if you installed to drive D, app data is still in the default location below.Steps
Open the App Data setting
Choose a new location
LinklyAI\ai.linkly.desktop inside it for the data. For example, pick D:\Linkly AI Data and the data goes to D:\Linkly AI Data\LinklyAI\ai.linkly.desktop.Wait for the move to finish
Check the result
- It’s a folder, not the root of a drive (such as
D:\) - It isn’t a system directory (such as the
Windowsfolder), a network drive, or a shared folder; folders underProgram Filesare fine - It doesn’t overlap the Linkly AI Space or any watched folder, and isn’t inside the current app data folder
- It has free space of at least 1.1 times the current app data size
- It doesn’t already contain a non-empty
LinklyAI\ai.linkly.desktop - It can’t be moved while a model is downloading; wait for the download to finish and try again
Why is there still a folder at the old location after the move?
Once the move finishes, the data at the old location is deleted, and a link with the same name is left in its place, pointing to the new location (a directory junction on Windows, a symbolic link on macOS and Linux). Linkly AI finds the data at the new location through this link every time it launches, so the link has to stay.- The link takes up no space. If you check its Properties in File Explorer, it shows the same size as the new location, because the system counts the data the link points to. To confirm the space was freed, look at the free space of the system drive under “This PC”: after the move it should have grown by the size of the app data.
- The link and the new location look exactly the same, with content, size, and modified times changing together. That’s because opening the link shows you the data at the new location — it isn’t two copies syncing with each other.
- On Windows,
%LOCALAPPDATA%\ai.linkly.desktopholds the app interface’s cache. It isn’t part of the move, and it’s rebuilt automatically if deleted.
I deleted the link by accident
I deleted the link by accident
-
Windows (Command Prompt):
-
macOS (Terminal):
-
Linux (Terminal):
I want to move back to the default location, or to a different disk
I want to move back to the default location, or to a different disk
- Back to the default location: click Restore Default (the circular-arrow icon) in the App Data row. Linkly AI restarts and copies the data back to the default location; the system drive needs enough free space. The custom location is cleared only after the copy finishes.
- To a different disk: click Change again and pick the new location following the steps above.
Will I lose data if the move is interrupted or fails?
Will I lose data if the move is interrupted or fails?
Can I move it to an external drive?
Can I move it to an external drive?
What happens when I uninstall Linkly AI?
What happens when I uninstall Linkly AI?
How do I get Linkly AI’s application runtime logs?
While running, the app automatically writes its full log to a localapp.log file (capped at 10 MB per file, with rotation). Attaching this file when you report an issue dramatically speeds up debugging. Sensitive data is already redacted.
There are two ways to grab the log:
Option 1: Open from inside the app (recommended)
This is the simplest path:Open the General page
Open the app data directory
Grab app.log from the logs subfolder
logs/ subdirectory and send us app.log.Option 2: Open the app data directory manually
If the app has crashed or won’t launch, open the folder directly from disk:- macOS
- Windows
- Linux
- Open Finder.
- From the menu bar, choose Go → Go to Folder… (or press ⌘ + ⇧ + G).
-
Paste this path and press Return:
-
Find
app.login that folder and send it to us.
What if the app crashes during startup?
If the app crashes immediately on launch,app.log may not have been written yet. In that case the crash information is saved separately to a startup-panic-<number>.json file in the linkly-ai-diagnostics diagnostics folder.
The next time you open Linkly AI, a Linkly AI didn’t shut down properly prompt appears, and this crash information goes into the diagnostic report along with it. Write a line about what you were doing before the crash and click Send report.
If the app crashes on every launch and you never see that prompt, you can find the file manually at the path below:
- macOS
- Windows
- Linux
- Open Finder.
- From the top menu choose Go → Go to Folder… (or press ⌘ + ⇧ + G).
-
Paste the path below and press Enter:
-
Find the
.jsonfile starting withstartup-panic-in that folder and send it to us.

