Model or dataset
johnbean393/Sidekick avatar
johnbean393/Sidekick

Sidekick: a local-first macOS LLM app that reads your files, folders and websites

A native macOS app that allows users to chat with a local LLM that can respond with information from files, folders and websites on your Mac without installing any other software. Powered by llama.cpp.

3,315 stars148 forksSwiftMIT

At a glance

What is it?
Sidekick is a native SwiftUI macOS app that bundles a llama.cpp inference engine and RAG over your own resources, so you can chat with a GGUF model without installing Python, Ollama or a server. The trade-off is that it is macOS-only, still at 1.0.0-rc.18, and the README leaves deployment details thin.
Who is it for?
Adopt Sidekick if you are on macOS, want your documents to stay on disk, and prefer a double-clickable app to a Python stack. Do not adopt it if you need Windows or Linux, a stable non-RC release, or a documented rollback path between builds.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 128 days ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem Sidekick targets: retrieval over your own Mac without a second runtime

Most local LLM setups ask you to assemble a stack. You install a runtime, pull weights, wire up an embedding model, point a vector store at a folder, and then find a chat client that speaks to all of it. Sidekick collapses that into one macOS application. The README describes it as a "local first" app with a built-in inference engine for local models, and it states that conversations happen offline and that data stays on the machine. The intended audience is visible in the example use: a student collecting evidence for a history paper, asking whether the Aztecs used captured Spanish weapons and getting direct quotes with page numbers. That is a citation-driven research workflow, not a coding assistant. The features list points the same way: experts scoped to subjects like English Literature or Physics, drag-and-drop of ad hoc files into the input field, web search for current information, and a Deep Research agent. If your work is "find what my own documents say and show me where," that is the shape Sidekick is built for.

How experts, RAG and the llama.cpp backend fit together

The organizing concept is the expert. An expert is a named container for resources: files, folders and websites related to one area of interest. Activating an expert lets Sidekick fetch and reference those materials when a request needs them. The README states that because Sidekick uses RAG (Retrieval Augmented Generation), you can theoretically put unlimited resources into each expert and it will still find the relevant parts. Treat that "unlimited" as a claim about the retrieval step, not about your disk or your patience: indexing is still bounded by the machine, and the README does not document index size limits, reindexing behaviour, or what happens when a folder changes after it was added.

Generation runs through a bundled llama.cpp backend, which the README says supports modern GGUF models such as Qwen3.5 out of the box. That is the reason there is nothing else to install. Alongside it, Sidekick accepts OpenAI compatible APIs with your own key, and ships presets for OpenAI, Anthropic, Google AI Studio, DeepSeek, Groq, MiniMax, Mistral and xAI. So the same chat surface can run a local model or a remote one.

Two mechanisms sit on top. Function calling runs tools sequentially in a loop until a result is obtained; the README's example has Sidekick making 27 tool calls to compute Q3 2025 financial metrics for Nvidia, saving a CSV and presenting results, and another example drafts an email by reading a birthday and an address from the contacts book. Deep Research is described as a specific agent for long-horizon, multi-step tasks that reads 50 to 80 webpages and synthesizes a report. Memory persists details between conversations. The repository also contains a llama-server-watchdog.entitlements file, which suggests the app supervises a llama server process, though the README does not explain the supervision logic.

Installing Sidekick and running a first query against a folder

The README does not give a step-by-step install procedure. It links to the project site at johnbean393.github.io/Sidekick/ for feature documentation, and the repository layout shows what a builder would need: Sidekick.xcodeproj, a Sidekick/ source directory, SidekickTests/ and SidekickUITests/, plus a scripts/ directory and a setup.sh at the top level. If you are building from source rather than using a release, the entry point named by the repository is setup.sh, which sits alongside the other top-level entries. The README does not describe what setup.sh does, so read the script before executing it rather than assuming it only fetches dependencies. The project is an Xcode workspace, and the app target lives inside Sidekick.xcodeproj. The published releases are the other route, with 1.0.0-rc.18 dated 2026-04-02 as the most recent listed.

For a first real use, the workflow the README describes is: create an expert, attach a folder to it, activate the expert, then ask a question. The history-paper example is the template. Ask something answerable from the folder, such as a question about a specific claim in one of the documents. What you should see, according to the README, is an answer with direct quotes, page numbers and a short analysis, plus references listed below the answer. Clicking a reference opens the source document in your viewer. That click-through is the part worth testing first, because it is what separates a citation-backed answer from a plausible one. You can also drag a file straight into the input field for a one-off question without building an expert.

Where Sidekick stops being the right tool

The platform boundary is absolute. This is a native macOS app written in Swift and SwiftUI, and nothing in the repository suggests a Windows or Linux build. If your team is mixed-platform, Sidekick cannot be the shared tool.

The release state is the second boundary. The newest release listed is 1.0.0-rc.18, a release candidate, and the two before it are also candidates, dated 2026-04-02, 2026-03-12 and 2025-11-17. There is no stable 1.0.0 in the release list. For a personal research tool that is fine; for anything you need to pin and support across a team, an RC line means the interface and behaviour can still move.

The third boundary is what the README does not say. It does not document rollback or downgrade between builds, it does not describe how large an expert's resource set can grow before retrieval quality or indexing time degrades, and it does not explain what happens when the underlying files change. The memory feature adds a related question the README does not answer: it says Sidekick remembers helpful information between conversations, but it does not describe how to inspect, edit or delete those memories. If you handle material where an unremovable memory would be a problem, verify that before you rely on it. Finally, function calling that reads your contacts and drafts email is a real capability with a real blast radius. The README shows it working; it does not describe a confirmation step before an action executes.

How Sidekick differs from Ollama plus a separate chat client

The obvious alternative for local inference on a Mac is Ollama, usually paired with a separate chat front end and a separate retrieval layer. The difference is architectural. Ollama is a background service with a command-line and HTTP interface; you pull a model, then point some other application at it. Retrieval over your documents is a second decision, and a third tool. Sidekick inverts this: the model runtime, the chat interface and the retrieval layer are one application, and the resources are attached inside the app as experts rather than configured as an external index. The README's framing is that you get this "without installing any other software."

That packaging cuts both ways. You get a single install and a UI where a folder is a first-class object. You give up the composability that makes a service-based setup useful: you cannot swap the retrieval layer, script Sidekick from a shell, or run it headless on a server. If your workflow is already built around an OpenAI compatible endpoint, Sidekick's bring-your-own-key feature means it can sit in front of the same remote models, but it will not replace the endpoint for other consumers. Choose Sidekick when the app is the product you want. Choose a service-based stack when the model endpoint is the thing other tools depend on.

Licence, maintenance and the cost of upgrading

Sidekick is MIT licensed, which is permissive: you can use, modify and redistribute it, including in commercial settings, provided the licence and copyright notice are preserved. That is a statement about the licence text, not legal advice; if you plan to redistribute a modified build, have someone qualified read the terms.

The repository is not archived, and the last push was on 2026-05-24. Releases, however, are sparse and spaced: 2025-11-17, then 2026-03-12, then 2026-04-02. A repository that receives commits more often than it cuts releases means the useful fixes may exist in source before they reach a downloadable build, which matters if you are installing from a release rather than compiling. Because the README does not document rollback, the practical upgrade cost is that you should keep the previous release artifact yourself before replacing it. There is no stated migration path for experts, memories or conversation history between RC builds, so assume you may need to recreate your expert configuration after a large version jump. The release candidate numbering also means the upgrade cost is not only installation time; it is the chance that behaviour you depended on shifts between candidates without a changelog entry you can point to.

Editorial conclusion

Adopt Sidekick if you are on macOS, want your documents to stay on disk, and prefer a double-clickable app to a Python stack. Do not adopt it if you need Windows or Linux, a stable non-RC release, or a documented rollback path between builds. Before committing, open Sidekick.xcodeproj and read setup.sh to see what the build expects, and check the release list for a build newer than 1.0.0-rc.18, since the README does not describe an in-app upgrade mechanism.

Frequently asked questions

How do I install Sidekick on macOS?

The README does not give install steps. It links to the project site for feature documentation, and the repository ships a setup.sh at the top level plus Sidekick.xcodeproj for building from source. Published releases are the other route, with 1.0.0-rc.18 as the most recent listed.

How do I use Sidekick with my own files?

Create an expert, attach the files, folders or websites it should cover, and activate the expert. Sidekick then fetches and references those materials when your request needs them. You can also drag a file directly into the input field for a one-off question.

Does Sidekick work without an internet connection?

The README states that all conversations happen offline and that data stays secure, with a built-in inference engine for local models. Web search and any OpenAI compatible API you configure are the parts that reach the network.

Official sources

  1. johnbean393/Sidekick on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
For maintainers

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/johnbean393-sidekick.svg)](https://hysenlabs.com/projects/johnbean393-sidekick)
Community notes

Community notes