LokalBot

io.github.stevyhackerPublished by GitHub account stevyhackerv0.12.1Updated Nov 3, 2026

Opt-in, read-only meeting and screen memory. Requires the LokalBot Mac app.

VerifiedSTDIODesktop only

Overview

LokalBot's local MCP server; no sign-in required; STDIO.

No AI overview yet: these facts come from the registry entry and the server itself.

Installation

In SourceWeft

  1. Open LokalBot in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[LokalBot icon]

LokalBot

Your personal context engine.

Private meeting notes, workday recall, dictation, and autocomplete—with AI that runs on your computer.
Your AI agents can search it too, from Claude Code, Codex, or any MCP client.
Free and open source. No account. Nothing joins your calls.

[Download LokalBot for macOS] [Download LokalBot for Windows (alpha)] [Download LokalBot for Linux (alpha)]

Apple Silicon (M1 or later) with macOS 15+ · Windows 10/11 x64 (alpha) · Linux x86_64 (alpha) · on Mac, also brew install --cask stevyhacker/tap/lokalbot

[Latest release] [License: GPLv3] [MCP: read-only server]

⭐ If LokalBot is useful to you, star the repo. It's built by one developer, and stars are how other people find it.

English · 简体中文

Features · Windows & Linux · Compare · Privacy · Get started · Models · Agents & CLI · Website

[LokalBot in use, in seven looping scenes with fictional demo data. A Quick Recall search for "demo presentation" finds a Keynote deck and a Mail reply seen on screen, and two meetings. In a meeting summary, clicking an action item's citation opens the transcript at the line where it was said. An Ask answer about a holiday shoot links each claim to its source. In TextEdit, autocomplete finishes "the Team plan will be $15" with "per seat, billed annually." from a meeting, and Tab accepts it. Holding Option-Space for the spoken request "Write a short team update with the launch pricing" writes the update into TextEdit. Timeline opens a work session with its evidence, and People shows what is open with Maya and with Leo. The loop ends on the tagline "Your personal context engine."]

The real app, recorded with fictional demo data.

https://github.com/user-attachments/assets/d9cf34ff-6367-4964-830a-5c7ee1343555

45 seconds: why LokalBot keeps what you heard and saw, which local models do the work, then the real app in use. Fictional demo data.

Features

Remember what was agreed

Record microphone and meeting-app audio without a bot joining. Get local transcripts, recaps, decisions, and action items, with citations back to the discussion.

Find something you saw

One search across your meeting transcripts and, if you turn it on, what you saw on screen. Search by keyword or by meaning, then open the matching passage or screen moment instead of hunting through apps. The same window (⌃⇧ Space, or Ctrl+Shift+Space on Windows and Linux, once you turn on the shortcut in Settings → General) also runs app commands such as Record now or Start dictation from whatever app you're in.

Finish the sentence

As you type in other apps, gray text suggests how your sentence ends. Press Tab to take the next word, ` to take the rest, or keep typing.

Live suggestions in TextEdit, in real time. The ship date and condition come from the meeting with John. Fictional demo meeting.
  • Knows what you're answering. It reads the message or page above the field, so a reply fits the thread.
  • Remembers your meetings, if you let it. Turn on meeting and work memory, and it can bring in what was decided, like the ship date above.
  • Writes in your language. On Mac, the same small model keeps up in German, French, Italian, Spanish, and more.
  • Stays on your computer. A small model runs inside the app: Gemma 4 E2B on Mac, LFM2.5 1.2B on Windows and Linux. What you type and the context it reads never leave your computer.

Turn it on in Settings → Autocomplete, where you can try it on a sample conversation first and later see how much it wrote for you.

Pick up where you left off

Today brings your day digest and open meeting actions together. Timeline groups captured activity into work sessions, with the underlying context available to inspect. Correct actions, mark them done, and trace each one to its source.

Talk instead of typing

Turn on Dictation in Settings → Dictation, then hold ⌥ Space (Alt+Space on Windows and Linux, or a shortcut you choose there), speak, and release to insert text at your cursor in any app. Transcription runs on your computer. On Wayland, bind lokalbot dictate to a shortcut in your desktop's settings.

Rewrite what you selected

Turn on selection actions in Settings → General, select text in any app, and press ⌃⇧ W. Fix the grammar, make it shorter, translate it, summarize it, or type your own instruction, then replace the selection or copy the result. Draft a reply with my memory also searches your meetings, so the reply can use what was actually agreed, and lists the meetings it used. It runs on your Think model, which stays on your computer unless you chose and approved a server. On Windows and Linux the shortcut is Ctrl+Alt+Space, because ⌃⇧ W closes tabs and windows there; on Wayland, bind lokalbot selection-actions to a shortcut in your desktop's settings.

And more

Ask, then check the sourceFollow throughBring your own agent
Ask about your meeting library and follow the answer's citations back to the transcript or audio. Generated notes are a starting point, not a substitute for the discussion.Prepare local follow-up drafts. Also keep a note for every meeting in your Obsidian or Logseq folder, and get daily briefs and weekly work logs. You review and send them yourself.Give Claude Code or any MCP client read-only access to your meeting library through the bundled lokalbot-cli. It stays off until you enable it.

Screenshots are unedited captures of the Mac app with fictional demo data. They show the interface, not a live inference benchmark. The Autocomplete clip is a cropped, real-time recording of live suggestions. Click an image for full resolution; see the capture notes for provenance.

Also on Windows and Linux (alpha)

A native Windows and Linux app, written in Rust, has the same pages and reads the same library, so a library moves between computers. Meetings, transcription, Ask, search, day memory, screen context, dictation, autocomplete, selection actions, spoken summaries, Files, overnight review, Personal Context, calendar, Agent Mode, and the CLI and MCP server all work. It's an alpha: the Windows build isn't code-signed yet, some features depend on your Linux desktop (Wayland support is partial), and Gmail in meeting briefs hasn't been ported. See what works where and screenshots.

How it compares

Coming from…What's different with LokalBot
GranolaThe same bot-free capture, but transcription and summaries run on your computer by default. No account and no subscription.
Apple NotesNotes records your microphone, so with headphones on it misses the other side of a Zoom or Teams call. LokalBot records both sides and keeps every meeting searchable, with notes that cite the discussion.
Otter · FirefliesNothing joins your call, audio stays on your computer, and there are no minute caps.
Hyprnote (anarlog)Local AI ships built in, with no separate model runner or API keys to set up. Dictation, a day timeline, and autocomplete come in the same app.
MeetilyBoth are open source and run locally. Speaker separation, meeting detection, and MCP access are free here rather than Pro features, and dictation, a day timeline, and autocomplete come in the same app.
ScreenpipeStarts with app and window activity. Screen text and screenshots are opt-in and deleted after 14 days by default. GPLv3 rather than source-available.
RewindRewind's Mac app is discontinued. LokalBot's timeline is open source and actively developed.
MacWhisper · SuperwhisperDictation comes alongside meeting notes, recall, and autocomplete, for free. For transcribing files you already have, MacWhisper is the better tool.
Wispr FlowDictation and bot-free meeting notes run on your computer, with no account, word cap, or connection required. Wispr Flow transcribes both in its cloud.

Competitor details were last verified on September 24, 2026, and October 1, 2026 for Apple Notes, Meetily, and Wispr Flow; each link has the full comparison and sources. Trademarks belong to their owners.

Privacy

Your work is personal. Keeping it local should be the starting point.

Recording and built-in AI processing happen on your computer. LokalBot has no account system, analytics service, or telemetry backend. Your library lives in local files and SQLite under your user account.

mermaid
flowchart LR  subgraph mac [Your computer]    direction LR    audio["Mic + meeting-app audio"] --> asr["On-device<br/>transcription"]    asr --> llm["Local summaries<br/>built-in llama.cpp"]    screen["Opt-in screen text"] --> db[("Local library<br/>full-text + vector search")]    asr --> db    llm --> db    db --> use["Search · Ask · Today · Timeline"]    db -.->|read-only, off by default| cli["lokalbot-cli · MCP"]  end
  • You choose what to retain. Activity-only tracking is the default. Visible screen text and encrypted screenshots are opt-in. Pause capture or exclude apps and domains at any time. Detection has limits; exclude anything you never want retained.
  • You control retention. Captured screen text and screenshots expire after 14 days by default. Adjust the window or explicitly save a moment to keep it until you unsave or delete it.
  • Network access has boundaries. Models, updates, and optional agent runtimes need downloads. Automatic update checks can be disabled. A remote model server receives context only after you approve its origin; optional Agent Mode and external CLI/MCP clients have separate permissions and data handling.
  • Your phone gets a copy only if you pair it. Settings → Phones & tablets is off by default. When you turn it on, the Mac sends the phones and tablets you pair an end-to-end encrypted copy of the data you choose, over your local network or Tailscale, with no LokalBot server in between. Screenshots, screen text, attendee emails, and voice profiles are never shared.

To check the local processing path, download the models, select the built-in backend, disable automatic update checks, and observe network traffic while recording, transcribing, and summarizing. Approved agent commands and external clients are separate paths.

Read the full privacy policy · Report a security issue privately

Get started

LokalBot runs on Apple Silicon Macs with macOS 15 or later. Windows and Linux are in alpha. You'll also need space for your selected models: Settings → Models shows download sizes and readiness, and storage and memory needs depend on the models you choose.

macOSWindows (alpha)Linux (alpha)
Runs onApple Silicon (M1 or later), macOS 15+Windows 10 or 11, x64x86_64 with glibc 2.39 or later (Ubuntu 24.04, Debian 13, Fedora 40 or newer), PulseAudio or PipeWire, and a Vulkan or OpenGL driver
InstallLokalBot-<version>-macos-arm64.dmg: drag LokalBot to Applications. Or brew install --cask stevyhacker/tap/lokalbot.LokalBot-<version>-windows-x86_64-setup.exe: run it to install LokalBot for your user, with a Start menu shortcut and no administrator rights. It isn't code-signed yet, so SmartScreen asks first: More info → Run anyway. The same release has a portable zip.LokalBot-<version>-linux-x86_64.tar.gz: extract it and run ./install.sh, which adds LokalBot to your applications menu. Or install the .deb (Debian, Ubuntu), .rpm (Fedora, openSUSE) or Arch package from the same release. The .deb, and the .rpm on Fedora, add the LokalBot repository, so sudo apt upgrade or sudo dnf upgrade brings later versions; with the Arch package, LokalBot tells you about updates instead of installing them.
Your library~/Library/Application Support/me.dotenv.LokalBot%LOCALAPPDATA%\LokalBot~/.local/share/LokalBot

A library recorded on one platform opens on the others. Not every Mac feature is on Windows and Linux yet; see what works where.

  1. Install the app for your platform and open it.
  2. Choose what to capture. Review recording settings: automatic detection, ask-first, or manual recording. Day tracking starts with activity only; saving screen text or screenshots is a separate opt-in. Grant only the permissions for the features you enable.
  3. Let the models download. Built-in transcription, search, summaries, and writing can then work offline. No model server to set up and no API key to bring.

Try this first: make a short test recording, let it transcribe, then search for a phrase you said and open the matching passage. Add screen memory or writing tools when you're ready.

Let meeting participants know before recording and get their consent.

Release notes · Setup help · Homebrew options · Windows and Linux guide

FAQ

Does a bot join my meetings?

No. LokalBot records your microphone and the meeting app's audio on your computer. On Windows and Linux it records the meeting app alone where it can, and otherwise everything the computer plays. Audio sources are separate from individual speaker identification. When system-audio capture is unavailable, the app warns that recording is microphone-only. Always record with participants' consent.

Does it record everything on my screen?

No. New installs use activity-only tracking, which you can turn off. Saving visible text or screenshots requires a separate choice and the relevant macOS permissions (on Linux, your desktop's accessibility and screenshot support). Excluded apps and domains and secure fields are skipped; private browser windows are captured unless you exclude the browser or site. Detected credentials are redacted and associated pixels are dropped, but detection is not perfect. See PRIVACY.md.

Can I take my notes elsewhere?

Yes. Turn on Meeting note export to keep a Markdown note for every meeting in a folder you choose, such as an Obsidian vault or a Logseq graph: the summary, action items, the people and projects involved, and the transcript. You can also export a single meeting, write a daily memory note, or let local routines save drafts. These are ordinary, unencrypted files; any service you sync them with has its own privacy settings. See Meeting transcripts in Obsidian.

Does it run on Windows or Linux?

Yes, as an alpha. The Windows and Linux app is a native Rust app with the same pages, the same models for summaries and search, and the same library format, so a library moves between computers. Gmail in meeting briefs is Mac only for now, and on Wayland some features depend on your desktop. See what works where.

Local AI, your choice

Start with the built-in models, then change them in Settings → Models. LokalBot supports its bundled llama.cpp runtime, Ollama, OpenAI-compatible servers, and Apple Intelligence on supported Macs running macOS 26 or later. Think can also run on your own ChatGPT plan (Sign in with ChatGPT) or Claude plan (through your signed-in Claude Code), without an API key, and Agent Mode can run on the ChatGPT plan. Remote servers and plans require approval before receiving context.

Different jobs use different models. These are the Mac defaults on a fresh install, about 9.6 GB of model files if you use every role. They are not a RAM requirement:

RoleDefault modelFormatApprox. model files
TranscriptionQwen3-ASR 1.7BMLX 8-bit2.47 GB
Summaries and chatQwen3.5 4BQ4_K_M2.74 GB
AutocompleteGemma 4 E2B BaseQ6_K3.85 GB
Semantic searchEmbeddingGemma 2Q8_00.31 GB
Speaker diarizationNemotron 3 (preview) via FluidAudioCore ML~0.20 GB

Qwen3-ASR covers 52 languages and dialects. Transcription alternatives include Parakeet, Granite Speech, Whisper large-v3 turbo, SenseVoice for Chinese, Japanese, and Korean, and GigaAM for Russian; Pyannote Community-1 remains available for diarization. The Lightweight preset swaps in smaller models, including LFM2.5 1.2B Instruct (0.73 GB) for autocomplete. Model choices can vary by release; Settings shows the active selections and available presets. Speed and memory use depend on your computer, model, context length, and other workloads.

On Windows and Linux, transcription uses Qwen3-ASR 0.6B through sherpa-onnx (Parakeet v3 and v2, SenseVoice, GigaAM Russian, and Whisper turbo are optional), speakers are separated with pyannote segmentation and TitaNet, and autocomplete uses LFM2.5 1.2B by default. Summaries (Qwen3.5 4B) and search (EmbeddingGemma 2) use the same models as on Mac. The default download is about 4 GB, and llama.cpp runs on a Vulkan GPU or the CPU.

Project benchmarks · Model catalog · Search implementation · Model and runtime details

For developers & agents

The app bundles lokalbot-cli, a read-only interface to your meeting library and a stdio Model Context Protocol (MCP) server. Access is off by default. On a Mac, turn on Allow external agents to read your LokalBot data in Settings → External Agents and tick what agents may read: Meetings, Screen memory, What I shared about myself, or Files. On Windows and Linux, turn on meeting-library access in Settings → Privacy & Data. Then install the CLI from Settings → Advanced → Agent CLI.

bash
lokalbot-cli search "database decision"lokalbot-cli get latest --include metadata,summarylokalbot-cli search-files "lease renewal" --kind pdf   # Mac, with Files tickedlokalbot-cli mcp

Without a PATH installation, use /Applications/LokalBot.app/Contents/Helpers/lokalbot-cli on Mac. On Windows and Linux, Settings → Advanced → Agent CLI installs it too; see Coding agents for where it goes and how to add it to your PATH. There the CLI has the read-only commands and every MCP tool except search_files; ask, reply, search-files, and the setup and configuration commands are Mac only.

Connect Claude Code with one command, or install the Claude Code plugin:

bash
# macOSclaude mcp add lokalbot -- /Applications/LokalBot.app/Contents/Helpers/lokalbot-cli mcp# Windows and Linux, with lokalbot-cli on your PATHclaude mcp add lokalbot -- lokalbot-cli mcp

Screen-memory MCP tools require separate permission scoped to today, the last seven days, or all retained history. They return text and metadata, not decrypted screenshots. On a Mac, search_files searches the folders you chose under Files by their words and returns file paths, excerpts, and the matched passages; it needs the Files box and never changes your files. External clients may send results to their own model providers.

The app also has an optional Agent Mode for working with reviewed context. File and shell actions follow its approval settings; it is separate from the read-only CLI/MCP interface.

CLI examples · Claude Code plugin · MCP architecture

Build from source

For the Mac app, use an Apple Silicon Mac with full Xcode installed; the build workflow pins the CI toolchain. With Homebrew available:

bash
brew install xcodegen cmake# Rust (https://rustup.rs) builds the phone and tablet sync library; the repo# pins the toolchain, which rustup installs on first use.curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none
git clone https://github.com/stevyhacker/lokalbot.gitcd lokalbot
# XcodeGen needs these paths before the first build fetches the runtimes.mkdir -p Vendor/llama-cpp Vendor/sherpa-onnx# The phone and tablet sync library (Rust), as a local Swift package.Scripts/build-sync-xcframework.shxcodegen generateopen LokalBot.xcodeproj

Select LokalBot Dev, set your signing team, and run. The Dev app has its own identity, macOS permission grants, library, model storage, and Keychain namespace, so it can live alongside the installed release without applying development retention settings to release data. The first build prepares pinned native runtimes; model downloads happen separately.

For the Windows and Linux app, see Build from source in its README (Rust).

Build and test commands · Testing guide · Screenshot guide

Find your way around the code
text
LokalBot/├── Views/       # Native SwiftUI screens, settings, and onboarding├── Services/    # Recording, search, storage, and workday memory├── Engines/     # Transcription, model catalog, and local inference├── Cotyping/    # System-wide autocomplete├── Dictation/   # Voice typing└── Agent/       # Optional Agent Mode and approval flowCLI/             # Command-line interface and MCP entry pointsLinuxWindows/    # Windows and Linux app (Rust + GPUI)LokalBotTests/   # Unit testsScripts/         # Build, verification, capture, and release toolingproject.yml      # XcodeGen source of truth

Contributing

Bug reports, documentation improvements, and code contributions are welcome. Report an issue with steps to reproduce, expected and actual behavior, the app version, your OS and its version (on Linux, also the distribution, desktop, and X11 or Wayland), your chip or CPU and GPU, RAM, and selected models. Keep private recordings and transcripts out of reports.

For larger changes, open an issue to discuss the approach first. Follow the working agreements and development guide, keep pull requests focused, and record your checks in the PR template. Include screenshots for UI changes; run UI tests on hosted CI or a remote runner.

License & acknowledgements

LokalBot is free software under GPLv3. Code in the Autocomplete engine that was ported from Cotabby stays under AGPLv3. Other third-party components and models retain their own licenses; see third-party notices.

Built with llama.cpp, MLX Swift, speech-swift, sherpa-onnx, WhisperKit, FluidAudio, Sparkle, XcodeGen, GPUI, GPUI Kit, and ONNX Runtime, with models including Qwen3-ASR, IBM Granite Speech, Parakeet, and LFM2.5. The Autocomplete engine started from Cotabby's open-source code.

Source: README.md at commit 00a8469

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

1
  1. v0.12.1LatestNov 3, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts