explaingit

arinltte/ari

23SwiftAudience · developerComplexity · 2/5LicenseSetup · moderate

TLDR

Privacy-first macOS menu bar app that lets you chat with AI models entirely on your Apple Silicon device using the MLX framework, with no data sent to external servers and built-in model management via Hugging Face.

Mindmap

mindmap
  root((ari))
    Features
      Menu bar chat panel
      Local inference
      Markdown and LaTeX
    Models
      MLX models
      Hugging Face download
      1 to 5 GB sizes
    Tech
      Swift
      Python
      MLX Apple Silicon
    Privacy
      No internet required
      No data sent out
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run a local AI assistant from your Mac menu bar for quick questions without opening a browser or sending any data to an external server.

USE CASE 2

Download and switch between multiple open-source LLMs (1-5 GB) directly from the app's Settings panel without any command-line setup.

USE CASE 3

Use an on-device AI with Markdown and LaTeX rendering for note-taking, code explanations, or writing help while staying fully offline.

Tech stack

SwiftPythonMLXApple SiliconHugging Face

Getting it running

Difficulty · moderate Time to first run · 30min

Requires macOS 14 Sonoma or later and Apple Silicon (M1+), the first-launch Python environment setup takes a few minutes.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

ari is a lightweight macOS app that sits quietly in your menu bar and lets you ask an AI questions from anywhere on your Mac, with no browser tab required and no data sent to external servers. All AI processing happens on your device using MLX, Apple's machine learning framework designed for Apple Silicon chips. The app itself uses under 50 MB of memory. The language model it runs uses additional memory proportional to its size, but ari includes an idle timeout that automatically shuts the model server down when you are not using it and restarts it transparently when you open the panel again. Responses stream word by word in real time, and the panel renders Markdown and LaTeX formatting once generation completes. Model management is built into the app. From Settings you can download any compatible MLX model directly from Hugging Face, switch between downloaded models, and delete ones you no longer want. The README suggests starting with small 1-2 GB models for fast everyday queries or stepping up to a 5 GB model for better quality. Because all models run locally, nothing you type is transmitted anywhere. Installing ari requires macOS 14 (Sonoma) or later and Python 3.10 or later. Apple Silicon (M1 or later) is recommended for good performance. On first launch the app creates a self-contained Python environment in a hidden folder and installs the required dependencies automatically. This setup step takes a few minutes and only happens once. The app has no Dock icon and no persistent window. You click the menu bar icon to open the chat panel and press Escape to dismiss it. The icon itself can be customized from a set of system symbols. ari is open source and licensed under MIT.

Copy-paste prompts

Prompt 1
I just installed ari on my M2 Mac. Recommend a good 1-2 GB MLX model from Hugging Face for fast everyday questions, and walk me through downloading it and switching models in Settings.
Prompt 2
Help me troubleshoot ari's first-launch Python environment setup on macOS Sonoma, it's been running for more than 10 minutes and I want to verify the dependencies installed correctly.
Prompt 3
I want to run a 5 GB MLX model in ari for better quality. What Apple Silicon chip and minimum RAM do I need, and how does ari's idle timeout work to reclaim memory when I'm not using it?
Open on GitHub → Explain another repo

← arinltte on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.