Open-source project
zihenghe04/AIBro avatar
zihenghe04/AIBro

AI Bro and the case for a local-first study desk for your own documents

AI Bro — a local-first workspace for AI conversations, source-linked knowledge, and tasks.

721 stars42 forksJavaScriptAGPL-3.0

At a glance

What is it?
AI Bro is a Mac desktop application for reading course material and papers, asking questions of them, keeping source-linked notes, and turning that into tasks and calendar events, with a self-hosted sync service when you need more than one device. Its honesty about credentials, preview limits and missing end-to-end encryption is the most useful part.
Who is it for?
AI Bro suits a student or researcher who works from their own documents and wants the AI answers to be checkable against the source, because the whole design is built around opening the referenced original rather than trusting the answer. It does not suit a team that needs shared editing, remote agents or collaboration, since the project says those are not provided.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

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

Editorial analysis

The workspace is your documents, and the answers are meant to be checked

AI Bro is described as a local-first workspace for AI conversations, source-linked knowledge and tasks, and the project presents itself as a study and research assistant that reads course material and papers, organises notes, and schedules to-dos and events.

The workflow is simple to state. You import a document, ask a specific question such as which core concepts a chapter contains or what the limitations of a paper's method are, check the answer against the original, and save what you want to keep into project notes. Later, when you are writing a report or revising for an exam, you search what you have already read and follow the references back.

Two features carry that workflow. The reading area supports PDF page turning and search, multiple document tabs, and either a fit-to-width or whole-page view, and the reading area is resizable and can sit side by side with the conversation. On the note side, you can edit in a visual editor or in Markdown source, with tables, formulas, code and images.

The sourcing is the point rather than a detail. You can open the source the answer came from and check it, and the notes keep the reference rather than only the conclusion. For research work that is the difference between a tool you can use and one you have to re-verify by hand.

Reviewing AI edits as a diff before you accept them

The note editing model is the part of this project that is more careful than most.

After the AI has drafted or modified content, you are supposed to look at the differences first and then decide which changes to take. The documentation describes item by item handling, with file diffs, side-by-side comparison and handling of change blocks, and you continue editing after adopting a draft. There is also feedback when a save fails or when there is a version conflict, and drafts and reading positions are preserved with undo available within the current editing session.

The limits are stated just as carefully. Restoring a document or a draft does not mean the whole undo stack survives a restart. And whether a model task produces a file at all depends on the actual execution result, which is the project saying plainly that an agent run is not guaranteed to write anything.

So the honest picture is a document editor with a review-before-accept loop for machine-written changes, rather than a chat box that pastes text into a buffer. For a notes tool that you will come back to over a semester, keeping the human in the accept loop is what makes the saved material worth trusting later.

The Mac app is the product, and everything else is a preview

The current public download is version 0.9.5, a Mac development preview, aimed at Apple Silicon and macOS 14 or newer, and it is not yet Apple notarised.

The release notes for that version describe improvements to how conversations and the execution process interact, PDF text selection questions, and agent failure recovery. The Android 0.4.9 APK is still available from the v0.9.4 release, with the mobile source described separately, and there is no directly installable IPA for iOS.

The distribution is a signed DMG with a checksum file, and the installation guide covers it. The app bundles its own Python and PDF runtime, which is why the requirements file is as short as it is: the core storage and the OOXML intake use the standard library, and only PyMuPDF at 1.26.5 and Pillow at 12.3.0 are added, for optional PDF preview and figure extraction, and for managed document image validation and portable image bundles.

That short dependency list is a good sign about the local storage layer, since it means the file and document handling does not drag in a large stack.

The three most recent releases are all previews, 0.9.3, 0.9.4 and 0.9.5, published in the first two weeks of October 2026, and the last push to the repository was on 2026-10-16.

The native shell, the web workspace and the local Python service

The architecture is a three-part stack, and the project is direct about each part: a SwiftUI and AppKit native shell, a WKWebView workspace and a native Python service.

The document editing uses Milkdown and CodeMirror, and the promotional video uses React with Remotion. Development needs an Apple Silicon Mac, the Xcode 26 toolchain, Node.js 24 and Python 3.12.

The build sequence is:

sh
git clone https://github.com/zihenghe04/AIBro.git
cd AIBro
npm ci
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
npm run start:native

The package scripts show how many separate pieces there are to build and test. There are scripts to build the UI, to build the document editors, and to build the document markdown output, and a release entry point for the Mac build. The native test scripts cover localisation, the desktop shell, the agenda feature and the vector store, and there is a separate set of server tests, cloud tests and an asset check that run alongside the Node test files.

One detail is worth flagging for anyone trying this. The source preview uses a workspace directory next to the repository, kept separate from the data of the released app, and the launcher does not automatically pick up an activated virtual environment, so the runtime choice is a separate decision from the shell you started from.

Models are yours to choose, and the data boundary is explicit

The model and data section is the one to read carefully, because it is where the trust questions are.

You connect to a compatible API, or use the local official Codex CLI channel, and choose a model per conversation. Skills, project plans and memory help reuse flows and context. Different providers support different tools, attachments and reasoning capabilities. And the project says plainly that AI Bro does not include a model subscription or API quota.

The data boundary is stated with equal clarity. The workspace is stored on the machine by default, and reading, editing, material organisation and task management do not require connecting to a sync server. When you use a remote model or networked tools, the content the request needs is sent to the service you chose.

For multi-device use you can connect a self-hosted service and push and pull workspace content over HTTPS or an SSH tunnel. SSH is used for sync only, and the sync account handles content ownership. Model credentials and local directory permissions do not travel with ordinary workspace sync, and the model and voice API configuration can be shared through a separate encrypted pairing feature that requires explicit approval on the Mac.

The distinction between the sync account and the model credentials is the design decision that makes the local-first claim hold up: sharing a workspace does not share your keys.

What the preview version does not do, and where the data is weakest

The project publishes a section on preview boundaries and data notes, and it is unusually blunt.

The focus is currently the Mac app. Full VoiceOver support, input method candidate states, very long documents and large material libraries are still being worked on. The visual editor supports common Markdown structures, and extended syntax needs the source mode. Remote agents, remote file management and real-time multi-person collaboration are not provided at all.

On credentials, the picture is specific. Native credentials use a separate encrypted file on the machine, and the keys and ciphertext are both in the local user directory, which means it cannot defend against a process that has read access to that directory. The sync service can read synced content and there is no end-to-end encryption at present, and sync propagates changes and deletions, so it cannot replace a backup.

That is three honest limits in one paragraph, and each of them matters for a different reason. The credential limit is a local isolation limit. The sync limit is a confidentiality limit, since a self-hosted service under your control is still a service that can read the data. And the backup limit is a durability limit, since deletions propagate.

The demos use original fictional data and contain no user personal material, real files, credentials or service addresses, which is worth knowing when you judge what the promotional material shows.

The scope of what you can hand over to it

The project publishes a table of how it is meant to be used, and reading it as a set of three shapes explains what the application is actually for.

Studying a course means handing over the concepts, examples and assignment requirements from the lecture material, and getting learning notes and review tasks back, then working through the notes by course project, reviewing against the original and filling in the gaps you did not understand.

Reading papers and preparing a presentation means analysing the method and the limitations, saving analysis notes, and using the Research Wiki to link research questions to sources, then looking up the papers you already read while writing and checking a claim against the original text.

Casual capture means noting an idea, a link or an errand, and having it turned into a note, a checklist or a schedule entry, filed into an existing project.

All three end in the same place, which is the point: the durable output is the saved note and the scheduled item, not the conversation. The tool covers the work of a course, the work of a paper, and the work of a small task list, and in each case the AI does the first pass while a person keeps the final say through the diff review and the source check.

The licence is AGPL-3.0-only, the project is open source, and the project site is at zihenghe04.github.io/AIBro/.

Editorial conclusion

AI Bro suits a student or researcher who works from their own documents and wants the AI answers to be checkable against the source, because the whole design is built around opening the referenced original rather than trusting the answer. It does not suit a team that needs shared editing, remote agents or collaboration, since the project says those are not provided. Before you rely on it, read the credential storage and sync notes, because native credentials sit in an encrypted file on the same machine, the sync service can read synced content and there is no end-to-end encryption, and note that the public download is the 0.9.5 Mac preview for Apple Silicon on macOS 14 or newer, not yet Apple notarised.

Frequently asked questions

What is AI Bro?

It is a local-first desktop workspace for AI conversations, source-linked knowledge and tasks, aimed at reading course material and papers, producing notes you can check against the source, and turning that into tasks and calendar events. The current public download is the 0.9.5 Mac development preview.

How do I install AI Bro and run it for the first time?

Download the DMG and its checksum file from the v0.9.5 release and follow the installation guide, then connect a model service in settings and choose a model, create a project, add a document and start your first conversation. The app bundles its own Python and PDF runtime.

Can I check the AI answers against the original document in AI Bro?

Yes. That is central to the design. You can open the referenced source to verify an answer, and when the AI modifies a note you review the differences, compare side by side and handle change blocks before adopting them.

Does AI Bro sync my data to a server?

Not by default. The workspace is stored on the machine, and reading, editing, material organisation and task management do not need a sync server. For multi-device use you can connect a self-hosted service over HTTPS or an SSH tunnel, and model credentials do not travel with ordinary workspace sync.

What are the security limits of AI Bro's credential storage and sync?

Native credentials use a separate encrypted file on the machine, but the keys and ciphertext both sit in the local user directory, so it cannot defend against a process with read access there. The sync service can read synced content, there is currently no end-to-end encryption, and sync propagates changes and deletions, so it does not replace a backup.

Official sources

  1. License: AGPL-3.0
  2. Project website
  3. README
  4. Releases
  5. zihenghe04/AIBro on GitHub
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/zihenghe04-aibro.svg)](https://hysenlabs.com/projects/zihenghe04-aibro)

Was this useful?