{"slug": "show-hn-aris-an-open-source-agent-that-lives-in-the-macbook-notch", "title": "Show HN: Aris – an open-source agent that lives in the MacBook notch", "summary": "Developer LumenJSN released Aris, an open-source agent that runs from the MacBook notch and lets an AI read and act on a Mac's messages, mail, files, calendar and app windows, requiring Apple silicon and macOS 14 Sonoma or later. Aris connects to Claude Code (recommended), Codex, Antigravity, an API key or a local model, and shows a confirm card before anything is sent, written or deleted; the project is ad-hoc signed and not notarized, so users must approve it via System Settings or clear the quarantine flag with xattr. The author warns it is a personal project with no warranty and directs users to read the safety model and the licence's sections 7 and 8 before granting permissions.", "body_md": "Aris lives in your MacBook's notch: hold a key and talk, or type. The AI you already use answers,\nand anything that would act on your Mac asks you first. [arismac.app](https://arismac.app)\n\nWarning\n\n**Use at your own risk.** Aris lets an AI read and act on your Mac: messages, mail, files, calendar and other apps'\nwindows. It asks before anything that writes, sends or deletes, but it is a personal project with no warranty.\nRead the [safety model](#safety-model) and the licence's disclaimer ([LICENSE](https://github.com/LumenJSN/Aris/blob/main/LICENSE), sections 7 and 8) before\nyou grant it permissions.\n\n1. Install Aris (see [Install](#install) ) and open it. It sets up its background helper by itself and walks you\nthrough the permissions.\n2. Give it a brain: log in to Claude Code, Codex or Antigravity, or add an API key or a local model in\nSettings › AI services (see [Brains](#brains) ).\n3. Hold `⌥ Space` and speak, or click the notch and type. If you use the ChatGPT app, its Chat Bar uses`⌥ Space` too: change one of the two shortcuts (Aris: Settings › Shortcuts).\n4. When Aris wants to send, write or delete something, a **confirm card** shows exactly what will happen. Edit it,\nsay yes, or cancel.\n5. Hold the right `⌥` to dictate into any app. History, usage, to-dos and the calendar live in the side\nnotches.\n\nRequires a Mac with **Apple silicon** and **macOS 14 Sonoma or later**. The notch's glass look needs macOS 26; older\nsystems get a plain dark notch. Macs without a notch work too.\n\n1. [Download Aris](https://arismac.app/download?ref=github) (the latest`Aris-<version>.dmg` , also on[Releases](https://github.com/LumenJSN/Aris/releases/latest) ) and open it.\n2. Drag **Aris** onto**Applications** , then open it from there.\n\nAris is ad-hoc signed and **not notarized** (the project has no Developer ID), so the first launch is refused\n(\"Apple could not verify Aris\"). Allow it once per download, in one of these ways:\n\n- \n**System Settings** : click Done, go to Privacy & Security, scroll down and click**Open Anyway** next to the Aris\nmessage, then confirm.\n- \n**Terminal** : clear the download quarantine flag.\n\n```\nxattr -dr com.apple.quarantine /Applications/Aris.app\n```\n\nOnly do this for a copy you downloaded from this repository's Releases page. The release also has a `.zip` of the\nsame app and a `SHA256SUMS` file; compare with `shasum -a 256 Aris-<version>.dmg`. The official build includes the\nonboarding's sounds and its recorded greeting.\n\n**After an update** macOS sees a new program, so grant the permissions again. If a switch in System Settings already\nshows on, turn it off and on, or remove the row with − and add Aris again.\n\nNeeds **Xcode 26 or later** (the full app, not only the command-line tools); no paid developer account.\n\n```\ngit clone https://github.com/LumenJSN/Aris.git\ncd Aris\n./Scripts/build.sh    # the app, aris-agent and aris-tools, signed ad-hoc into build/Aris.app\n```\n\nMove `build/Aris.app` to `/Applications` and open it. `Scripts/deploy.sh` builds, checks, signs, swaps the installed\ncopy and restarts the helper in one step (`--rollback` puts the previous build back); [docs/BUILD.md](https://github.com/LumenJSN/Aris/blob/main/docs/BUILD.md)\nexplains every part and script.\n\nWith ad-hoc signing every rebuild is a new program to macOS, so permissions must be granted again. To keep them, sign\nwith a free \"Apple Development\" certificate from Xcode › Settings › Accounts:\n`SIGN_ID=\"Apple Development\" ./Scripts/build.sh`. The project contains no team id.\n\nA build from source has no onboarding sounds (they are not in the repository, see\n[OnboardingAudio](https://github.com/LumenJSN/Aris/blob/main/Aris/private/Aris/Onboarding/OnboardingAudio/README.md)); the Mac's own voice speaks the greeting.\n\n- **Talk or type in the notch.** Answers, confirm cards and running work show in the notch; history, usage, to-dos\nand the calendar in the side notches.\n- **Your choice of brain** : Claude Code (recommended), Codex, Antigravity, an API key or a local model. Every feature\nworks on every brain.\n- **Works on your Mac** : Messages, Mail, Notes, Calendar, Reminders, Contacts, Finder and files (convert, merge,\nshrink, move, undo), music, timers, weather, stocks, maps and currency. Other apps' windows can be read and\noperated through[Peekaboo](https://github.com/openclaw/Peekaboo) , downloaded on first use.\n- **Sees what you point at** : ask about the screen, circle something with the gesture, or pick windows to ask about.\n- **Dictation** into any app, with a learned dictionary and your own writing style, shown in a small pill at the\nbottom of the screen while the notch stays quiet.\n- **Hands-free conversation** , with on-device end-of-turn detection and barge-in.\n- **Teammates** : background workers (a clone of Aris, Claude Code in a terminal) that take a job and report back.\n- **Skills** in the open Agent Skills format (`SKILL.md` plus optional`scripts/` ,`references/` ,`assets/` ), so\nskills made for Claude Code or Codex work unchanged on every brain. They are off until you turn them on, each is\nchecked by a static scan ([SkillSpector](https://github.com/NVIDIA/skillspector) ) and a review by your AI first, and\na skill's scripts run only after you say yes.\n- **Memory** of you and of how tasks went, kept on your Mac: see, confirm or delete each memory in Settings › Memory.\n- **Korean and English** in the UI, the voice and the answers.\n\nAris asks for each one when a feature first needs it. Each is a single \"Aris\" row in System Settings › Privacy & Security (the helper and tools inside the app count as the app).\n\n| Permission | What Aris does with it | \n|---|---|\n| Microphone | hears you while you hold the talk key, in a hands-free conversation, and for its name if the wake word is on | \n| Speech Recognition | turns speech into text on the Mac (an on-device Whisper model is an option) | \n| Accessibility | finds and presses buttons and fields in other apps, types for you, reads the selection and the focused window | \n| Screen Recording | sees the screen only when you point, circle or pick a window; password apps and Aris's own windows are always left out | \n| Full Disk Access (optional) | reads Messages, Mail and Notes; never writes there | \n| Desktop, Documents, Downloads | moves, converts and restores your files when you ask | \n| Calendars, Reminders, Contacts | shows and edits events and to-dos, finds the person you name | \n| Automation | controls Music, Spotify, Notes, Finder, Messages, Mail and the terminal Claude Code runs in, for what you ask | \n\nPick the default in Settings › AI services; saying the name first (\"ask Gemini …\") picks one for that request.\n\n| Brain | How to add it | \n|---|---|\n| **Claude Code** (recommended) | install [Claude Code](https://docs.anthropic.com/en/docs/claude-code) , run`claude` once in Terminal and log in | \n| **Codex** | install the [Codex CLI](https://github.com/openai/codex) and run`codex login` with your ChatGPT account | \n| **Antigravity** (Gemini) | install Antigravity's CLI and run `agy` once to log in | \n| **An API key** | OpenAI, Anthropic, Gemini API, OpenRouter, Groq, xAI, Mistral or DeepSeek, in Settings › AI services › API | \n| **A local model** | run [Ollama](https://ollama.com) or[LM Studio](https://lmstudio.ai) on the Mac and pick it in the same list | \n| **Anything OpenAI-compatible** | add its address, key and model in the same list | \n\nAris looks for the CLIs in `~/.local/bin`, `/opt/homebrew/bin` and `/usr/local/bin`. Keys stay in the macOS\nKeychain. The voice is the Mac's own by default; ElevenLabs or OpenAI speech work with your key.\n\nOptional: `Scripts/install-claude-hooks.py` (and `install-agent-hooks.py` for Codex and Gemini CLI) show your coding\nsessions in the notch and let you answer Claude Code's permission prompts there. Both are dry runs until you pass\n`--apply`, and both back up the file they change.\n\nYour history, memory and keys stay on your Mac; your request goes only to the AI you pick (or nowhere, with a local model).\n\n- **Stays on your Mac** : history, memory notes, schedules, settings, skills and logs (in`~/.config/aris` and the\napp's container), the wake word, the end-of-turn model, the dictation dictionary and the Mac's speech recognition.\nNo server, no account, no analytics. The helper listens on`127.0.0.1` only, behind a token.\n- **Goes to the AI you chose** : your request, the context it needs (the time, the app in front, what you selected or\npointed at, the memory notes that apply) and the results of its steps, such as a message you asked it to read.\nThat goes to the company behind your CLI or API under their terms, or stays on the Mac with a local model.\n- **Other services, only when used** : weather, stocks, maps and currency lookups, a web page you ask about,\nElevenLabs or OpenAI speech if you set a key, and GitHub for the first-use downloads (Peekaboo, SkillSpector and\nits Python runtime, the Whisper model).\n\nEvery step any brain wants to take goes through one gate in `aris-agent`. Reading runs without asking. Anything that\nwrites, sends, deletes, spends or automates another app shows a **confirm card** that says exactly what will happen\n(who gets the message and its words, which file goes where) and waits for your yes; you can edit the values first.\nA few things are never done (paying, wiping a disk, touching the system's protected places), and a command the gate\ncannot read is treated as the riskiest kind. After you allow the same thing three times in a row, Aris offers to stop\nasking; Settings lists and revokes those.\n\nText from outside (a web page, an e-mail, a message, a file, a skill) is **tainted**: it reaches the brain as fenced,\nlabelled data, and a turn that has read it can no longer act on its own. From then on even steps that normally run\nneed your yes, and nothing learned in that turn is trusted as your own words. Sends are confirmed one by one with the\nexact text, and Aris checks the window is still the one on the card before it presses anything.\n\n- \n**Private Apple APIs.** Each is looked up at run time, with a public fallback where one exists:\n  - AppKit's private glass settings on `NSGlassEffectView` (variant, content lensing, a custom path) and`_setHasActiveAppearance:` on the notch window, for the notch's look on macOS 26;\n  - CoreGraphics' `CGSSpace*` and SkyLight's`SLSRemoveWindowsFromSpaces` , to keep the notch above full-screen apps\nand on the lock screen (with[SkyLightWindow](https://github.com/Lakr233/SkyLightWindow) );\n  - `_AXUIElementGetWindow` , to match an accessibility element to its window;\n  - MediaRemote (through the bundled [mediaremote-adapter](https://github.com/ungive/mediaremote-adapter) ) for what\nis playing, and DisplayServices for the screen's brightness.\n Any macOS update can change or remove them, and they are why Aris can't be in the App Store.\n- AppKit's private glass settings on \n- \n**Not notarized** : there is no Developer ID; see[Install](#install) .\n- \nNo other app's code, artwork, sounds, fonts or prompts are included.\n- \nAris is not affiliated with Anthropic, OpenAI, Google or any provider it can talk to; their names belong to them and are shown only to say which brain is which.\n\n```\n./Scripts/build.sh                 # the app, aris-agent and aris-tools, assembled and signed into build/Aris.app\n./Scripts/build.sh --agent-only    # only aris-agent and aris-tools (a minute; no Xcode project build)\nbash Tests/run.sh                  # the test suite (about 400 files compiled; ends in ALL PASSED)\nbash Tests/deploy-dry-tests.sh     # deploy.sh and the installers against a sandbox of fakes\n```\n\nThe tests compile the Foundation-only parts of the app, the helper and the tools into one program and run them with a throwaway home folder; they never touch your real data, preferences, permissions or the installed Aris.\n\nThird-party notices are in [THIRD_PARTY_LICENSES](https://github.com/LumenJSN/Aris/blob/main/THIRD_PARTY_LICENSES) and [NOTICE](https://github.com/LumenJSN/Aris/blob/main/NOTICE).\n\nAris is released under the [Apache License 2.0](https://github.com/LumenJSN/Aris/blob/main/LICENSE). Copyright 2026 Lumen.\n\nContributions are welcome; see [CONTRIBUTING.md](https://github.com/LumenJSN/Aris/blob/main/CONTRIBUTING.md). Please report security problems privately as\ndescribed in [SECURITY.md](https://github.com/LumenJSN/Aris/blob/main/SECURITY.md).", "url": "https://wpnews.pro/news/show-hn-aris-an-open-source-agent-that-lives-in-the-macbook-notch", "canonical_source": "https://github.com/LumenJSN/Aris", "published_at": "2026-11-14 13:57:43+00:00", "updated_at": "2026-11-14 14:20:27.212310+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "artificial-intelligence", "developer-tools"], "entities": ["Aris", "LumenJSN", "Claude Code", "Codex", "Antigravity", "Apple", "macOS 14 Sonoma", "GitHub"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-aris-an-open-source-agent-that-lives-in-the-macbook-notch", "markdown": "https://wpnews.pro/news/show-hn-aris-an-open-source-agent-that-lives-in-the-macbook-notch.md", "text": "https://wpnews.pro/news/show-hn-aris-an-open-source-agent-that-lives-in-the-macbook-notch.txt", "jsonld": "https://wpnews.pro/news/show-hn-aris-an-open-source-agent-that-lives-in-the-macbook-notch.jsonld"}}